Nachrichen können aus dem Monitoring in eine seperate ZIP herunter geladen werden.

Übersicht

Diese Seite beschreibt die erweiterbare Konfiguration für den Download gezippter Edis.

Konfiguration vorhanden

Es kann eine Konfiguration (Extension) pro User durchgeführt werden und eine allgemeine Konfiguration hinterlegt werden.

Dabei wird folgende Namenskonvention erwartet:

ZIPPED_DOWNLOAD_CONFIG_<Username>

oder

ZIPPED_DOWNLOAD_CONFIG für die allgemeine Konfiguration.

Keine Konfiguration vorhanden

Hat ein User keine eigene Konfiguration wird die allgemeine genommen. Ist auch diese nicht vorhanden wird das alte Format benutzt.

Die Konfiguration wird als Extension hochgeladen mit folgendem Aufbau:

ARCHIVE_FILENAME=<Name des resultierenden Zip-Files>
DEBUG=<true|false>
MSGTYPES=MSG1;MSG2 … ;MSGN
MSG1.RECOGNITION=<ALWAYS| dynamischer Ausdruck>
MSG1.PARTS= PART1;PART2;…PARTN
MSG1.UNIQUE
PART1.ATTNAME=<Name des Attributs>
PART1.SOURCE=<ATTRIBUTE|ATTRIBUTE_ARCHIVE|ARCHIVE>
PART1.FILTER=<fully Qualified Classname>
PART1.NAMER=<fully Qualified Classname>
PART1.CONVERTER=<fully Qualified Classname>

Eigenschaften:

Eigenschaft Bedeutung
ARCHIVE_FILENAME Der Name der Ausgabedatei, z.B. edis.zip
UNIQUE_ENTRIES In der Zip-Datei werden keine Duplikate gespeichert, d.h. nur Nachrichten die sich byteweise unterscheiden landen in der zip (Default: false)
DEBUG Wenn der Wert auf true gesetzt wird, wird zu jeder betrachteten Nachricht ein LOG-Eintrag geschrieben, indem eventuelle Fehler festgehalten werden. Das LOG-File findet man im resultierenden Zip-File unter dem Namen EXECUTION_LOG.txt
MSGTYPES Namen der verschiedenen Nachrichtenarten. Wenn eine Nachricht ausgewählt wurde im Monitor wird für jeden MSGTYPE geprüft, ob die Bedingung RECOGNITION erfüllt ist. Wenn ja, werden die einzelnen Parts abgearbeitet. Wenn nein, wird der MSGTYPE für diese Nachricht übersprungen.
RECOGNITION Falls RECOGNTION=ALWAYS, wird der MSGTYP für jede Nachricht ausgeführt. Falls RECOGNTION ein dynamischer Ausdruck ist, kann dieser ausgewertet werden. Im context des Ausdrucks kann auf das Message-Object zugegriffen werden. Man findet dieses unter B3P_OBJ_MESSAGE. Ist der dynamische Ausdruck true wird der MSGTYPE für die Nachricht betrachtet sonst nicht.
PARTS Name der Parts die zu einem MSGTYPE gehören
UNIQUE Falls auf true wird pro MSGTYPE nur ein Part in die Zip geschrieben. Default: true
ATTNAME Gibt den Namen des zu nutzenden Attributes an. Bei SOURCE=ATTRIBUTE und SOURCE=ATTRIBUTE_ARCHIVE ist dies die Attribut-ID aus der Datenbank. Bei SOURCE=ARCHIVE ist dies die vom Archive-Monitor rekonstruierte Attribut-ID: MIME-Mails werden als B3P_MIME_MSG_MAIN erkannt, .crypt-Dateien als B3P_AS2_ORIG_STREAM, .decrypt-Dateien als B3P_AS2_STREAM, .mdn-Dateien als B3P_AS2_MDN_STREAM und sonstige/plain .txt-Dateien in der Regel als B3P_ARCHIVE_FILESERVICE.
SOURCE Gibt die Quelle an, aus der das Attribut geladen wird. ATTRIBUTE liest aus der DB-Tabelle B2BBP_DATA_ATTRIBUTE, ATTRIBUTE_ARCHIVE aus B2BBP_DATA_ATTRIBUTE_ARCHIVE. ARCHIVE liest nicht direkt aus einer DB-Tabelle, sondern über den konfigurierten Archive-Monitor aus dem Archivsystem.
CONVERTER Hier muss der Klassenname einer Java-Klasse angegeben werden, die das Interface org.b2bbp.engine.configurabledownload.IConverter implementiert. Mit einem Konverter kann man die bytes der Attribute beliebig transformieren und auch in mehrere Teile aufspalten.
FILTER Hier muss der Klassenname einer Java-Klasse angegeben werden, die das Interface org.b2bbp.engine.configurabledownload.IFilter implementiert. Mit einem Filter kann man bestimmte Teile wieder entfernen
NAMER Hier muss der Klassenname einer Java-Klasse angegeben werden, die das Interface org.b2bbp.engine.configurabledownload.INamer implementiert. Mit dieser Funktionalität können den einzelnen Teilen Dateinamen gegeben werden

