Altova MapForce 2024 Enterprise Edition

Sie können in MapForce erweiterte Validierungsregeln für Felder definieren, die nicht nur auf Feldebene, sondern auch auf Zeichenebene validiert werden müssen. Ein Beispiel für ein Feld, für das solche Validierungsregeln erforderlich sind, ist das Datenelement 8155 (UN/EDIFACT). In diesem Feld sind nicht nur in UN/EDIFACT definierte Codewerte, sondern auch externe, in ISO 6346 definierte Codes zulässig. Beachten Sie, dass ISO 6346 hier nur als Beispiel verwendet wird. Die MapForce-Konfigurationsdateien enthalten bereits Validierungsregeln für ISO 6346.

 

Wenn Sie ein Feld auf Zeichenebene validieren müssen, fügen Sie die Codewerte global hinzu, wie unter Vollständige Feldvalidierung beschrieben.

 

ISO 6346

ISO 6346 ist ein internationaler Standard, der Informationen zu Frachtcontainern bereitstellt. In ISO 6346 werden spezielle Größen- und Typ-Codes verwendet, die aus den folgenden Zeichen bestehen:

 

Das erste Zeichen gibt die Länge eines Containers an.

Das zweite Zeichen gibt die Höhe und Breite eines Containers an.

Das dritte und vierte Zeichen beschreibt die Art eines Containers.

 

Ein Beispiel für einen Größen- und Typ-Code wäre 20G0. Dieser Code steht für einen Container für allgemeine Zwecke.

 

ISO6346.Codelist

Sie können MapForce so konfigurieren, dass das Datenelement 8155 nicht nur gemäß den UN/EDIFACT-Codewerten, sondern auch gemäß ISO 6346 validiert wird. Im nachstehenden Codefragment sehen Sie einen Ausschnitt aus ISO6346.Codelist aus dem Verzeichnis MapForceEDI\EDIFACT Ihres Applikationsordners. Jedes <Field>-Element im nachstehenden Codefragment hat eine Gruppe von Codewerten, die den zulässigen Werten für die einzelnen Zeichen aus der Liste oben entsprechen (z.B. G0 im dritten Field-Element).

 

<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="5" xsi:noNamespaceSchemaLocation="../EDIConfig5.xsd">
  <Codelist>
     <Field Name="F8155" Type="Alphanumeric" ListName="ISO6346" Length="1" Offset="1">
        <Title>ISO 6346</Title>
        <Description>Code specifying seagoing container type.</Description>
        <Values>
           <Value Code="1"/>

           <...>
           <Value Code="N"/>
        </Values>
     </Field>
     <Field Name="F8155" Type="Alphanumeric" ListName="ISO6346" Length="1" Offset="2">
        <Title>ISO 6346</Title>
        <Description>Code specifying seagoing container type.</Description>
        <Values>
           <Value Code="0"/>

           <...>
           <Value Code="F"/>
        </Values>
     </Field>
     <Field Name="F8155" Type="Alphanumeric" ListName="ISO6346" Length="2" Offset="3">
        <Title>ISO 6346</Title>
        <Description>Code specifying seagoing container type.</Description>
        <Values>
           <Value Code="G0"/>

           <...>
           <Value Code="A0"/>
        </Values>
     </Field>
  </Codelist>
</Config>

 

Jedes <Field>-Element im obigen Codefragment hat die folgenden Attribute:

 

Das Attribut Name bezieht sich auf den Namen des Felds (Feld F8155 in unserem Beispiel).

Das Attribut Type definiert den Datentyp des Datenelements (in unserem Fall Alphanumeric).

Das Attribut ListName hat den Namen einer Codeliste (in unserem Beispiel ISO6346 für alle drei Gruppen von Codewerten).

Das Attribut Length definiert die Anzahl der zu validierenden Zeichen. Jeder Wert in der ersten und zweiten Gruppe ist ein Zeichen lang, während jeder Wert in der dritten Gruppe zwei Zeichen lang ist.

Das Attribut Offset definiert die Position, ab der MapForce (oder der externe Ausführungsprozessor) die Zeichen aus dem zu validierenden Datenfeld liest. So hat etwa im Größen- und Typ-Code 20G0, 2 den Offset-Wert 1, 0 den Offset-Wert 2 und G0 den Offset-Wert 3.

 

Wenn das Attribut Length definiert ist, so muss auch das Attribut Offset definiert sein. Der Wert der Attribute Length und Offset muss größer als Null sein.

 

Jede Length-Offset-Kombination stellt, zusammen mit den in <Values> definierten Codewerten eine Validierungsbedingung auf Zeichenebene dar. Damit die Feldvalidierung erfolgreich ist, müssen alle Bedingungen auf Zeichenebene mit demselben ListName-Attributwert erfüllt werden. Wenn eine der Bedingungen nicht erfüllt wird, ist der Feldwert nicht gültig. Ein Feld kann mehr als eine Liste möglicher Codewerte haben. Um als gültig zu gelten, muss der Feldwert in mindestens einer dieser Listen vorhanden sein.

 

© 2018-2024 Altova GmbH