Anpassen von Codewerten aus externen Quellen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Datenquellen und -ziele >  EDI  > Anpassen der EDI-Validierung >

Anpassen von Codewerten aus externen Quellen

In den standardmäßig mit MapForce zur Verfügung gestellten EDI-Konfigurationsdateien wurden einige Datenelemente als unvollständig validiert konfiguriert (siehe Gelockerte Validierungsregeln für Felder). Der Grund dafür ist, dass die möglichen Codewerte für dies Datenelemente auf EDI-Standard-externen Spezifikationen basieren.

 

Wenn eine unvollständige (oder weniger strenge) Validierung eines Felds nicht in Frage kommt oder unerwünscht ist, können Sie MapForce auch so konfigurieren, dass eine vollständige Feldvalidierung durchgeführt wird. Zu diesem Zweck müssen Sie zusätzlich zu den bereits in MapForce verfügbaren .codelist-Standarddateien benutzerdefinierte .codelist-Dateien hinzufügen. Mit Hilfe der benutzerdefinierten .codelist-Dateien können Sie Codewerte, die standardmäßig nicht in den EDI-Standards definiert sind und somit in den MapForce-Konfigurationsdateien nicht vorhanden sind, hinzufügen. Dies gilt normalerweise für Codewerte, die in externen Standards oder Recommendations definiert sind.

 