Die Ausführungsreihenfolge ist: Laden des Attributes -> Ausführen des Converters -> Ausführen des Filters -> Ausführen des Namers

Der Standartkonverter ändert nichts. Der Standard Filter lässt alles durch und der Standard Filter nennt die Dateien unknown.txt

Hinweise zu SOURCE=ARCHIVE

Bei SOURCE=ARCHIVE wird das Attribut nicht aus B2BBP_DATA_ATTRIBUTE oder B2BBP_DATA_ATTRIBUTE_ARCHIVE geladen. Stattdessen wird der konfigurierte Archive-Monitor verwendet. Dieser liest die archivierten Daten aus dem Archivsystem und rekonstruiert daraus Attribute. Erst danach wird nach ATTNAME gefiltert.

Für archivierte E-Mails muss deshalb ATTNAME=B3P_MIME_MSG_MAIN verwendet werden, obwohl die Dateien im ZIP technisch als .txt abgelegt sind. Der Archive-Monitor erkennt den MIME-Stream am Inhalt und setzt die Attribut-ID auf B3P_MIME_MSG_MAIN. Die EDIFACT-Nachrichten entstehen anschließend erst durch den Converter org.b2bbp.engine.configurabledownload.ExtractAllEdiMailAttachments.

Für archivierte Nicht-Mail-Dateien, z.B. aus Fileservice-Archivierung, wird meist ATTNAME=B3P_ARCHIVE_FILESERVICE verwendet. Wenn der Inhalt bereits eine EDIFACT-Nachricht ist, ist dafür org.b2bbp.engine.configurabledownload.ExtractAllPlainEdiMessages der passende Converter. ExtractAllEdiMailAttachments ist nur für MIME-Mails geeignet.

Für archivierte AS2-Nachrichten werden die Attribut-IDs aus dem Archiv-Dateisuffix rekonstruiert: .decrypt wird zu B3P_AS2_STREAM, .crypt zu B3P_AS2_ORIG_STREAM und .mdn zu B3P_AS2_MDN_STREAM. Die AS2-CONTRL-Varianten B3P_AS2_STREAM_CONTRL und B3P_AS2_ORIG_STREAM_CONTRL haben im Archiv dasselbe Dateisuffix wie die normalen AS2-Streams und werden bei SOURCE=ARCHIVE daher ebenfalls als B3P_AS2_STREAM bzw. B3P_AS2_ORIG_STREAM bereitgestellt.

Hinweise zu RECOGNITION

RECOGNITION entscheidet pro ausgewählter Nachricht, ob ein MSGTYPE ausgeführt wird. Ist die Bedingung erfüllt, werden die in PARTS angegebenen Parts dieses MSGTYPE verarbeitet. Ist die Bedingung nicht erfüllt, wird der komplette MSGTYPE für diese Nachricht übersprungen.

Der Sonderwert ALWAYS führt den MSGTYPE immer aus. Dabei wird kein Message-Objekt aus der Datenbank geladen:

STANDARD.RECOGNITION=ALWAYS

Alle anderen Werte werden als dynamischer Ausdruck ausgewertet. Dafür wird die Nachricht aus der Datenbank geladen und im Context unter B3P_OBJ_MESSAGE bereitgestellt. Zusätzlich ist die MessageId als messageId verfügbar. Auf Felder des Message-Objekts kann über this.B3P_OBJ_MESSAGE.<feldname> zugegriffen werden, z.B. direction, vdewType, vdewVersion, state, sender, partner oder channelId.

Beispiel: Nur eingehende Nachrichten verarbeiten:

INBOUND.RECOGNITION=${equals(${template(&(this.B3P_OBJ_MESSAGE.direction))},0)}

Beispiel: Nur UTILMD-Nachrichten verarbeiten:

UTILMD.RECOGNITION=${equals(${template(&(this.B3P_OBJ_MESSAGE.vdewType))},UTILMD)}

Beispiel: Nur Nachrichten aus einem bestimmten Channel verarbeiten:

CHANNEL.RECOGNITION=${equals(${template(&(this.B3P_OBJ_MESSAGE.channelId))},INBOUND_MAIL)}

Beispiel: Bedingung per regulärem Ausdruck prüfen:

