Konfiguration für die zusätzlichen Spalten im Nachrichtenmonitor

Es ist möglich, bis zu vier zusätzlichen Spalten im Nachrichtenmonitor einzubinden. Die Daten, die in diesen Spalten angezeigt werden, werden entweder aus einer Extension geladen (z. B. Namen der Partner) oder aus einer zusätzlichen Datenbank-Tabelle (z.B. die BGM-Kategorie der Edifact)

Es wird beschrieben, wie man die erste Spalte einrichtet. Die anderen Spalten können analog eingerichtet werden

zusätzliche Spalten

Spaltenüberschrift

Die Spaltenüberschrift wird in die GlobalProperty B3P_MON_ADDITIONAL1_NAME eingetragen. Für andere Spalten analog B3P_MON_ADDITIONAL2_NAME usw.

Das Laden der Werte aus einer Extension

Auf diese Weise kann z.B. der Name des Partners geladen werden. Der Name ist normalerweise in der Extension MPID_SYNC unter dem Schlüssel 9910493000000.9910493000007.NAME=MDL Stadtwerke Treuchtlingen zu finden.

In der Global Property B3P_ADDITIONAL_COLUMNS_EXTENSION sind die Extensions einzutragen, die verwendet werden sollen. Kommasepariert können mehrere Extensions angegeben werden.

Beispiel: B3P_ADDITIONAL_COLUMNS_EXTENSION = MPID_SYNC,SENDER_EMAIL

Der Schlüssel, nach dem in der Extension gesucht wird, wird in der Global Property B3P_MON_ADDITIONAL1_VALUE konfiguriert (bzw. B3P_MON_ADDITIONAL2_VALUE usw.) Dabei können über Platzhalter andere Spalten der Nachricht benutzt werden. Z.B. mit $(system)$.$(partner)$.NAME wird der oben beschriebene Schlüssel 9910493000000.9910493000007.NAME zusammen gesetzt.