Beachten Sie, dass für jeden möglichen Codewert, der validiert werden soll (und dabei kann es sich um Hunderte von Datensätzen handeln), ein Eintrag in der benutzerdefinierten .codelist-Datei erforderlich ist. Ein Beispiel dafür ist das Datenelement 4405 des UN/EDIFACT D16A-Standards. Zusätzlich zu den im UN/EDIFACT-Standard definierten Codewerten sind in diesem Feld auch Codewerte zulässig, die in der UN/ECE Recommendation 24 ("Trade and Transport Status Codes", siehe http://www.unece.org/fileadmin/DAM/cefact/recommendations/rec24/rec24_ecetrd258e.pdf) definiert sind. Es handelt sich hierbei um 346 Codes. Für all diese externen Codewerte muss eine benutzerdefinierte .codelist-Datei erstellt werden, die für jeden der 346 Codes aus der Recommendation einen Eintrag enthält. Wenn es daher Ihr konkreter Fall gestattet, ist es einfacher, die unvollständige Validierung zu verwenden (siehe Gelockerte Validierungsregeln für Felder). Bedenken Sie jedoch, dass bei einer unvollständigen Validierung das Risiko besteht, dass ungültige Daten in der Mapping-Ausgabe erzeugt werden, daher wird stattdessen eine vollständige Feldvalidierung empfohlen.

 

Um bei Feldern, deren Codewerte in einem externen Standard definiert sind, eine vollständige Validierung durchzuführen, gehen Sie folgendermaßen vor:

 

1.Erstellen Sie eine Kopie der mit MapForce bereitgestellten .codelist-Standarddatei. Die .codelist-Dateien für die einzelnen EDI-Varianten befinden sich im Verzeichnis C:\Programme\Altova\MapForce2019\MapForceEDI\. Wenn Sie z.B. eine benutzerdefinierte .codelist-Datei zur Validierung von UN/EDIFACT Messages hinzufügen, verwenden Sie als Vorlage die Datei UNCL.Codelist aus dem Verzeichnis C:\Programme\Altova\MapForce2019\MapForceEDI\EDIFACT\.

 

Anmerkung:Um den Inhalt der Datei ändern zu können, benötigen Sie Schreibrechte für das Verzeichnis C:\Programme\Altova\MapForce2019\MapForceEDI.

 

2.Benennen Sie die neu erstellte .codelist-Datei um und geben Sie ihr einen kurzen beschreibenden Namen, da die Datei von anderen MapForce-Konfigurationsdateien aus referenziert wird. Nennen wir die benutzerdefinierte .codelist-Datei in diesem Beispiel UNECE24.codelist.
3.Löschen Sie mit Hilfe eines XML-Editors wie XMLSpy den gesamten Inhalt zwischen den Tags <Codelist> und </Codelist> aus der neuen Datei. Die Datei sollte nun folgendermaßen aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="5" xsi:noNamespaceSchemaLocation="../EDIConfig5.xsd">  
  <Codelist>
   

...

 
  </Codelist>
</Config>

4.Fügen Sie unter <Codelist> eine neue <Field>-Struktur wie unten gezeigt hinzu. In diesem Beispiel wird angenommen, dass wir externe Codewerte für das Datenelement 4405 des UN/EDIFACT-Standards hinzufügen. Ersetzen Sie die Feldattribute andernfalls bedarfsgemäß. Den korrekten Namen, die korrekte Länge und den korrekten Typ der einzelnen Felder finden Sie in der von MapForce bereitgestellten .codelist-Standarddatei (in diesem Beispiel UNCL.Codelist).

<?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="F4405" Length="3" Type="Alphanumeric">
        <Title>Trade and transport status codes</Title>
        <Description>Code specifying a status.</Description>        
        <Values>
         

...

 
        <Values>
    </Field>
  </Codelist>
</Config>

5.Fügen Sie unter <Values> für jeden externen Code ein neues <Value>-Element hinzu, wie unten gezeigt. In diesem Beispiel fügen wir die ersten beiden in der UN/ECE Recommendation 24 ("Trade and Transport Status Codes", siehe http://www.unece.org/fileadmin/DAM/cefact/recommendations/rec24/rec24_ecetrd258e.pdf) definierten Codes hinzu.

<?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="F4405" Length="3" Type="Alphanumeric">
        <Title>Trade and transport status codes</Title>
        <Description>Code specifying a status.</Description>        
        <Values>
          <Value Code="1">
              <Title>Arrival, completed</Title>
              <Description>The goods/consignment/equipment/means of transport has arrived.</Description>
          </Value>
          <Value Code="2">
              <Title>Loading, authorized</Title>
              <Description>Authorization to load has been given.</Description>
          </Value>
        <Values>
    </Field>
  </Codelist>
</Config>

Die benutzerdefinierte .codelist-Datei ist jetzt fertig definiert, aber noch nicht an MapForce gebunden. Beachten Sie, dass wir in diesem Beispiel nur zwei externe Codes  ("1" und "2") hinzugefügt haben, dass die benutzerdefinierte .codelist-Datei jedoch in realen Einsatzszenarien alle im externen Standard definierten Codewerte enthalten sollte.

 

Bevor die benutzerdefinierte .codelist-Datei von MapForce erkannt werden kann, muss noch ein letzter Schritt erledigt werden:

 

1.Da das Datenelement 4405 nun keine unvollständige Validierung mehr aufweist, müssen Sie MapForce anweisen, eine vollständige Validierung durchzuführen. Dazu muss das Attribut Incomplete="1" für dieses Feld in der Datei UNCL.codelist geändert werden (das Attribut muss entweder entfernt oder auf Incomplete="0" gesetzt werden). Ändern Sie die Datei UNCL.codelist daher, wie unten gezeigt:

...

 

<Field Name="F4405" Length="3" Type="Alphanumeric" Incomplete="0">
        <Title>Status description code</Title>
        <Description>Code specifying a status.</Description>
        <Note>1 For transport status, use UN/ECE Recommendation 24.</Note>

 

...

2.Fügen Sie in der Datei UNCL.codelist eine Referenz zur neu erstellten Datei UNECE24.codelist hinzu, wie unten gezeigt:

<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="5" xsi:noNamespaceSchemaLocation="../EDIConfig5.xsd">
  <Include href="UNECE24.codelist"/>
  <Codelist>

 

....

 

Sie haben die MapForce-Konfigurationsdateien nun so angepasst, dass das Feld 4405 anhand von in einer benutzerdefinierten Datei gespeicherten Codewerten validiert wird. Diese Methode kann auch auf andere EDI-Varianten angewendet werden, um eine vollständige Feldvalidierung anhand eines externen Standards durchzuführen.

 

Sie können externe Codelisten zwar auch durch Bearbeitung vorhandener mit MapForce bereitgestellter .codelist-Dateien (in diesem Beispiel UNCL.codelist) definieren, doch wird dies nicht empfohlen. Es empfiehlt sich, externe Codelisten immer in benutzerdefinierten Dateien zu definieren und in den MapForce-Standardkonfigurationsdateien nur möglichst minimale Änderungen vorzunehmen; dies erleichtert eine zukünftige Migration zu neueren Versionen von EDI-Formaten.

 

Beachten Sie, dass die Feldvalidierung mit den obigen Schritten global für jedes Segment, in dem Feld 4405 verwendet wird, definiert wird. In einigen Fällen sollen die benutzerdefinierten Codelisten nur auf bestimmte Messages angewendet werden (d.h. die Konfiguration soll nicht global auf alle Messages, sondern inline oder lokal auf eine bestimmte Message angewendet werden). Nähere Informationen zur Anwendung der inline-Methode finden Sie unter Definieren von Codewerten auf Message-Ebene (inline).


© 2019 Altova GmbH