MSCONS.RECOGNITION=${regex(MSCONS,${template(&(this.B3P_OBJ_MESSAGE.vdewType))})}

Wenn ein Ausdruck nicht zu true ausgewertet werden kann, wird der MSGTYPE nicht ausgeführt.

Konverter:

Funktion Klassenname
Extrahiert aus einem AS2 Stream alle Nachrichten org.b2bbp.engine.configurabledownload.ExtractAllAS2MessagesFlat
Extrahiert aus einem MAIL Stream alle Nachrichten org.b2bbp.engine.configurabledownload.ExtractAllEdiMailAttachments
Extrahiert aus einer Standart formatierten Edi alle Nachrichten org.b2bbp.engine.configurabledownload.ExtractAllPlainEdiMessages

Filter:

Funktion Klassenname
Nur Edi-Nachrichten org.b2bbp.engine.configurabledownload.EdiFilter
Wertet dynamischen Ausdruck aus org.b2bbp.engine.configurabledownload.DynamicExprFilter

NAMER:

Funktion Klassenname
Wertet einen dynamischen Ausdruck aus, um den Namen zu bestimmen org.b2bbp.engine.configurabledownload.DynamicExprNamer
Bennent die Nachricht nach dem Edi-Standard org.b2bbp.engine.configurabledownload.EdiNamer

Um den Dynamischen Ausdruck anzugeben für den Namer DynamicExprNamer muss folgender Eintrag hinzugefügt werden:

<Name des Parts>.org.b2bbp.engine.configurabledownload.DynamicExprNamer.expression=<dynamischer Ausdruck>

<Name des Parts>.org.b2bbp.engine.configurabledownload.DynamicExprFilter.expression=<dynamischer Ausdruck>

Innerhalb der dynamischen Ausdrücke kann man mit context. RAW_DATA auf die bytes des Parts zugreifen. Falls die bytes auch einen String repräsentieren kann auf diesen mit context.CURRENT_PAYLOAD zugegriffen werden.

Beispiel 1

Nur Edi-Nachrichten runterladen (MAIL, AS2 oder andere):

ARCHIVE_FILENAME=edi.zip
# Bei DEBUG=true wird ein Protokoll im Zip-File unter EXECUTION_LOG.txt geschrieben.
DEBUG=false
MSGTYPES=STANDARD
STANDARD.RECOGNITION=ALWAYS

# Die Parts werden in dieser Reihenfolge geprueft. Da UNIQUE standardmaessig true ist, wird pro Nachricht nur der erste erfolgreich geladene Part verwendet.
STANDARD.PARTS=STANDARD_BASE_MESSAGE_EDI;STANDARD_BASE_MESSAGE;STANDARD_MAIL;STANDARD_AS2;STANDARD_AS4_OUTBOUND;STANDARD_MAIL_ARCHIVE;STANDARD_AS2_ARCHIVE_DECRYPTED;STANDARD_FILESERVICE_ARCHIVE

# EDIFACT aus dem aktuellen Datenbank-Attribut B3P_BASE_MESSAGE_EDI.
STANDARD_BASE_MESSAGE_EDI.ATTNAME=B3P_BASE_MESSAGE_EDI
STANDARD_BASE_MESSAGE_EDI.SOURCE=ATTRIBUTE
STANDARD_BASE_MESSAGE_EDI.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_BASE_MESSAGE_EDI.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer

# EDIFACT aus dem aktuellen Datenbank-Attribut B3P_BASE_MESSAGE.
STANDARD_BASE_MESSAGE.ATTNAME=B3P_BASE_MESSAGE
STANDARD_BASE_MESSAGE.SOURCE=ATTRIBUTE
STANDARD_BASE_MESSAGE.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_BASE_MESSAGE.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer

# E-Mail aus B2BBP_DATA_ATTRIBUTE_ARCHIVE laden und EDIFACT-Anhaenge extrahieren.
STANDARD_MAIL.ATTNAME=B3P_MIME_MSG_MAIN
STANDARD_MAIL.SOURCE=ATTRIBUTE_ARCHIVE
STANDARD_MAIL.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_MAIL.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer
STANDARD_MAIL.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllEdiMailAttachments

# AS2-Stream aus B2BBP_DATA_ATTRIBUTE_ARCHIVE laden und EDIFACT-Anhaenge extrahieren.
STANDARD_AS2.ATTNAME=B3P_AS2_STREAM
STANDARD_AS2.SOURCE=ATTRIBUTE_ARCHIVE
STANDARD_AS2.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_AS2.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer
STANDARD_AS2.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllAS2MessagesFlat

