www.pranke.com
we connect your business
pranke.com / de / info / ebiss / startupsample /
Produkte Services Company Infos
Informationen
 

1. Vorbereitung

1.1 Allgemeines

Bevor Kommunikationswege in eBiss eingerichtet werden, sollten folgende Überlegungen im Voraus angestellt werden:

  • Welche Kommunikationswege gibt es?
  • Welche Dateien, Nachrichten werden verarbeitet ?
  • Welche Dokumente gelangen wie in das System ?
  • Welche Dokumente verlassen in welcher Form das eBiss System ?
  • Wer erzeugt die in das eBiss System gelangenden Dokumente ?
  • Wer bekommt die verarbeiteten Dokumente ?

Wenn diese Fragen geklärt sind, können die ersten Vorbereitungen realisiert werden.


Inhalt

1.2 Beispielszenario: Empfang einer EDIFACT-Datei und Verarbeitung durch eBiss

In diesem Beispiel soll eine EDIFACT-Datei mit Orders-Dokumenten im EDIFACT-Format, welche z.B. über ein FTP-Laufwerk empfangen und in einem bestimmten Verzeichnis abgelegt wird, mittels eBiss in ein bestimmtes Inhouse-Format eines ERP Systems (Industry) / WWS (Retail) transformiert und in einem Zielverzeichnis abgelegt werden. Von dort holt das ERP System / WWS diese Dateien zur weiteren Verarbeitung ab. Eine grafische Darstellung des Prozesses ist im Bild 1 beschrieben.


Bild 1


Inhalt

Kommunikationsweg1: Via FTP auf Quellverzeichnis auf der Festplatte
Dateiformat (zu eBiss): EDIFACT Datei *.edi
Dokumente: Orders
Kommunikationspartei1: Tradingpartner1
Kommunikationspartei2: Systempartner --> (ERP-System/WWS)
Dateiformat (von eBiss): ERP-System/WWS Inhouse Format Flatfile
Kommunikationsweg2: Zielverzeichnis auf Festplatte zum ERP-System (oder WWS je nach Format)
Struktur des Zielformats: wichtig um das eBiss Objekt für das Zielformat der Daten zu erstellen


Inhalt

1.3 Erstellen der fehlenden Objekte für das Ziel-Format

Damit eBiss in der Lage ist, die eingehenden EDIFACT Orders-Dokumente mittels Mapping-Tabellen in das richtige Format zu transformieren, müssen Objekte für dieses Zielformat erstellt werden. Diese Objekte sind in Form von Dll-Dateien im Plugins-Verzeichnis der eBiss-Installation (Lw:\eBiss-Verzeichnis\Plugins) hinterlegt. Diese Dll-Dateien können entweder mittels Microsoft Visual C# (Microsoft Visual Studio) oder mittels C#-Develop (freie Entwicklungsumgebung) erstellt und kompiliert werden.

Legen Sie mittels Ihrer Entwicklungsumgebung ein neues Dll-Projekt an und erstellen Sie die Klassestruktur mit den Feldern in der Reihenfolge des Ziel-Objekts. Für unser Beispiel haben wir folgende Objektstruktur bereits angelegt:

Die nachfolgend beschriebene Klassenstruktur kennzeichent den Aufbau der Dll-Dateien, welche für das Source-, und Target-Objekt (Mapping) generiert werden und später im eBiss.Plugins-Verzeichnis abgelegt werden müssen. Im nachfolgenden Beispiel wird der Klassenaufbau eines Order-Objekts in den Bildern 2 und 3 dargestellt.

Bild 2

Bild 3

Die Angaben innerhalb der eckigen Klammern sind Hilfsattribute zur Steuerung des Transformations-Verhaltens während der Verarbeitung von Dokumenten.
Folgende Attribute sind verfügbar:

