Überblick
Die WiM-Weiche wird in B2B by Practice zur Aussteuerung der WiM-Nachrichten verwendet. Hierzu wird eine Channel Distribution benötigt, die in dieser Dokumentation beschrieben wird.
Customizing
Einrichtung Channel Distribution
Im Folgenden wird beschrieben, wie die WiMChannelDistribution konfiguriert wird. Im neuesten Standard sollte stattdessen jedoch die WiMMixChannelDistribution genutzt werden.
In der Extension EXT_CHANNEL_DIST
muss folgender Eintrag hinzugefügt werden:
EXT_CHANNEL_DIST
registered.classes: com.nextlevel.b2b.wim.actions.WiMChannelDistribution;\
Position der CD muss individuell geklärt werden.
Zusätzlich folgende Eigenschaften in EXT_CHANNEL_DIST
einfügen:
EXT_CHANNEL_DIST
#WiM Channel Distribution
com.nextlevel.b2b.wim.actions.WiMChannelDistribution.registeredServiceIds=*
com.nextlevel.b2b.wim.actions.WiMChannelDistribution.executeOnChannelId=inbound_default;INBOUND_CONTRL;INBOUND_APERAK
com.nextlevel.b2b.wim.actions.WiMChannelDistribution.skipChannelDistributionOnChannelId=WIM_INBOUND_CHANNEL
Wobei der Channel inbound_default je nach B2B Customizing auch anders heißen kann.
Einstellungen Global Properties
WIM_URL
Hier muss ein Link auf einen WIM/EEG-Knoten eingetragen werden. Z.B. WIM_URL = http://localhost:8080/b2bbp-engine/StartupEngine?channel=WIM_OUTBOUND_CHANNEL
Der Host und der Port müssen angepasst werden!
B3P_NO_WIM_BACKEND
Nutzt man die WiM-Weiche ohne WiM-Backend muss man folgende Global Property setzen: B3P_NO_WIM_BACKEND = false
(Achtung: false, nicht true!)
WIM_BACKEND_DATASOURCE_NAME
Die WimChannelDistribution greift zur Prüfung einiger Formate auf die WiM-Backend-DB zu. Dieser Zugriff erfolgt über die Standard Datasource (b2bbp). Sollte die WiM-Backend-DB in einer anderen Datenbank oder einem anderen Schema liegen, so muss eine zusätzliche DataSource angelegt werden. Der Name der Datasource muss in den GlobalProperties hinterlegt werden. WIM_BACKEND_DATASOURCE_NAME = fastlane
.
WiM_CHECK_MALOMSB_MSCONS_TO_VNB_REFERENCE
Bei den Prozessen Beginn bzw. Ende Messstellenbetrieb gibt es bei m:n Konstrukten das Problem, dass dem Malo-MSB die Verteilung der Messwerten obliegt (MSBN sendet an MaLo-MSB evtl. der gMSB). Für den Fall, dass die Verteilung und Aufbereitung der Messwerte über die WiM erfolgen soll, muss diese GP auf “true” gesetzt sein. Sie aktiviert eine zusätzliche Prüfung, ob es einen laufenden Prozess des referenzierenden VNB (Beginn oder Ende MSB) gibt. Hierzu muss im WiM Backend unter Stammdaten ==> ILN Marktpartner bei dem ILN Code des eigenen MSB in dem Eintrag “Referenz auf VNB ILN” der eigene VNB hinterlegt werden.
WIM_RULE_EXTENSION
Die WiM Channeldistribution kann um EdiPath Ausdrücke erweitert werden.
Analog der (Regeln)
Hierfür sind in der Extension WIM_RULE_EXTENSION
Einträge anzulegen.
(Beispiele s. unten)
Aussteuerungsregeln
Positiv Check auf Format
In der GENERIC_MAP muss wim_formats=UTILMD,MSCONS,IFTSTA,ORDERS,INSRPT,REQOTE,QUOTES,ORDERS,ORDRSP,APERAK
definiert werden. Nachrichten mit anderen Formaten werden nicht in den WiM-Channel verschoben.
Empfängerüberprüfung: Alle ILN Nummern, die mit der WiM Installation arbeiten
Außerdem müssen in der GENERIC_MAP system_wim=<iln>,<iln>
definiert werden. Es werden alle System ILNs angegeben (incl. der Lieferanten, die Ihre WiM Prozesse über diese WiM Lösung abbilden) für die WIM Nachrichten akzeptiert werden. Nachrichten, die für andere System ILNs empfangen werden, werden nicht in den WIM Channel verschoben. Sollte der Eintrag gar nicht angelegt werden, wird angenommen, dass für alle System ILNs auf dem Server die Weiche aktiv ist.
Wettbewerbliche MSBs im System, die mit der WiM Lösung arbeiten
Über system_wim_w-msbmdl=<iln>,<iln>
müssen ILN Nummern angegeben werden, für die alle Nachrichten an diese ILN Nummern in den WIM Channel verschoben werden.
VNBs und Default MSBs, die die WiM Lösung nutzen
Die eigenen VNBs, die mit der WiM Lösung arbeiten, werden über
system_wim_vnb==<iln>,<iln>
in der Generic Map gepflegt.
Die zugehörigen Default MSBs werden über
system_wim_d-msbmdl=<iln>,<iln>
in der Generic Map gepflegt.
Beispiel WiM Customizing in Generic Map
GENERIC_MAP
wim_formats=UTILMD,MSCONS,IFTSTA,ORDERS,INSRPT,REQOTE,QUOTES,ORDERS,ORDRSP,APERAK
system_wim=9800256500007,9910152000009,9800256900009,9800257000006,9800256600005,9910138000007,9870089000003,9870115400002,9900655000002,9905387000007,4041408701003,4041408001004,4041408700105,4041408000106
system_wim_w-msbmdl=4041408701003,4041408001004,4041408700105,4041408000106
system_wim_vnb=9870115400002,9900655000002,9870089000003
system_wim_d-msbmdl=9870115400012,9900655000012,9870089000013, 9870115400022,9900655000022,9870089000023
Anmerkung: Nachrichten die AN ILNs gesendet werden, die unter system_wim_w-msbmdl
gelistet sind, werden alle in den WIM_INBOUND
Channel geroutet (z.B. VNB → MSB) – unabhängig vom Absender.
Nachrichten AUSSER MSCONS, die AN ILNs gesendet werden, die unter system_wim_d-msbmdl
oder system_wim_vnb
gelistet UND VON einem MSB/MLD (aus der Extension MPID_WIM_CHANNEL
) kommen, werden alle in den WIM_INBOUND
Channel geroutet (z.B. VNB → MSB). (Wenn eine Nachricht nicht von dieser Regel erfasst wird, dann kann sie aber trotzdem anhand von Qualifiern oder laufenden Prozessen durch die abschließende Überprüfung zugeordnet werden.)
Trägt man einen Default MSB unter system_wim_w-msbmdl
ein, kann man erreichen, dass ALLE Nachrichten (incl. Zählerstände und Änderungsmeldungen IMMER in die WIM-Lösung geroutet werden.
Nachricht von MSB und an VNB System
Es wird überprüft, ob eine Nachricht von einem MSB eingegangen ist. Hierfür muss eine Extension angelegt werden, die die ILNs der Marktpartner mit diesen Rollen enthält.
Fügen Sie bitte die Extension MPID_WIM_CHANNEL
hinzu und tragen Sie dort, wie unten abgebildet, die ILNs der Rolle MSB ein.
Wenn außerdem die eigene ILN Nummer in der GENERIC_MAP unter system_wim_vnb
oder system_wim_d-msbmdl
angegeben wurde, und die Nachricht keine MSCONS oder E03 UTILMD ist, wird die Nachricht in den WIM Channel verschoben. E03 Utilmd kann auch ausgesteuert werden, wenn die B2B Global Property WIM_ACCEPT_E03_UTILMD
auf true
gesetzt wird.
WIM_ACCEPT_E03_UTILMD
Mit der Global Property WIM_ACCEPT_E03_UTILMD = true
kann angegeben werden, dass Stammdatenänderungen trotzdem in den WiM-Channel verschoben werden und somit über den Prozess Stammdatenänderung behandelt werden.
MSCONS Behandlung
Falls eine MSCONS Nachricht nicht schon über die ILN-Zuordnung in der Generic Map in den WiM-Channel verschoben wurde (Nachricht an system_wim_w-msbmdl
), wird sie nur in den WIM Channel verschoben, falls aktuell zu dem Zählpunkt ein Prozess Beginn oder Ende Messstellenbetrieb offen ist. Im Detail heißt das, dass es zu dem Sender, dem Empfänger und dem Zählpunkt der MSCONS einen Prozess im Schritt Warte auf Stammdaten (oder kurz davor) gibt und dieser im Status RUNNING ist. Außerdem muss das CCI+16 Segment SMV oder EMV oder COM sein (es sich also um Ein- oder Ausbauzählerstände handeln). Alle anderen MSCONS Nachrichten laufen nicht in den WiM-Channel.
MPID_SYNC_WIM
Legen Sie eine leere Extension MPID_SYNC_WIM
an
Es wird automatisch eine Liste von <ILN>=<email>
aufgebaut für die Marktpartner, mit denen Sie kommunizieren. Diese Liste können Sie verwenden, um die E-Mail Adressen von ausgehenden Marktpartnern zu ermitteln. Wenn ein Eintrag vorhanden ist, wird er nicht mehr überschrieben. Sie können also falsche E-Mail Adressen korrigieren. Wenn Sie dieses Feature nicht nutzen wollen, setzen Sie die Global Property WIM_WRITE_TO_MPID_SYNC_WIM = false
.
Aussteuerung mit Clearing Codes
Durch das Auflisten von Clearing Codes unter wim_skip_on_clearing_codes
können diese Nachrichten mit diesem Clearing Code von der Weiche ausgeschlossen werden. Außerdem kann mittels wim_force_on_clearing_codes
mit einen Clearing Code erzwungen werden, dass die Nachricht in den WiM Channel ausgesteuert wird.
IndikatorRouting / Aussteuerung mit Prüfidentifikator
Zusätzlich kann die Weiche noch mit dem Prüfidentifikator übersteuert werden.
Hierfür sind in der Extension GENERIC_MAP
Einträge anzulegen, die einer der folgenden Strukturen entsprechen:
Indikator_<Incident>_<Recipient>_<Sender>=<Channel>
Indikator_<Incident>_<Recipient>=<Channel>
Indikator_<Incident>=<Channel>
Mit Incident
ist der Vorgang der Edifact gemeint, z.B. 17111
.
Mit Sender
und Recipient
sind ILN von Sender & Empfänger der EDIFACT gemeint. Beachten Sie, dass es sich um eine Inbound-ChannelDistribution handelt.
Falls ein Eintrag zur EDIFACT passt, wird in den entsprechenden Channel geroutet.
Aussteuerung mit Edipath Ausdrücken (WIM_RULE_EXTENSION)
Beispiele:
"WIM_INBOUND_CHANNEL"<==$edipath("UNH+2+0")=="UTILMD" and $edipath("UNB+3+0")=="9999999999999" and $edipath("RFF[1+0=\"Z13\"]+1+1")=="55116";
"TEST_CHANNEL"<==$edipath("UNH+2+0")=="UTILMD" and $edipath("UNB+3+0")=="9999999999999" and $edipath("RFF[1+0=\"Z13\"]+1+1")=="55116";