Action zur Validierung von Nachrichten

Übersicht

Diese Action validiert die eingehenden Nachrichten mit dem Validation Content. Es wird der Validation Content verwendet, der händisch in die B2B geladen wurde.

Einrichtung

Klassenpfad: org.b2bbp.runtime.actions.internal.ValidatorAction

Die Action muss in der Administration wie in den folgenden Screenshots angelegt werden:

ValidatorAction

Konfigurationsmöglichkeiten

Es wird zwischen den Einstellungen der Action und den Einstellungen für die eigentliche Validierung über den Validation Content unterschieden.

Die Einstellungen für die Validierung können direkt als Action-Properties gemacht werden, dabei muss “Kontext überschreiben” markiert sein. Alle Einstellungen für die Validierung sind hier beschrieben: Validation Content

Nachfolgend sind Einstellungsmöglichkeiten der Action beschrieben.

ActionProperty Mögliche Werte Default-Wert Kontext überschreiben Beschreibung
B3P_SKIP_VALIDATION true, false false ja Mit true wird keine Validierung ausgeführt
B3P_STOP_ON_ERROR true, false false nein Brich die Nachrichtenverarbeitung ab, falls bei der Validierung der Nachricht ein Fehler gefunden wurde.
B3P_STORE_VALIDATION_ERROR​_AS_PROFESSIONAL_ATTRIBUTE true, false false nein true: das Ergebnis soll als fachliches Beleg im Monitoring angezeigt werden. false: das Ergebnis wird als technisches Detail an der Action angezeigt.
ERRORS_TO_VALIDATE CONTRL, CONTRL_APERAK, FORCE_ERROR, FORCE_POSITIVE_CONTRL, NO_VALIDATION CONTRL_APERAK ja Art der Validierung

Angabe des zu benutzenden Contents

Über nachfolgende Eigenschaften kann angegeben werden, welcher Content für die Validierung benutzt wird. Wenn der ValidationContent mit den Standard-Werten hochgeladen wurde, erübrigt sich diese Konfiguration.

Default-Werte: Type: EDI_VALIDATION; Provider: NLI; Version: 1.0; Format: ALL; Formatversion: ALL; Zielformat: NONE

Falls das Content mit anderen Werten hochgeladen wurde, können sie über diese Action-Eigenschaften konfiguriert werden (Kontext nicht überschreiben):

  • VALIDATION_TYPE
  • VALIDATION_PROVIDER
  • VALIDATION_VERSION
  • VALIDATION_FORMAT
  • VALIDATION_FORMAT_VERSION
  • VALIDATION_DEST_FORMAT

Erzwingen von Validierungsfehlern

Es ist möglich, eine ValidatorAction so zu konfigurieren, dass sie immer einen spezifizierten Validierungsfehler erzeugt. Die Nachfolgenden Contrl- oder Aperak-Actions werden entsprechende negative CONTRLs und APERAKs generieren.

Mit ERRORS_TO_VALIDATE = FORCE_ERROR wird das Feature eingeschaltet.

Daneben muss konfiguriert werden, um welchen Fehler es sich handelt. Bei den Checks, die über ChannelDistributions durchgeführt werden (DuplicateMessageCheck, WrongFormatFilterChannelDistribution, MPIDZ05Z06Check1 und andere), geschieht das automatisch, außer ERRORS_TO_VALIDATE = FORCE_ERROR muss nichts mehr konfiguriert werden.

Mit VALIDATION_ERROR_TYPE kann angegeben werden, ob es sich um eine CONTRL- (Werte: CONTRL_UCI, CONTRL_UCM, CONTRL_UCS, CONTRL_UCD) oder eine APERAK-Nachricht handelt (Wert: APERAK_INCIDENT)

Mit VALIDATION_ERROR_CODE wird der Fehlercode konfiguriert. Zum Beispiel für den CONTRL-28-Fehler ist der Wert CONTRL_28, für den APERAK-Z10-Fehler ist der Wert Z10. Die erlaubten Werte findet man in den CONTRL- bzw. APERAK-Nachrichtenbeschreibungen.

Weitere Einstellungsmöglichkeiten sind hier unter den Schlüsseln VALIDATION_ERROR_... beschrieben.

Alle oben beschriebenen Eigenschaften müssen mit “Kontext überschreiben” angelegt werden.

Konfiguration in einer Extension

Es gibt die Möglichkeit, viele der Einstellungen in einer Extension abzulegen. Dadurch können dieselben Einstellungen für die ValidatorAction und für den EdiEditor an einer Stelle hinterlegt werden. Künftig soll auch der FLEE die Einstellungen von dort beziehen können.

Standardmäßig ist dieses Feature aktiviert, abschalten kann man es mit der ActionProperty LOAD_CONFIGURATION_FROM_EXTENSION = false.

Die Einstellungen werden standardmäßig aus der Extension EDI_VALIDATION_CONFIGURATION geladen. Über die Property CONFIGURATION_EXTENSION kann man eine andere Extension konfigurieren.

In der Extension werden die Einstellungen als <key>=<value> konfiguriert. Beispiel:

ERRORS_TO_VALIDATE = CONTRL_APERAK
VALIDATION_APERAK_STRICT = false
VALIDATION_CONTRL_25_TESTFLAG = ${loadExtensionProperty(SYSTEM_CONFIGURATION,VALIDATION_REJECT_TEST_FLAG,true)}

Wenn eine Einstellung sowohl an der Action als auch in der Extension konfiguriert ist, gilt der an der Action konfigurierte Wert.

Dynamische Ausdrücke werden ausgewertet. Allerdings arbeiten viele dynamische Ausdrücke mit dem MessageContext, der nur während der Nachrichtenverarbeitung verfügbar ist. Solche dynamischen Ausdrücke werden momentan für den EdiEditor nicht funktionieren. Unterstützt werden unter anderem ${gpvalue}, ${loadextension}, ${loadextensionproperty}. Nicht unterstütz werden ${var}, ${edipath}, ${template}.

Neben den Einstellungen für den ValidationContent können in der Extension auch die Properties konfiguriert werden, die im Abschnitt Angabe des zu benutzenden Contents beschreiben sind. Außerdem kann hier die Property ERRORS_TO_VALIDATE abgelegt werden.

Um nachzuvollziehen, welche Eigenschaften mit welchen Werten aus der Extension geladen wurden, wird bei der Ausführung der ValidatorAction ein Attribut mit diesen Infos gespeichert:

Lesbares Ergebnis der Validierung

Nach der ValidatorAction liegt das lesbare Resultat der Validierung in der MessageContext-Variable B3P_VALIDATION_RESULT_FORMATTED. Sie kann z.B. mit der Template-Funktion ${varEmpty(B3P_VALIDATION_RESULT_FORMATTED)} ausgelesen werden. Die Variable ist auch in den erstellten CONTRL und APERAK-Nachrichten verfügbar, somit kann man im Email-Text der ausgehenden CONTRL die gefundenen Fehler anzeigen lassen.

Die veraltete Variable B3P_THROWN_AT_MESSAGE_TEXT, die auch das lesbare Resultat enthalten hat, soll nicht mehr benutzt werden.

View Me   Edit Me