Anbindung einer Soptim-Datenbank

Ü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.

Auch im Fall von nur einer Datenbank kann die im Folgenden beschriebene Konfiguration für mehrere Datenbanken vorgenommen werden. Dies bietet den Vorteil einer feineren Konfiguration des Datenbankzugriffs zum Beispiel inkl. ConnectinPooling.

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