Konfiguration von Channeldistributionen über die Extension EXT_CHANNEL_DIST

Konfiguration von Channeldistributionen (CD) über die Extension EXT_CHANNEL_DIST

Übersicht

Channeldistributionen können über die Extension EXT_CHANNEL_DIST konfiguriert werden. Die Extension ermöglicht die Steuerung, wann und unter welchen Bedingungen eine CD ausgeführt wird.

Registrierung von Channeldistributionen

Registered Classes

Zunächst müssen alle zu verwendenden Channeldistributionen registriert werden:

registered.classes=<Klassenname1>;<Klassenname2>;<Klassenname3>

Hinweise:

  • Mehrere Klassen werden mit Semikolon (;) getrennt
  • Die CDs werden in der angegebenen Reihenfolge ausgeführt
  • Jede CD erhält als Input-Channel den Output der vorherigen CD

Beispiel:

registered.classes=org.b2bbp.channels.extension.IndexingService;org.b2bbp.channels.extension.MyCustomDistribution

Konfigurationsmöglichkeiten pro Channeldistribution

Für jede registrierte Channeldistribution können folgende Parameter konfiguriert werden. Die Konfiguration erfolgt immer mit dem Präfix <Klassenname>.

1. Registrierung für Service-IDs

<Klassenname>.registeredServiceIds=<ServiceId1>;<ServiceId2>;...

Zweck: Bestimmt, für welche Service-IDs die CD ausgeführt werden soll.

Mögliche Werte:

  • * = CD wird für alle Service-IDs ausgeführt (Wildcard)
  • <ServiceId1>;<ServiceId2> = CD wird nur für die angegebenen Nachrichten Inbound Services ausgeführt

Standardverhalten:
Wenn keine registeredServiceIds konfiguriert sind, wird die CD für alle Service-IDs ausgeführt (es wird eine Warnung geloggt).

Beispiel:

org.b2bbp.channels.extension.IndexingService.registeredServiceIds=*
org.b2bbp.channels.extension.MyCustomDistribution.registeredServiceIds=SERVICE_A;SERVICE_B

2. Ausführung auf Channel-IDs

<Klassenname>.executeOnChannelId=<ChannelId1>;<ChannelId2>;...

Zweck: Filtert, die Nachrichten nach Inbound-Channels für welche die CD ausgeführt werden soll.

Mögliche Werte:

  • * = CD wird für alle Nachrichten ausgeführt (Wildcard)
  • <ChannelId1>;<ChannelId2> = CD wird nur für Nachrichten in den angegebenen Channels ausgeführt

Standardverhalten:
Wenn keine executeOnChannelId konfiguriert ist, wird die CD auf allen Channels ausgeführt (es wird eine Warnung geloggt).

Beispiel:

org.b2bbp.channels.extension.IndexingService.executeOnChannelId=*
org.b2bbp.channels.extension.MyCustomDistribution.executeOnChannelId=CHANNEL_IN;CHANNEL_OUT

3. Bedingtes Ausführen einer CD

<Klassenname>.contextParserCondition=<Template Ausdruck>

Zweck: Definiert eine Bedingung, die erfüllt sein muss, damit die CD ausgeführt wird.

Funktionsweise:

  • Der Template-Ausdruck wird mit dem ContextParser ausgewertet
  • Wenn der Ausdruck "true" zurückgibt, wird die CD ausgeführt
  • Wenn der Ausdruck "false" oder einen anderen Wert zurückgibt, wird die CD übersprungen
  • Bei Exceptions wird das Verhalten durch die globale Property B3P_DEFAULT_ON_CD_CONDITION_ERROR gesteuert (Standard: true = CD wird ausgeführt)

Standardverhalten:
Wenn keine Condition angegeben wird, wird die CD standardmäßig ausgeführt.

Monitoring:
Bei aktiviertem VerboseMode (siehe Global Property B3P_VERBOSE_MODE) werden Condition und Result als Monitoring-Attribute gespeichert.

Beispiel:
Führe den Indexservice nur für Nachrichten bestimmter Partner aus, die in der Extension EXCLUDE_ILNS konfiguriert sind:

org.b2bbp.channels.extension.IndexingService.contextParserCondition=${elp(EXCLUDE_ILNS,${template(EXCLUDE_&(this.FORMAT.partnerCode))},true)}

4. Abbruch der Channeldistribution nach Ausführung