# Ausgehende AS4-EDIFACT-Payload aus dem aktuellen Datenbank-Attribut.
STANDARD_AS4_OUTBOUND.ATTNAME=PAYLOAD
STANDARD_AS4_OUTBOUND.SOURCE=ATTRIBUTE
STANDARD_AS4_OUTBOUND.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_AS4_OUTBOUND.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer
STANDARD_AS4_OUTBOUND.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllPlainEdiMessages

# Archivierte E-Mail aus dem Archivsystem laden und EDIFACT-Anhaenge extrahieren.
STANDARD_MAIL_ARCHIVE.ATTNAME=B3P_MIME_MSG_MAIN
STANDARD_MAIL_ARCHIVE.SOURCE=ARCHIVE
STANDARD_MAIL_ARCHIVE.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_MAIL_ARCHIVE.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer
STANDARD_MAIL_ARCHIVE.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllEdiMailAttachments

# Archivierten entschluesselten AS2-Stream aus dem Archivsystem laden und EDIFACT-Anhaenge extrahieren.
STANDARD_AS2_ARCHIVE_DECRYPTED.ATTNAME=B3P_AS2_STREAM
STANDARD_AS2_ARCHIVE_DECRYPTED.SOURCE=ARCHIVE
STANDARD_AS2_ARCHIVE_DECRYPTED.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_AS2_ARCHIVE_DECRYPTED.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer
STANDARD_AS2_ARCHIVE_DECRYPTED.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllAS2MessagesFlat

# Archivierte Plain-EDIFACT aus dem Archivsystem laden.
# Verwenden, wenn der archivierte Inhalt bereits EDIFACT ist und keine MIME-Mail.
STANDARD_FILESERVICE_ARCHIVE.ATTNAME=B3P_ARCHIVE_FILESERVICE
STANDARD_FILESERVICE_ARCHIVE.SOURCE=ARCHIVE
STANDARD_FILESERVICE_ARCHIVE.FILTER=org.b2bbp.engine.configurabledownload.EdiFilter
STANDARD_FILESERVICE_ARCHIVE.NAMER=org.b2bbp.engine.configurabledownload.EdiNamer
STANDARD_FILESERVICE_ARCHIVE.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllPlainEdiMessages

Beispiel 2

Alle B3P_BASE_MESSAGES mit Dateinamen aus B3P_ORIG_FILE_NAME

# Name der heruntergeladenen ZIP-Datei.
ARCHIVE_FILENAME=edi.zip

# Es wird ein Nachrichtentyp MSG1 definiert und immer ausgefuehrt.
MSGTYPES=MSG1
MSG1.RECOGNITION=ALWAYS
MSG1.PARTS=PART1;

# B3P_BASE_MESSAGE wird direkt als Inhalt verwendet.
# Der Dateiname kommt nicht aus dem EDI, sondern aus B3P_ORIG_FILENAME.
PART1.ATTNAME=B3P_BASE_MESSAGE
PART1.SOURCE=ATTRIBUTE
PART1.NAMER=org.b2bbp.engine.configurabledownload.DynamicExprNamer
PART1.org.b2bbp.engine.configurabledownload.DynamicExprNamer.expression=${loatt(B3P_ORIG_FILENAME,${template(&(this.messageId))},DATA_ATTRIBUTE)}

Beispiel 3

Edi-Nachrichten und Zertifikatsresultat

Wie Beispiel 1 + folgende Msg:

# Zusaetzlicher MSGTYPE fuer das Zertifikatsresultat.
MSG2.RECOGNITION=ALWAYS
MSG2.PARTS=PART5

# E-Mail aus B2BBP_DATA_ATTRIBUTE_ARCHIVE laden und Anhaenge extrahieren.
# Der DynamicExprFilter behaelt nur den Zertificon-Pruefbericht.
# Der DynamicExprNamer schreibt diesen Bericht unter verification.txt in die ZIP-Datei.
PART5.ATTNAME=B3P_MIME_MSG_MAIN
PART5.SOURCE=ATTRIBUTE_ARCHIVE
PART5.CONVERTER=org.b2bbp.engine.configurabledownload.ExtractAllEdiMailAttachments
PART5.FILTER=org.b2bbp.engine.configurabledownload.DynamicExprFilter
PART5.NAMER=org.b2bbp.engine.configurabledownload.DynamicExprNamer
PART5.org.b2bbp.engine.configurabledownload.DynamicExprNamer.expression=verification.txt
PART5.org.b2bbp.engine.configurabledownload.DynamicExprFilter.expression=${regex(Z1 SecureMail Gateway Info - http://www.zertificon.com,${template(&(this.CURRENT_PAYLOAD))})}
View Me   Edit Me