MapIgnoreBase: Basisklasse ignorieren. Wird kein Parameter ( bool b ) angegeben, so ist der Defaultwert auf true gesetzt.
MapRequired,
MapSize(35)
:
Segmente mit dem Attribut MapRequired müssen unbedingt durch eine Regel transformiert werden. MapSize gibt die Länge in Zeichen (Fixed Length in Byte) an.
MapListType,
MapMinOccurs(1):
MapListType gibt an, ob das Objekt eine Liste mit Kind-Objekten enthält, in diesem Fall enthält das Order-Objekt eine Liste mit OrderItem-Objekten. MapMinOccurs(1) ist per default auf 1 gesetzt wenn kein Parameter angegeben wird und bedeutet, daß diese Liste mind. einmal im Order-Objekt enthalten ist.
Description ("abcde"): Description erlaubt die Dokumentation von Schnittstellen, der Text wird zwischen Klammern mit Anführungszeichen eingegeben.
MapFrameDocNo: MapFrameDocNo kennzeichnet das Dokumentennummer-Feld, das der Analyzer beim Auslesen der Informationen benötigt.
MapTrigger: Hilfsattribut, um den Anfang des nächsten Dokuments zu triggern wenn mehrere Dokumenten innerhalb eines Anhangs enthalten sind.
MapXmlHandling: Attribut zum Steuern des XmlWriters:
HandlingType.AsAttribute: Felder innerhalb einer Klasse als Attribute innerhalb des Xml-Tags ausgeben.
HandlingType.AsText: Felder innerhalb einer Klasse als Text zwischen zwei Xml-Tags ausgeben.
HandlingType.AsTextDefault: Felder innerhalb einer Klasse nur als Text ausgeben.
HandlingType.MapXmlHandlingSupress: Feld nicht ausgeben.

MapExternalName("Name"):

Falls der Field-Name unzulässige Sonderzeichen enthält, kann dieser als MapExternalName angegeben werden. Als Field -Name kann ein Alias-Name ohne Sonderzeichen angegeben werden.
MapFrameInterchangeReference: Speichert die gelesene Interchange-Referenznummer als FameValue, damit diese beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden kann.
MapFrameDocumentNumber: Speichert die gelesene Dokumentnummer als FameValue, damit diese beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden kann.
MapFrameDocumentRecipient: Speichert die gelesene Dokumentempfänger-Daten als FameValue, damit diese beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden können.
MapFrameDocumentSender: Speichert die gelesenen Dokumentsender-Daten als FameValue, damit dieses beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden können.
MapFrameInterchangeRecipient: Speichert die gelesenen Interchangeempfänger-Daten als FameValue, damit dieses beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden können.
MapFrameInterchangeSender: Speichert die gelesenen Interchangesender-Daten als FameValue, damit dieses beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden können.
MapFrameDocumentDate: Speichert das gelesene Dokumentendatum als FameValue, damit dieses beim Analysieren eines Dokuments abgerufen und von eBiss ausgewertet werden kann.
MapIgnore: Field wird beim Lesen eines Dokuments nicht mit Daten gefüllt, oder wird beim Erzeugen von Dokumenten nicht geschtrieben.
MapListType(typeof("Klassenname")): Wird benötigt, falls Dokumente mehrfach Werte des des gleichen Field-Typs enthalten.

Nach dem Kompilieren dieser Klassen wird eine Dll-Datei erzeugt, welche in das Plugins-Verzeichnis unterhalb des eBiss-Hauptverzeichnisses (Lw:\eBiss-Verzeichnis\Plugins) kopiert werden sollte. Nach dem nächsten Start von eBiss stehen die neu erzeugten Objekte zur Verfügung.


Inhalt

1.4 Anlegen der Mapping-Tabelle

Nachdem das Inhouse-Objekt für die ausgehenden Orders-Dokumente erstellt worden sind, sollte nun die Mapping-Tabelle zwischen der EDIFACT Orders und der Inhouse Orders erstellt werden. Im Grunde werden für das Beispiel zwei Transformationstabellen (Mappings, doppelstufige Transformation) verwendet. Das erste Mapping transformiert ein EDIFACT Orders D96A Dokument in das eBiss Industrie Inhouse Format, das zweite transformiert anschießend diese Daten in das gewünschte ERP-Inhouse-Order Format. Alternativ können Sie auch Ihr eigenes Format, falls Sie dieses im Kapitel 1.3 erstellt haben, verwenden. Hierfür brauchen Sie nur ein Mapping erstellen (einstufige Transformation).

Starten Sie die Anwendung eBiss.WinClient.exe. Falls Sie den Serverdienst gestartet haben, können Sie sich über OK mit dem Winclient anmelden. Starten Sie andernfalls den Winclient durch Klicken auf die Local Session Schaltfläche.

