Customizing B2B für EEG Management
 

Customizing Changes

GlobalProperties

DEFAULT_NO_MANDATORY_FIELD_CHANNEL

Sollte wie bei WIM_SEND_AUTO_APERAKS beschrieben eine APERAK erzeugt werden wird die Nachricht standardmäßig in den WIM_INBOUND_ERROR Channel geschoben. Dieser Name kann mit dieser Property überschrieben werden. Bei EEG z.B. in EEG_INBOUND_ERROR.

WIM_URL

Wenn diese Adresse auf http://localhost:xxxx/b2bbp-engine/StartupEngine?channel=EEG_OUTBOUND_CHANNEL gesetzt wird, werden bei Aperaks und Stornos der EEG Channel benutzt.

EEG Inbound and Outbound Channel

Wenn der Name EEG_INBOUND_CHANNEL und EEG_OUTBOUND_CHANNEL nicht ins Channelkonzept passt, dann kann dies geändert werden, wenn die Globalproperties EEG_INBOUND_CHANNEL oder EEG_OUTBOUND_CHANNEL auf einen anderen Namen gesetzt werden.

EEG_FORCE_NEW_VERSIONNUMBERS

Wird diese Property auf “true” gesetzt, dann wird die EEG Lösung die nächsten Formate versenden anstatt die aktuell gültigen. Somit können auf Testsystemen vor der Formatumstellung die neuen Versionen getestet werden. Nach den Tests kann die Property entfernt oder auf “false” gesetzt werden, so dass wieder die aktuellen Formate versendet werden.

Extensions

EXT_CHANNEL_DIST

Für die Aussteuerung in der B2B sind folgende Änderungen notwendig. Die Eeg Channeldisribution muss in der EXT_CHANNEL_DIST eingehängt werden und die folgenden Channels entsprechend anpassen werden.

EXT_CHANNEL_DIST Teil 1

#Alle in der CD verfügbaren Klassen registrieren
registered.classes=org.b2bbp.channels.extension.IndexingService;\
org.b2bbp.channels.extension.DisplayShortextFront2;\
org.b2bbp.channels.extension.CodeNumberChannelDistributionOut;\
org.b2bbp.channels.extension.NEW_WorldInCheckFormat;\
org.b2bbp.eeg.channeldistribution.EegChannelDistribution;\
com.nextlevel.b2b.wim.actions.WiMChannelDistribution2;\
org.b2bbp.channels.extension.CheckManualMscons;\
org.b2bbp.channels.extension.CodeNumberChannelDistributionIn;\
org.b2bbp.channels.extension.CheckAperakError

 

EXT_CHANNEL_DIST Teil 2

org.b2bbp.eeg.channeldistribution.EegChannelDistribution.registeredServiceIds=*
org.b2bbp.eeg.channeldistribution.EegChannelDistribution.executeOnChannelId=INBOUND_CHANNEL_ERROR
org.b2bbp.eeg.channeldistribution.EegChannelDistribution.skipChannelDistributionOnChannelId=EEG_INBOUND_CHANNEL

 

   
EegChannelDistribution vor WiMChannelDistribution2  einhängen falls diese benutzt werden sollte.

EEG_WEICHE_DETAILS

Mit dieser Extension kann die Aussteuerung der EEG Weiche verfeinert werden. Es können Marktpartner von der Weiche ausgeschlossen werden, oder es können nur bestimmte Marktpartner zur Weiche zugelassen werden.

EEG_WEICHE_DETAILS Teil 1

AllowedSystems=9926321254002,9926321254001
AllowedPartners=9963256852003,9963256852003
NotAllowedSystems=9999999999999
NotAllowedPartners=9999999999999

 Auch können einzelne Nachrichten ignoriert werden: 

EEG_WEICHE_DTAIL Teil 2

IgnoreMessage=UTILMD_REGISTRATION_REQUEST,UTILMD_REGISTRATION_RESPONSE

Dabei kann der Key der Nachricht in den technischen Details an der EEG-Channeldistribution nachgeschaut werden.

Die Weiche kann etwas verbessert werden, wenn durch den Folgenden Parameter alle Lieferanten des Systems aufgelistet werden:

EEG_WEICHE_DETAILS Teil 3

Lieferant=9963256852003,9926321254002

Außerdem kann eine Nachricht anhand des Prüfidentifikators ausgestert werden dazu müssen Einträge der Form Identifikator_<Prüfidentifikator>_<SystemIln>_<PartnerILN>=<Channel> hinzugefügt werden.

EEG_WEICHE_DETAILS Teil 4

Indikator_11077_9900000000001_9900000000002=INBOUND_CAHNNEL_EEG

Wobei auch hier wieder gilt, das der Ausdruck verallgemeinert werden kann indem Informationen von rechts nach links weggenommen werden können. Wie z.B.  Identifikator_<Prüfidentifikator>=<Channel>. Es wird immer die detailierteste Aussteuerung genommen.

 

Außerdem kann die Weiche für bestimmte Identifkatoren unterbunden werden. So kann z.B. die Stammdatenänderung eines Lieferanten ausgeschossen werden.

EEG_WEICHE_DETAILS Teil 5

Stop_Weiche=11025

 

B3P_PROCESS_MAPPING

Hier werden Prozessparts zu ProcessTypen zugeordnet. Dies ist notwendig, da nach diesem Schema Aperaks im EEG Management ausgesteuert werden. Es müssen folgende Einträge gepflegt werden:

