Übersicht
Mit Hilfe der B2B können eingehende Edifact Nachrichten in Soptim-Datenbanken eingetragen werden. Einträge in der Datenbank, die bereit für den ausgehenden Export sind, können von der B2B ebenso ausgelesen, aktualisiert und als Edifacts verschickt werden. In diesem Dokument sind die zugehörigen Konfigurationen im Customizing aufgeführt.
Soptim-Anbindung braucht kundenspezifische Mappings, die vor der Einrichtung erstellt werden müssen.
Allgemeine Konfiguration
Soptim-Datenbank Anbindung
Eine Soptim-Datenbank verfügt über folgende Tabellen:
- TB_EDIINTERCHANGE
- TB_EDIMSG
- TB_EDIMSGATT
- TB_EDIMSGATT_SUB
Eine einzige Soptim-Datenbank
Zur Anbindung einer einzelnen Soptim-Datenbank in der B2B werden folgende GlobalProperties konfiguriert:
Global Property | Beispiel |
---|---|
B3P_SOPTIM_DB_DRIVER | org.postgresql.Driver |
B3P_SOPTIM_DB_URI | jdbc:postgresql://localhost:5432/soptim |
B3P_SOPTIM_DB_USER | admin |
B3P_SOPTIM_DB_PASSWORD | Passwort (gehashet) |
Das Passwort wird kodiert. Hierfür wird von NLI der PasswordPropertyConverter genutzt.
Mehrere Soptim-Datenbanken
Um mehrere Soptim-Datenbanken anzubinden, müssen diese als Ressource in der tomcat/conf/Catalina/localhost/b2bbp-engine.xml eingerichtet werden. Eine Ressource kann folgendermaßen aussehen:
Beispiel
<Resource
name="jdbc/soptim"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/soptim"
username="admin"
password="b2bbp"
maxActive="20"
maxIdle="10"
maxWait="-1"
/>
Das Passwort muss hier im Klartext angegeben werden.
Nun kann an jeder SoptimAction und an jedem SoptimService die folgende Service Property angegeben werden: B3P_SOPTIM_DATA_SOURCE. Hier ist der Name der gewünschten Ressource einzutragen.
Konfiguration in der B2B
Content
Mit Hilfe der B2B können Edifact Nachrichten in die Soptim-Datenbank importiert werden. Hierfür wird Content mit dem Zielformat SOPTIMXML benötigt.
Außerdem kann die B2B Nachrichten aus der Soptim-Datenbank auslesen und als Edifacts weiterverarbeiten. Hierfür wird Content mit dem Zielformat SOPTIMEDI benötigt.
Contents werden kundenindividuell erstellt und ausgeliefert.
Im Folgenden ist ein Beispiel für den Content zu UTILMD 5.1F angegeben.
Provider | Version | Typ | Format | FormatVersion | Zielformat |
---|---|---|---|---|---|
NLI | 1.0 | NLC | UTILMD | 5.1F | SOPTIMEDI |
NLI | 1.0 | NLC | UTILMD | 5.1F | SOPTIMXML |
SOPTIMActionInbound
Teil eines Soptim-Inbound Prozesses. Mit Hilfe der SoptimActionInbound wird eine Edifact von der B2B in die Soptim-Datenbank eingetragen.
Konfiguration
Für die com.nextlevel.b2bbp.action.SOPTIMActionInbound muss eine Datenbank über die Global Property oder über die Action Propery B3P_SOPTIM_DATA_SOURCE konfiguriert sein. Siehe hierzu auch den Abschnitt über die Datenbankanbindung oben. Ferner müssen folgende Global Properties gesetzt sein:
Global Property | Beispiel | Anmerkung |
---|---|---|
B3P_SOPTIM_SERVICE_ID | 1 | Interchange svcb_id |
B3P_SOPTIM_EXCHANGE_FOLDER | C:/B2B/workspace | Interchange Intb_folder |
Die Action ist innerhalb eines B2B Channels zu konfigurieren. Folgende Action Properties können optional konfiguriert werden:
Action Property | Beispiel | Default | Anmerkung |
---|---|---|---|
B3P_MAX_TRIES | 30 | 30 | Falls die Verbindung mit der Datenbank verloren geht, kann die Action automatisch neue Versuche starten. |
B3P_TIME_BETWEEN_ATTEMPTS | 1000 | 1000 | Pause in Millisekunden zwischen zwei Versuchen. |
B3P_PROCESS_FORMATS | MSCONS | Neben den Standardformaten UTILMD, ORDERS, ORDRSP, IFTSTA, TSIMSG können hier weitere Formate definiert werden. | |
B3P_STOP_AFTER_IMPORT | true | false | Falls true, wird nach Abschluss der Action die weitere Verarbeitung im Channel gestopt. Nur bei den Standardformaten anwendbar. |
B3P_SAVE_PROTOCOL | false | true | Soll ein Verarbeitungs-Protokoll als technisches Attribut gespeichert werden. |
Nach der Konfiguration der Action muss die B2B neu gestartet werden, damit die Locktabelle vorbereitet wird
SoptimScheduler
Teil eines Soptim-Outbound Prozesses. Mit Hilfe dieses Schedulers können Nachrichten aus der Soptim-Datenbank in die B2B als Edifacts importiert werden. Der Scheduler sucht regelmäßig in der Datenbank nach Interchange Einträgen mit Direction=O und status=256, importiert die zugehörigen Nachrichten und aktualisiert den Eintrag in der Datenbank.
Konfiguration
Für den Scheduler muss eine Datenbank konfiguriert sein, vergleiche hierzu den Abschnitt Datenbankanbindung. Zunächst wird gemäß der Dokumentation zu Scheduler Services ein Scheduler eingerichtet.
Folgende Properties können außerdem angegeben werden:
Service Property | Beispiel | Default | Anmerkung |
---|---|---|---|
B3P_SCHEDULER_REGISTER_CLASSNAME | com.nextlevel.b2bbp.action.SoptimScheduler | Pflichtproperty | |
B3P_SOPTIM_CHANNEL | SOPTIM_OUT | Pflichtproperty, in diesen Channel wird die Nachricht geroutet. | |
B3P_MAX_FILES | 50 | 50 | Anzahl der Nachrichten, die gleichzeitig verarbeitet werden. |
SoptimFilewriterInterchangeService
Klasse: com.nextlevel.b2bbp.services.SoptimFilewriterInterchangeService
Teil eines SOPTIM Inbound Prozesses. Schreibt die verarbeitete Edifact ins Dateisystem. Schreibt eine entsprechende Interchange in die Soptim-Datenbank, nicht jedoch die ganze Nachricht. INTB_STATUS=512 & INTB_DIRECTION=O.
Konfiguration
Der SoptimFilewriterInterchangeService wird durch eine Action im Channel aufgerufen. Hierfür kann eine org.b2bbp.runtime.actions.internal.SetPropertyAction
genutzt werden. Die Service ID ist hier als ServiceProperty B3P_USED_SERVICE_ID (MessageContext überschreiben) anzugeben.
Für den Service muss eine Datenbank konfiguriert sein, vergleiche hierzu den Abschnitt Datenbankanbindung. Folgende Properties können konfiguriert werden:
Service Property | Beispiel | Default | Anmerkung |
---|---|---|---|
folder | C:/edifacts | Undefiniert | Pflichtproperty. Ordner, in den die Edifact geschrieben wird. MessageContext überschreiben!. |
B3P_ENCODING | ISO-8859-1 | System-Encoding | Encoding der geschriebenen Datei. |
MAX_ATTEMPTS | 30 | 30 | Falls die Verbindung mit der Datenbank verloren geht, kann der Service automatisch neue Versuche starten. |
MILLIS_BETWEEN_ATTEMPTS | 1000 | 1000 | Pause in Millisekunden zwischen zwei Versuchen. |
SoptimFilecrawlerInterchangeService
Klasse: com.nextlevel.b2bbp.services.SoptimFilecrawlerInterchangeService
Teil eines SOPTIM Outbound Prozesses. Liest Edifacts aus dem Dateisystem. Updated das zugehörige Interchange in der Soptim-Datenbank. INTB_STATUS=1 & INTB_DIRECTION=I.
Konfiguration
Für den SoptimFilecrawlerInterchangeService vom Typ=FILE muss eine Datenbank konfiguriert sein, vergleiche hierzu den Abschnitt Datenbankanbindung. Der Service wird automatisch im Hintergrund ausgeführt, wenn Startup aktiviert ist. Folgende Properties können konfiguriert werden:
Service Property | Beispiel | Default | Anmerkung |
---|---|---|---|
folder | C:/edifacts-outbound | Pflichtproperty. Directory des Filecrawlers. MessageContext überschreiben! | |
B3P_POLL_INTERVAL | 10 | 10 | Pollinterval des Filecrawlers. In Sekunden. |
B3P_MAX_FILES | 100 | 100 | Anzahl an Nachrichten, die gleichzeitig verarbeitet werden. |
B3P_ENCODING | ISO-8859-1 | System-Encoding | Encoding der gelesenen Datei. |
MAX_ATTEMPTS | 30 | 30 | Falls die Verbindung mit der Datenbank verloren geht, kann der Service automatisch neue Versuche starten. |
MILLIS_BETWEEN_ATTEMPTS | 1000 | 1000 | Pause in Millisekunden zwischen zwei Versuchen. |
LoadInterchangeAction
Klasse: com.nextlevel.b2bbp.action.LoadInterchangeAction
Zeigt das Interchange an, nachdem eine Nachricht über den SoptimFilecrawlerInterchangeService geladen wurde. Läuft auf einen Fehler, wenn die Nachricht nicht an ein Interchange geknüpft ist, außer die ActionProperty FORCE_INTERCHANGE=false ist gesetzt.
View Me Edit Me