====== Mappings aus StandardTemplates importieren und verwenden ====== Im Ordner **..\eBiss3\StandardTemplates\Mappings** werden im ausgerollten Zustand bereits viele Mappings für die Verarbeitung von eingehenden EDIFACT-Nachrichten mitgeliefert. Ebenso stehen auch die wesentlichen Mappings für das Erzeugen der EDIFACT-Nachrichten aus den MiddleWare((Die eBiss-MiddleWare repräsentiert ein Abstraktionslayer zwischen EDIFACT und kundenspezifischer INHOUSE-Nachrichtenstruktur. Dank der eBiss-MiddleWare sinkt die Anzahl der insgesamt benötigten Mappings signifikant, und der Wartungsaufwand wird minimiert. Die MiddleWare existiert in je einer Ausprägung für Hersteller und Retailer. Siehe auch [[ueberblick:start#schema_der_zwei-stufigen_transformierung| Zweistufige Transformierung]])) -Typen zur Verfügung. ===== Mögliche Szenarien ===== ==== Neuer eingehender EDIFACT Release-Typ ==== Ein Partner sendet eine EDIFACT-Nachricht in einem bisher noch nicht verwendeten EDIFACT Release (z.Bsp. INVOIC D.01B). Die Nachrichten sind zwar in der Inbox, werden aber nicht weiter verarbeitet. - Als Rechnungsempfänger sind wir i.d.R. in einer RETAILER-Rolle. D.h. wir finden den Ordner ..\eBiss3\StandardTemplates\Mappings\**Retail**\ und darin das Mapping **eBiss.Retail.Invoic.D01B.emapXml**. Dieses importieren wir bei den Mappings. - Dann prüfen wir, ob der entsprechende Eingangstyp, in diesem Fall **eBiss.MappingObjects.Edifact.D01B.Messages.INVOIC.INVOIC** im EDIFACT-Repository bei den Entitätstypen in den beiden benötigten Suptypen 380 und 381 deklariert ist. Falls nicht, deklarieren wir diese wie in der Abbildung und achten auf die Einstellung der Lesekomponente.\\ {{:howtos:edifactd01b_etities.png?nolink|}} - Nun müssen wir noch sicherstellen, dass in dem Standard INBOUND-Job der Selektor für die INVOICes mit der __Selektionsstrategie__ **ByTArgetTypeSet** und dem __SelectEntityTypeName__ **eBiss.Industry.Invoice** bestimmt und der erste Transformer das Mapping mit der __Selektionsstrategie__ **ByPartnersPreference** und dem __TargetEntityTypeName__ **eBiss.Industry.Invoice** auswählt. - Zuletzt muss noch ein entsprechendes Typset im StandardTemplatePartner für die Mappingselektion des oben eingestellten Transformers angelegt werden. Dazu im TemplatePartner eine neues Typset definieren mit der Kommunikationsrichtung **Eingehend**, dem Typ **EDIFACT D.01B INVOIC (CommercialInvoice 380)** und dem Mapping **eBiss.MappingObjects.Edifact.D01B.Messages.INVOIC.INVOIC** anlegen. ==== Neuer ausgehender EDIFACT Release-Typ ==== Ein Partner fordert EDIFACT-Nachrichten in einem bisher noch nicht verwendeten EDIFACT Release (z.Bsp. SLSRPT D.93A) an. - Wir prüfen zunächst die Existenz des Entitätstypen **eBiss.MappingObjects.Edifact.D93A.Messages.SLSRPT.SLSRPT** im EDIFACT-Repository. Falls dieser dort nicht existiert, muss er angelegt werden. Hierbei ist darauf zu achten, dass Kontainerisierer und Schreibkomponente deklariert sind. - Wenn für den SLSRPT D.93A kein Mapping im Ordner ..\eBiss3\StandardTemplates\Mappings\Retail\D93A existiert, müssen wir dieses erst definieren. Am einfachsten legen wir dafür eine Kopie des ..\eBiss3\StandardTemplates\Mappings\Retail\D96A\eBiss.Retail.Slsrpt.D96A.eMapXml an, ändern den Zieltyp auf **eBiss.MappingObjects.Edifact.D93A.Messages.SLSRPT.SLSRPT** und machen allfällige Korrekturen in den Datenzielen, denn bestimmte Segmente können sich zwischen den verschiedenen EDIFACT Releases ändern bzw. noch nicht vorhanden sein. - Nun erzeugen wir noch den Typsatz beim fordernden Partner mit der Kommunikationsrichtung **Ausgehend**, dem Typ **eBiss.Retail.SalesReport** und dem zuvor angelegten Mapping.