<Klassenname>.skipChannelDistributionOnChannelId=<ChannelId1>;<ChannelId2>;...

Zweck: Bestimmt, ob nach der Ausführung dieser CD die weitere Abarbeitung der Channeldistribution-Kette abgebrochen werden soll.

Mögliche Werte:

  • * = Channeldistribution wird immer nach dieser CD abgebrochen (Wildcard)
  • <ChannelId1>;<ChannelId2> = Channeldistribution wird nur abgebrochen, wenn der resultierende Channel eine der angegebenen IDs hat

Standardverhalten:
Wenn nicht konfiguriert, wird die Channeldistribution-Kette normal fortgesetzt.

Beispiel:

org.b2bbp.channels.extension.FinalDistribution.skipChannelDistributionOnChannelId=*
org.b2bbp.channels.extension.ConditionalDistribution.skipChannelDistributionOnChannelId=CHANNEL_ERROR;CHANNEL_FINAL

Einstellungen der CD-Ausführung über Global Properties

B3P_VERBOSE_MODE

B3P_VERBOSE_MODE=true|false

Zweck: Aktiviert bzw. deaktiviert den VerboseMode für detailliertes Monitoring der Channeldistribution-Ausführung.

Standardwert: false

Auswirkungen bei Aktivierung (true):

  • Channel-ID vor und nach der CD-Ausführung wird als Monitoring-Attribut gespeichert
  • Condition und Result der Bedingungsauswertung werden als Monitoring-Attribut gespeichert
  • Information zum Abbruch der Channeldistribution wird als Monitoring-Attribut gespeichert

B3P_DEFAULT_ON_CD_CONDITION_ERROR

B3P_DEFAULT_ON_CD_CONDITION_ERROR=true|false

Zweck: Legt fest, ob eine CD ausgeführt wird, wenn bei der Auswertung der contextParserCondition eine Exception auftritt.

Standardwert: true (CD wird bei Fehler ausgeführt)

B3P_SAVE_SKIPPED_ACTIONS

B3P_SAVE_SKIPPED_ACTIONS=true|false

Zweck: Legt fest, ob übersprungene CDs (State: SKIPPED) im Monitoring gespeichert werden.

Standardwert: true (übersprungene Actions werden gespeichert)

Vollständiges Konfigurationsbeispiel

# Registrierung der Channeldistributionen
registered.classes=org.b2bbp.channels.extension.IndexingService;org.b2bbp.channels.extension.PartnerRouting;org.b2bbp.channels.extension.ErrorHandling

# IndexingService - für alle Services und Channels
org.b2bbp.channels.extension.IndexingService.registeredServiceIds=*
org.b2bbp.channels.extension.IndexingService.executeOnChannelId=*
org.b2bbp.channels.extension.IndexingService.contextParserCondition=${elp(EXCLUDE_ILNS,${template(EXCLUDE_&(this.FORMAT.partnerCode))},true)}

# PartnerRouting - nur für bestimmte Services
org.b2bbp.channels.extension.PartnerRouting.registeredServiceIds=EDI_SERVICE;XML_SERVICE
org.b2bbp.channels.extension.PartnerRouting.executeOnChannelId=CHANNEL_IN
org.b2bbp.channels.extension.PartnerRouting.contextParserCondition=${template(&(this.FORMAT.documentType))}==ORDERS

# ErrorHandling - bricht Channeldistribution bei Fehler-Channel ab
org.b2bbp.channels.extension.ErrorHandling.registeredServiceIds=*
org.b2bbp.channels.extension.ErrorHandling.executeOnChannelId=*
org.b2bbp.channels.extension.ErrorHandling.skipChannelDistributionOnChannelId=CHANNEL_ERROR

Monitoring und Logging

Die Ausführung der Channeldistributionen wird als Action mit Typ “CD-Ext” im Monitoring gespeichert.

Bei aktiviertem VerboseMode (siehe Global Property B3P_VERBOSE_MODE) werden zusätzlich folgende Informationen als Monitoring-Attribute gespeichert:

  • channelIdBefore: Channel-ID vor der CD-Ausführung
  • channelIdAfter: Channel-ID nach der CD-Ausführung
  • Conditionresult: Condition und Result der Bedingungsauswertung
  • skipChannelDistribution: Ob die Channeldistribution abgebrochen wurde
View Me   Edit Me