Mögliche Platzhalter:

  • $(system)$ : Spalte System
  • $(partner)$ : Spalte Partner
  • $(state)$ : Spalte VS (Verarbeitungsstatus)
  • $(acknowledgement)$ : Spalte BS (Bestätigungsstatus)
  • $(clearingCode)$ : Spalte CS (Clearingstatus
  • $(direction)$ : Spalte Richtung
  • $(correlationId)$ : Spalte Ref.-Nr.
  • $(channelId)$ : Spalte Channel
  • $(formatIn)$ : Spalte Eingangsformat
  • $(formatOut)$ : Spalte Ausgangsformat
  • $(vdewType)$ : Spalte VDEW-Typ
  • $(vdewVersion)$ : Spalte VDEW-Version
  • $(alternativeId)$ : Spalte Alternativ-Id

Beispiel: B3P_MON_ADDITIONAL1_VALUE = $(system)$.$(partner)$.NAME

Sonderkonfiguration, um nur einen Teil der Schlüssel-Spalten zu nutzen.

Wenn z.B. in der Spalte Partner nicht nur die MPID, sondern andere Werte stehen, kann der Wert der Spalte nicht direkt als Schlüssel genutzt werden. Beispiel: „9910493000007 | Z01“. Hier brauchen wir nur den ersten Teil vor dem Trennzeichen „|“, um daraus den Schlüssel 9910493000000.9910493000007.NAME zu bauen. Der zu verwendete Teil kann im Platzhalter definiert werden, in unserem Fall $(partner,0)$ (die Zählung beginnt mit 0)

Das Trennzeichen muss in der Global Property B3P_ADDITIONAL_COLUMNS_SPLITTER konfiguriert werden.

Beispiel:

Voraussetzungen:

  • In der System-Spalte steht „CONTRL | 9910493000000“, in der Partner-Spalte steht „9910493000007 | Z01“
  • Extension SENDER_EMAIL hat den Eintrag NAME_9910493000000 = RheinEnergie NETZ

Um den System-Namen aus der Extension SENDER_EMAIL zu laden, muss die Global Property B3P_MON_ADDITIONAL1_VALUE = NAME_$(system,1)$ konfiguriert werden.

Um den Partnernamen aus der Extension MPID_SYNC zu laden, muss die Global Property B3P_MON_ADDITIONAL1_VALUE = $(system,1)$.$(partner,0)$.NAME konfiguriert werden.

In der Global Property B3P_ADDITIONAL_COLUMNS_SPLITTER muss „|“ eingetragen werden.

Sonderkonfiguration, um nur einen Teil des Wertes anzuzeigen.

Der Wert in der Extension könnte aus mehreren Teilen bestehen, von denen nur ein in der zusätzlichen Spalte angezeigt werden soll. Z.B. in der Extension SENDER_ADDRESSES steht der Eintrag „9910493000007=DE_50082_Köln_Poststr. 33“. Nur die Postleitzahl muss aber angezeigt werden.

Welcher Teil angezeigt werden soll, kann in der Global Property B3P_MON_ADDITIONAL1_VALUE_SPLITTER konfiguriert werden. Dabei wird das Trennzeichen und die Position angegeben. Format: <Trennzeichen>,<Position>. Die Zählung der Position beginnt mit 0.

Beispiel für die Postleitzahl: B3P_MON_ADDITIONAL1_VALUE_SPLITTER = _,1

Das Laden der Werte aus der Datenbank.

Es ist möglich, bei der Nachrichtenverarbeitung bestimmte Werte zu ermitteln und in der Datenbank zu speichern. Diese Werte werden dann in den zusätzlichen Spalten angezeigt. Denkbar ist zum Beispiel, die BGM-Kategorie oder den Prüfidentifikator aus der Edifact zu extrahieren.

Einrichtung

  • Die Datenbanktabelle b2bbp_data_additional_columns und den DB-Index erstellen (SQL-Skripte können über den Support angefragt werden)
  • Die Werte aus der Edifact werden durch die ChannelDistribution org.b2bbp.channels.extension.AdditionalColumnsDataToDBChannelDistribution oder die Action org.b2bbp.runtime.actions.internal.AdditionalColumnsDataToDBAction ermittelt und in die Datenbank geschrieben werden. Sie sollen dementsprechend in EXT_CHANNEL_DIST bzw. in die Channels hinzugefügt werden.
  • Die Action und die ChannelDistribution nehmen die Konfiguration aus der Extension DISPLAY_EDICONTENT_IN_ADDITIONAL_COLUMN. Dort wird mit EdiPath-Ausdrucken festgelegt, welche Werte aus der Edifact geladen und unter welchem Schlüssel in der Datenbank gespeichert werden.

Beispiel:

zaehlpunkt=LOC[1+0="172"]+2+0
bgm=BGM+1+0

Der jeweilige Schlüssel wird in der Global Property B3P_MON_ADDITIONAL1_VALUE eingetragen, Z.B. B3P_MON_ADDITIONAL1_VALUE = zaehlpunkt

Erweiterte Konfiguration

Mit der erweiterten Konfiguration können nicht nur EdiPath sondern beliebige dynamische Funktionen ausgewertet werden. Die Erweiterung kann so aktiviert werden:

  • über Serviceproperty am Eingangsservice: USE_EXTENDED_CONFIG_FORMAT = true
  • in der Extension EXT_CHANNEL_DIST: org.b2bbp.channels.extension.AdditionalColumnsDataToDBChannelDistribution.params=USE_EXTENDED_CONFIG_FORMAT=true

Die Konfiguration der Ausdrucke erfolgt in der Extension DISPLAY_EDICONTENT_IN_ADDITIONAL_COLUMN_EXTENDED.

Format:

<key1>=<Contextausdruck Bedingung>=<Contextausdruck Wert>
<key1>=<Contextausdruck Bedingung>=<Contextausdruck Wert>

<key2>=<Contextausdruck Bedingung>=<Contextausdruck Wert>
<key2>=<Contextausdruck Bedingung>=<Contextausdruck Wert>

Für jede Nachricht wird folgendes durchgeführt: für jeden Key werden die entsprechenden Zeilen von oben nach unten betrachtet. Für jede Zeile wird der erste Contextausdruck ausgewertet. Ergibt dieser “true” wird der zweite Contextausdruck ausgewertet und in die DB geschrieben. Falls der erste Ausdruck nicht true ist wird die nächste Zeile betrachtet.

Tip: Um zu einem Schlüssel einen Fallback-Wert zu konfigurieren, der greift, wenn ansonsten keine Bedingung erfüllt ist, kann einfach als letzte Zeile des Schlüssels die Contextausdruck Bedingung = TRUE gesetzt werden,, also

<key>=<Contextausdruck Bedingung>=<Contextausdruck Wert>
<key>=<Contextausdruck Bedingung>=<Contextausdruck Wert>
...
<key>=TRUE=<Contextausdruck Wert>

CONTRL- und APERAK-Referenznummern anzeigen

Es ist möglich, die Referenznummer der CONTRL und/oder APERAK-Nachricht an der zugeordneten Marktnachricht in einer eigenen Spalte anzuzeigen. Dafür muss die Global Property B3P_MON_ADDITIONAL_SAVE_CONTRL_AND_APERAK_REFERENCE_NUMBERS = true gesetzt werden. Die Referenznummern werden dann unter den Schlüsseln contrlRefNr und aperakRefNr gespeichert.

Um zum Beispiel die Contrl-Referenznummer in der ersten zusätzlichen Spalte anzuzeigen, kann dann die Global Property B3P_MON_ADDITIONAL1_VALUE = contrlRefNr gesetzt werden.

Die Speicherung der Referenznummern findet dann zusammen mit der Zuordnung der CONTRL bzw. APERAK zur Marktnachricht statt. Dies geschieht technisch dann in der ContrlActionStandard bzw. AperakActionStandard (für eine eingehende Marktnachricht, ausgehende Quittungsnachricht) oder ContrlConsumerAction, AperakConsumerAction (ausgehende Marktnachricht, eingehende Quittungsnachricht).

Besonderheiten

Die Tabelle b2bbp_data_additional_columns muss beim Einsatz von SwitchPartition angepasst werden, da es sonst beim “Switch” zum Fehler kommt. Das heißt, wenn SwitchPartition eingerichtet ist, muss die Tabelle b2bbp_data_additional_columns ohne Fremdschlüssel angelegt werden. Zum Bereinigen der Tabelle kann DeleteJobUseTemplate benutzt werden.

Bei alten Nachrichten werden die Werte in zusätzlichen Spalten nicht angezeigt, weil sie nur wärend der Verarbeitung der Nachricht in die Datenbank geschrieben werden. Mit dem DisplayShorttextReExecutor Scheduler können die Werte bei alten Nachrichten nachträglich eingetragen werden. Dabei muss diese Klasse konfiguriert werden: org.b2bbp.runtime.actions.util.AdditionalColumnsDataToDBUtil

Breite der Spalten festlegen

Wenn keine Personalisierung benutzt wird, kann die Spaltenbreite in Pixel in der Global Property B3P_MON_ADDITIONAL1_WIDTH angegeben werden.

View Me   Edit Me