フィールドの検証の弛緩

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce と EDI > 構成ファイルを使用して EDI 検証をカスタマイズする >

フィールドの検証の弛緩

標準がフィールド内のコードの値を完全に適用しない場合、外部の標準または勧告により定義されたコードを許可する場合があります。EDIFACT D16A を例としてみましょう。 フィールドの一部は、 外部 ISO 標準内、または、 UN/ECE 勧告で定義されたコードの値を許可します。例えば、 データ要素 4405 は、146 コードの値を定義しますが、 346 コードの値を指定する外部 UN/ECE 勧告第 24 号の使用も許可しています。

 

MapForce 内では、フィールドのためのコードの値は(以降、「.codelist」ファイルとして称される).codelist 拡張子を持つ構成ファイルに対して検証されます。MapForce が EDI ファイルを処理する際、フィールドがその種類の EDI ための .codelist ファイル内で指定されているコードの値を持たない場合、通常の場合検証エラーが表示されます。(これは、無効なフィールドの値を無視するために、デフォルトの検証オプションが変更されていないと想定されています。次を参照してください: EDI コンポーネント検証)。 C:\Program Files\Altova\MapForce2019\MapForceEDI\ ディレクトリ内で各 EDI 種類のための .codelist ファイルを使用することができます。例えば、C:\Program Files\Altova\MapForce2019\MapForceEDI\EDIFACT\ 内で使用することのできる、UNCL.codelist ファイルは、 UN/EDIFACT フィールド内のフィールドのための使用できるコードの値です。

 

デフォルトの .codelist ファイルは、対応する EDI 標準に従い、フィールドのために使用できるすべてのコードの値を含みます。コードの値が標準により明確に定義されておらず、外部の標準により強制されている場合、検証は不完全とみなされます。具体的には、EDI 標準が (UN/EDIFACT D16A の データ要素 4405 などの) 特定のフィールドのためにコードの値のリストを強制しない場合、マッピングの実行中のフィールドの処理は、通常検証エラーを表示します。具体的には、 MapForce (または、MapForce Server、 や C#、C++、または Java プログラム などの EDI マッピングを作動する実行エンジン ) は、次のフォーマットでエラーを報告します: {Value} is not a legal value for field {Field}。 このエラーは、 .codelist ファイルで定義されている既存のコードリストの値のリスト内でフィールドの値が見つからなかったことを意味します。

 

マッピングの処理が上記のエラーなどにより中断されることを避けるためには、次を行います:

 

1.EDI 検証設定から検証の振る舞いを変更します (例えば、EDI 検証設定 ダイアログボックス上の「無効な コード リスト値」の横の「報告して拒否」チェックボックスを選択して (EDI 検証設定を構成するには、EDI コンポーネント設定 ダイアログボックスの「検証」 ボタンをクリックしてください。)

mf_relax_validaton

2.構成ファイから固定の検証を弛緩する方法は以下に表示されています。

 

MapForce は、フィールドに対して「未完成」検証ルールが存在するとマークするメカニズムを適用します。これにより、  MapForce (または、MapForce Server、 や C#、C++、または Java プログラム などの EDI マッピングを作動する実行エンジン ) は、フィールドが処理される際、エラーメッセージを作成しません。その代わりに、警告が表示され、マッピングの処理が再開されます。すなわち、 「未完成な」 検証は、を意味します。外部で適宜されているコードの値ではなく、MapForce デフォルトの .codelist ファイル内で定義されているコードの値のみが、検証のために考慮されます。

 

複雑性を追加することなく、柔軟性を追加するには、 MapForce により与えられているデフォルトの .codelist 構成ファイル特定のフィールドで不完全な検証が存在すると扱うことです。

 

デフォルトでは、次のフィールド値が外部仕様内で定義されているコードの値を含むと、 MapForce は、(エラーではなく) 警告を作成します:

 

UN/EDIFACT D.16A のデータ要素 4053
UN/EDIFACT D.16A のデータ要素 4277
UN/EDIFACT D.16A のデータ要素 4405
UN/EDIFACT D.16A のデータ要素 8179

 

警告は、このフィールドの検証が不完全であることを通知するために作成されます。不完全な検証は、正確では内データがマッピングにより生成されるために発生する場合があります。これを回避するには、カスタムの .codelist ファイルを MapForce に対して使用し、フィールド全体の検証をおこなうことが奨励されます。カスタムの .codelist ファイルは、を外部のコードの値を MapForce が理解できるフォーマットで定義し、フィールド全体の検証を行います。詳細に関しては、 次を参照してください: 外部ソースからコードの値を適用する

 

メモ:データ要素 8155 は、検証のために、外部 標準 ( ISO 6346 標準)に依存しています、 このフィールドのために、 MapForce は、 個別の .codelist ファイルを使用して、全体の検証行うこともできます。次を参照してください: 外部ソースからコードの値を適用する)。

 

必要であれば、 特定のフィールドに対して、不完全な検証ルールが適応されるように MapForce をカスタム化することができます。MapForce に、フィールドに不完全な検証ルーツが存在すると命令するには、以下を行います:

 

1.C:\Program Files\Altova\MapForce2019\MapForceEDI\ ディレクトリ (それぞれの EDI 種類のために存在するサブディレクトリ) 内の .codelist ファイルを検索し、XMLSpy などの XML エディターで開きます。す。
2.必要とされるデータ要素に対応する <Field> 要素を検索し、(下でハイライトされている) 属性 Incomplete="1" を追加します。例:

 

<Field Name="F8179" Length="8" Type="Alphanumeric" Incomplete="1">
  <Title>Transport means description code</Title>
  <Description>Code specifying the means of transport.</Description>
  <Note>1 Use UN/ECE recommendation 28.
</Note>
  <Values>
    <Value Code="1">
        <Title>Box tricycle</Title>
        <Description>Tricycle with a basket for delivering goods.</Description>
    </Value>
  </Values>
</Field>

 

メモ:このコンテンツを変更するには、 C:\Program Files\Altova\MapForce2019\MapForceEDI ディレクトリに書き込むパーミッションが必要です。

 

「未完成」とマークされるフィールドに対して処理の必要条件が警告ではなくエラーを表示することを必要とする場合、   属性 Incomplete を「1」ではなく、値 「0」に変更してください。この方法で、フィールド検証が厳密に行われ、フィールドの値が、.codelist ファイル内で定義されている値のセットの一部ではない場合、(警告ではなく) エラーが表示されます。


(C) 2019 Altova GmbH