B3P_PROCESS_MAPPING

ProcessTypes=WIM;EEG
EEG.Processes=NLILIB010;NLILIB020;NLILIB030;NLILIB040;NLILIB060;NLILIB080;NLILIB090;NLILIE010;NLILIE020;NLILIE030;NLIGDA010;NLIGDA020;NLIGDA030;NLIHAS010;NLIHAS020;NLIHBS010;NLIHBS020;NLINEU010;NLINEU020;NLINEU030;NLIKUE010;NLIKUE020;NLIKUE030;NLISTI010;NLISTI020;NLISTI030

Channels & Actions

EEG_INBOUND_CHANNEL & EEG_OUTBOUND_CHANNEL

Splitten von Nachrichten

Es kann vorkommen, dass Einspeisenachrichten von Marktpartner aggregiert verschickt werden. Damit diese korrekt verarbeitet werden können, müssen die Änderungen aus diesem Kapitel berücksichtigt werden. An dieser Stelle unterscheiden wir zwischen rein ausspeiseaggregierten Nachrichten und Nachrichten die zwischen Ein- und Ausspeisung gemischt sind. Wenn beide Arten von Nachrichten verarbeitet werden sollen, müssen folgende Schritte eingerichtet werden:

Trennung von Ein- und Ausspeiseaggregation

Die Trennung wird durch folgende Channeldistribution realisiert:

org.b2bbp.channels.extension.MessageByExtensionSplitChannelDistribution;\

 

Ausführungschannels und Services müssen an das System angepasst werden.

Diese muss in der EXT_CHANNEL_DIST vor der EegChanneldistribution eingehängt werden. Die Channeldistribution ist sehr generisch und muss deshalb wie folgt auf den Ein-Ausspeisesplit in der Extension CHANNEL_DISTRIBUTION_SPLIT_EXTENSION gecustomized werden:

CHANNEL_DISTRIBUTION_SPLIT_EXTENSION

#Classname must implement Interface ExtensionSplitI
CLASSNAME=org.b2bbp.runtime.actions.util.EdiPathSplit
EDIPATH=IMD[2+0="Z14"]+3+0
EDIPATHVALUES=Z06
B3P_START_DATE=15.11.2012 06:00
B3P_END_DATE=15.11.2015 06:00
B3P_CLEARING_STATUS_COPY=MIX
B3P_FORMAT_VALUES=MSCONS,UTILMD

 

Zusätzlich muss die Extension CHANNEL_DISTRIBUTION_EXECUTE_CONFIGURATION auf folgenden Wert gesetzt werden (sollte immer wahr sein):

CHANNEL_DISTRIBUTION_EXECUTE_CONFIGURATION

equalsEdi("UNB+1+0",UNOC)=true

 

Dies führt dazu, dass der Einspeiseteil aus der Nachricht abgetrennt wird und den CS EEG bekommt. Sollte dieser Teil aus mehreren Einspeisenachrichten bestehen, kann dieser mit folgendem Kapitel auch gesplittet werden.

Um ein sicheres Neustarten der Nachrichten zu ermöglichen, sollte folgende Global Property gesetzt werden RESTART_UTIL_SAVE_MESSAGES_RESTARTABLE = true.

Außerdem muss in den SPLITCHANNEL folgende Action eingehängt werden:

Name: Message Context persistieren

Klasse: org.b2bbp.runtime.actions.internal.ReadOrPersistMessageContextAttribute

Eigenschaft: PERSIST_TECHNICAL=

B3P_BASE_SERVICE_ID;B3P_BASE_MESSAGE;B3P_BASE_CHANNEL_ID;B3P_APERAK_USED_SERVICE_ID;

B3P_APERAK_FOLDER;PARENT_MESSAGE_ID;B3P_MPV_EXTENSION;B3P_BASE_MAIL_FROM;EEG_USE_ANALYSER

Zusätzlich muss noch die B2B Global Property  B3P_DYNAMIC_POPULATE mindestens die Eigenschaft EEG_USE_ANALYSER enthalten.

Trennen von Sortenreinen Einspeisenachrichten

Hierzu muss der INBOUND_EEG_CHANNEL erstmal dupliziert werden und hinten ein _SPLIT drangehängt werden. Dies ist dann der Channel, der für die gesplitteten Nachrichten benutzt wird. Wichtig ist, dass aus diesem Channel der Control und Validierungsmechanismus komplett entfernt wird.

In den INBOUND_EEG_CHANNEL muss jetzt eine Splitaction eingehängt werden, welche dafür sorgt, dass aggregierte Nachrichten aufgesplittet werden und in den INBOUND_EEG_CHANNEL_SPLIT verschoben werden. Dies muss nach der Control und Aperakprüfung geschehen jedoch vor dem BPMDispatcher bzw. EEG Analyser Aktion.

Klasse: org.b2bbp.runtime.actions.internal.UtilmdIdeSplitAction

Property: B3P_SPLIT_SUFFIX = _SPLIT

Um die gesplittete Nachricht anzuzeigen, kann eine Action eingerichtet werden, die die Basemessage in die fachlichen Attribute schreibt.

Klasse: org.b2bbp.runtime.actions.internal.SetPropertyAction

Property: SHOW_BASE_MESSAGE = ${template(&(this.B3P_BASE_MESSAGE))} (fachlich!)