Bild 4

Klicken Sie mit der rechten Maustaste auf den Mappings Knoten im linken Fenster.

Bild 5

Klicken Sie anschließend mit der linken Maustaste auf Anlegen Mapping im Kontextmenü.

Bild 6

Tragen Sie im rechten Fenster unter Name den Namen des neuen Mappings z.B. Industry.ORDERS.D96A.FULL ein. Klappen Sie den Mappings-Knoten im linken Fenster auf. Klicken Sie mit der linken Maustaste auf den Unterknoten des neu erstellten Mappings.

Speichern Sie die Eingabe mittels Klicken mit der linken Maustaste auf die auf die -Schaltfläche (oben linke Fensterhälfte), damit die Änderungen in der eBiss-Datenbank gepeichert werden.

Bild 7

Klicken Sie mit der linken Maustaste auf die Objects-Schaltfläche im oberen Menü, um das Source-Object (OrdersD96A) zu laden.

Bild 8

Klicken mit der linken Maustaste auf den Eintrag SetSourceObject, das zugehörige Subset wird anschließend in die Anzeige unter Source Object geladen..

Bild 9

Wählen Sie aus dem Formular das EDIFACT.Orders.D96A Objekt aus, indem Sie dieses markieren und auf die OK-Schaltfläche mit der linken Maustaste klicken.

Bild 10

Verfahren Sie beim Target Objekt analog dem Source Objekt, wählen Sie aber diesmal das Objekt, welches Sie anhand des Kapitels 1.3 erstellt haben. Alternativ können Sie für dieses Beispiel auch das bereits vorhandene eBiss.Middleware.OrdersObjekt (eBiss.Industry.Order) auswählen, falls Sie kein eigenes Target-Objekt erstellt haben. Es werden daraufhin beide Subsets angezeigt.

Bild 11

Speichern Sie die Änderungen mittels Klicken mit der linken Maustaste auf die auf die -Schaltfläche (oben linke Fensterhälfte), damit die Änderungen in der eBiss-Datenbank gepeichert werden.

Jetzt können die Verknüpfungen (Rules und Rulessets) zwischen den Objekten hinzugefügt werden, so dass eine Transformationstabelle entsteht.

Klicken Sie mit der rechten Maustaste auf den mittleren Bereich des rechten Fensters, es erscheint folgendes Popupmenü. Klicken Sie auf Add RuleSet um ein Ruleset hinzuzufügen. Geben Sie dem Ruleset einen Namen, z.B. rs_Header. Drücken Sie die TAB-Taste. Schreiben Sie in dieses Feld unter der Selection Spalte 'Header'. Klicken Sie mit der linken Maustaste auf den Header-Ordner des Target-Objekts auf der rechten Seite. Halten Sie die linke Maustaste gedrückt und ziehen Sie den Ordner in das Targetfeld des neuen RuleSet. Der XPath-Pfad wird automatisch eingetragen. Korrigieren Sie diesen ggf. (Falls Sie eine eigene Objektdefinition erstellt haben, wählen Sie die Target-Objekte dementsprechend)



Bild 12

Rulesets können bei ähnlicher Objektstruktur der Source- und Target- Objekte auch via Drag and Drop erstellt werden. Klicken Sie hierzu mit der linken Maustaste auf einen Ordner des Source-Objekts. Halten Sie diese gedrückt und ziehen Sie den Ordner des Source-Objekts auf den gewünschten Ordner des Target-Objekts. Lassen Sie die linke Maustaste wieder los. Das RuleSet wird nun in der Mappingtabelle eingetragen. Eventuell müssen Sie die Pfad-Einträge unter den Spalten Selection und Target des neu erzeugten RuleSet manuell korrigieren.

Bild 13

Nun fügen wir eine neue Rule innerhalb des neu erstellten Rulesets hinzu. Klappen Sie Hierfür den Ordner UNB des Source-Objekts auf. Klappen Sie nun auf der rechten Seite den Header-Ordner (bei dem eigenen Target-Objekt dementsprechent den gewünschten Ordner) des Target-Objekts auf.

