====== Umschlüsselungen von Eigenschaften ====== Oft ist es notwendig sog. Fremdschlüssel beim Transformieren in eigene Schlüsselwerte umzuwandeln. Dies wird in eBiss i.d.R. über [[transformation:lookuptables:start|]] bewerkstelligt. Es geht also darum einen Fremdschlüssel((FK= foreign key)) in einen bekannten internen Schlüssel((IK = internal key)) umzuwandeln. Dabei ist es selbstredend, dass der interne Schlüssel eineindeutig ist und die Kardinalität Fremdschlüssel zu internem Schlüssel gleich **n:1** sein kann. {{:images:sign_warning.png?nolink|}}**Hinweis:** Bei einer geringen Anzahl an Schlüsseln bietet sich die Alternative [[transformation:mappings:funktionen:allgemein:translate|Translate()]] Funktion an ===== Vorbereitung ===== Umschlüsselungen können in der folgende Form in eBiss konsumiert bzw. in den vorhandenen Tabellen((Diese müssen Notwendigerweise vorher definiert sein.)) per **[[howtos:copy_paste|]]** angelegt werden: - Die Tabelle der **[[transformation:werteprovider:start|]]**((Value Provider für interen Schlüssel)) hat zwei Spalten: - ID des Hostsystemschlüssels - Description(Bezeichnung im Hostsystem, optional) -Die eigentliche **[[transformation:lookuptables:start|]]**((Je nach Bedarf kann diese Umschlüsselungstabelle **global** oder **partnerspezifisch** angelegt sein.)) hat vier Spalten: - ID des Fremdschlüssels - Description(Bezeichnung des Fremdschlüssles, optional) - ID des Hostsystemschlüssels - Description(Bezeichnung im Hostsystem, optional) {{:images:sign_warning.png?nolink|}}**Hinweis:** In eBiss unterscheiden wir zwischen **[[transformation:lookuptables:start#global|globaler]]** und **[[transformation:lookuptables:start#partner-spezifisch|partnerspezifischer]]** Umschlüsselung. Partnerspezifische Umschlüsselungstabellen werden automatisch angelegt, wenn die Funktion **[[en:transformation:mappings:funktionen:abfragefunktionen:lookup:lookuptpvalue|LookUpTP]]** verwendet wird. Im folgenden werden einige Beispiele gängiger Umschlüsselungen diskutiert: ===== Produktgruppenumschlüsselung ===== Produktgruppenumschlüsselungen sind i.d.R. in einem Retail eBiss System erforderlich, weil die Lieferanten PRICATs meist nur mit den Lieferanten oder im Idealfall auch mit Standardproduktgruppen versehene sind. Wenn Standardproduktgruppenschlüssel verwendet werden erleichtert es die Arbeit des Kunden, denn er muss dann nicht für jeden Lieferanten die spezifische Umschlüsselung machen sondern braucht nur eine Umschlüsselung von der Standardproduktgrupe auf seine Produktgruppenschlüssel. Wenn die Produktgruppenumschlüsselung Genderabhängig ist, dann muss zuerst der Gender ermittelt werden. - Genderermittelung Alternativen: - GENDER(FK)((FK= foreign key)) -> GENDER(IK)((IK = internal key)) - ggfs. abzuleiten aus der Produktgruppe vom Lieferant - von einem anderen Merkmal, z.Bsp. Einkäufer steuert über die Businessunit - abzuleiten vo Artikel EAN - Produktgruppe(FK ggfs. mit Gender verknüpft)((FK= foreign key)) -> Produktgruppe(IK)((IK = internal key)) ===== Artikelkategorie ===== Artikelkategorien sind i.d.R. Klassen von Produktgruppen. Wenn diese innerhalb einer Schnittstelle übermittelt werden sollen, dann brauch es eine entsprechende global Umschlüsselung vom eigenen Produktgruppenschlüssel auf den eigenen Artikelkategorieschlüssel. Falls benötigt kann die Ableitung der Artikelkategorie ggfs. aus der Produktgruppe höchstwahrscheinlich n:1 gemacht werden Produktgruppe(IK)((IK = internal key)) -> Artikelkategorie(IK)((IK = internal key)) ===== Farbumschlüsselung ===== Farbcode(Lieferant) und Farbbezeichnung(Lieferant) -> Farbcode(Konsument) und Farbbezeichnung(Konsument) Multiple Farben können in den "**StandardColorContainer**((Das ist ein komplexer Datentyp in der eBiss Middleware TradeItemDocument.))" als Liste abgebildet werden. Auch bei den Farbcodes bietet sich die Verwendung von Standards an um möglichst viele Partner mit globaler Umschlüsselung umzusetzen. ===== Größenumschlüsselung ===== (ggfs. abhängig von Artikelkategorie und Lieferant): Artikelkategorie(IK) ist bereits bekannt und kann mit der Herstellergrößenangabe als Nachschlagefremdschlüssel herangezogen werden. D.h. es brauch folgende Umschlüsselungstabelle: ArtikelkategorieID((Konsument)-Größe(Lieferant) -> Größe(Konsument) ===== Saisonschlüsselung ===== Dies wird analog der bisher beschriebenen Umschlüsselungen i.d.R. partnerspezifisch gemacht. ===== global oder partnerspezifische Umschlüsselung ===== Die Entscheidung ob eine partnespezifische oder globale Umschlüsselung gemacht werden soll wird mittels geschickter Anwendung von **[[transformation:mappings:funktionen:abfragefunktionen:lookup:start|LookUp Funktionen]]** gemacht. Dabei wird zunächst mit einer nicht zwingend erforderlichen Mappingregel festgestellt ob ein globaler Umschlüsselungswert existiert, falls ja wird dieser verwendet, falls nein wird ein partnerspezifsicher Umschlüsselungseintrag erforderlich. Falls dieser nicht vorhanden ist, wird der Fremdschlüssel in die Umschlüsselungstabelle eingetragen und die Zuordnung zum eigenen Schlüssel muss anschliessend manuell gemacht werden. Wenn alle erforderlichen Umschlüsselungen vorhanden sind können die Nachrichten erfolgreich verarbeitet werden. {{:images:sign_warning.png?nolink|}}**Hinweis:** Manchmal ist es erforderlich den Fremdschlüssel bzw. Nachschlagewert mit verschiedenen Schlüsseln zu verknüpfen um einen eindeutigen Hostsystemschlüssel zurück zu bekommne.\\ **Beispiel:** Lieferantenproduktgruppe & Gender werden als Nachschlagewerte für die eigene Produktgruppenidentifikation benötigt.