Ü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:
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 | Mit true 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.