Markieren Sie das neu erstellte Ruleset mittels Klick mit der linken Maustaste auf dieses. Klicken Sie mit der linken Maustaste auf das DE_0035 Segment (das unterste innerhalb der UNB-Gruppe) und halten Sie die linke Maustate gedrückt. Ziehen Sie diesen Eintrag (via Drag and Drop) auf das Segment TestCode des Target Objekts (das zweite Segment unter der Header-Gruppe) auf der rechten Seite. Lassen Sie die Maustaste los.

Bild 14

Korrigieren Sie bei der neu erzeugten Rule den XPath-Pfad unter der Spalte Selection. Entfernen Sie "/ORDERS/".

Bild 15

Wenn die Objekthierachie auf beiden Seiten strikt eingehalten wird, werden beim Erstellen der Rules und Rulesets via Drag and Drop die relativen Pfade bezüglich der Objektstruktur automatisch eingetragen, diese müssen danach nicht manuell angepasst werden.

Verfahren Sie auf diese Art und Weise, bis Sie Ihre Mappingtabelle zusammengestellt haben.

Speichern Sie alle Eingaben mittels Klicken mit der linken Maustaste auf die auf die -Schaltfläche (oben linke Fensterhälfte), damit die Änderungen in der eBiss-Datenbank gepeichert werden.

Legen Sie nun auf die gleiche Weise ein Mapping an, welches als SourceObjekt eBiss.Industry.Order und als TargetObjekt ssth.IM.ORDERS zugewiesen bekommt. Erstellen Sie die MappingTabelle von der eBiss-Middleware zum Zielobjekt (das zukünftige Inhouse-Flatfile).

Alternativ können Sie für unser Beispiel auch die beigelegten Mappings Industry.ORDERS.D96A.FULL und ssth.IM.ORDERS laden. Klicken Sie hierzu mit der rechten Maustaste auf den Mappings Knoten im linken Fenster. Klicken Sie mit der linken Maustaste auf Import Map im Popupmenü und wählen Sie mit dem Dateiauswahldialog den Ordner zu den Mappings aus.

Speichern Sie alle Eingaben mittels Klicken mit der linken Maustaste auf die auf die -Schaltfläche (oben linke Fensterhälfte), damit die Änderungen in der eBiss-Datenbank gepeichert werden.

Inhalt

1.4.1 Mapping überprüfen

Wenn Sie die Mapping Tabelle angelegt haben, können Sie deren Funktionalität überprüfen.

Klicken hierzu mit der linken Maustaste auf die -Schaltfläche, welche sich im rechten Fenster (Map-Editor) direkt über der Mappingtabelle befindet. Anschließend wird folgender Dialog geöffnet:

Bild 16

Um eine Sourcedatei für den Test, in diesem Fall eine Order-Datei zu öffnen, klicken Sie mit der linken Maustaste auf die -Schaltfläche der Toolbar (links oben im linken Fenster). Daraufhin wird ein Dateiauswahldialog geöffnet.



Bild 17

Im Verzeichnis "Slot_hdsk_in\TestCase" des eBiss Hauptverzeichnisses sind einige Beispieldateien, darunter auch eine EDIFACT-Orders (orders.edi) zum testen hinterlegt. Wählen Sie das Dateiformat aus, indem Sie mit der linken Maustaste auf die Pfeilschaltfläche der rechten Seite des Dateitypen-Kombinationsfelds klicken. Klicken Sie danach mit der linken Maustaste auf den gewünschen Dateityp in der Dateitypen-Liste. Nachdem Sie die Testdatei ausgewählt und mit der linken Maustaste auf die Öffnen-Schaltfläche der rechten Seite der Dateiauswahl geklickt haben, klicken Sie mit der linken Maustaste auf die -Schaltfläche. Daraufhin werden im Source-Objekt (linke Seite) die Eingangs-, im Target-Objekt (rechte Seite) die Ausgangswerte ausgegeben. Alle Übersetzungsschritte werden in einem Log-Fenster (Unterseite des Mapdebuggers) angezeigt. Treten Fehler auf, so werden die Einträge der Rules, bei denen ein Fehler aufgetreten ist, rot markiert im Logfenster mit Rulename und Fehlerbeschreibung ausgegeben. Anhand der Fehlerbeschreibung können falsche Rules korrigiert werden.


   Impressum      © Pranke GmbH 2011   Rechtliche Hinweise       last updated: Thursday, 27. November 2008 17:11 CET