機械翻訳について

アプリケーション・メッセージからのアウトバウンドEDIの生成

Oracle Integrationを使用すると、B2Bアクションを使用してバックエンド・アプリケーションのXMLメッセージからEDI X12ドキュメントを作成できます。 その後、EDI X12ドキュメントが取引パートナに送信されます。

この例では、次の点について説明します:

  • マップ・アクションを使用したバックエンド・アプリケーションのXMLメッセージの、アウトバウンド方向のB2Bアクションへの入力となるedi-xml-documentへの変換。
  • EDIで使用するデリミタを指定します。
  • 参照を使用したEDI識別子の指定。
  • edi-xml-documentをEDI X12ドキュメントに変換し、取引パートナに送信します。
  • EDI X12 997 Ackメッセージを受信して解釈するための別の統合の使用。

ノート:

このユースケースでは、バックエンド・アプリケーション・メッセージはXML over RESTとして受信されます。 ただし、Oracle IntegrationはRESTを介したJSONもサポートしています。 または、「Oracle ERP Cloudアダプタ」などの他のアダプタを使用してメッセージを受信することもできます。 このユースケースでは、参照の使用などの一般的なガイドラインのみを提供します。 また、別のメソッド(データベースへの問合せによる値の取得など)も使用できます。 Oracle Integrationで使用可能なアクションおよびアダプタを使用して、ユース・ケースに対応します。

前提条件

  1. 統合ルックアップに移動し、Trading-Partners-Lookupという名前の新しい参照を次のように作成します:

  2. アウトバウンドEDIドキュメントの送信先の取引パートナに対応するエントリを追加します。
  3. 次の列を追加します:
    • Trading-Partner-Id
    • EDI_Interchange_Identifier
    • EDI_Group_Identifier
    • EDI_Interchange_Id_Qualifier
    この参照は、特定の取引パートナに対応するEDI識別子をフェッチするために統合で使用されます。
  4. ホスト会社のエントリを追加して、会社のEDI識別子も入力できるようにします。

アウトバウンドEDI処理の統合を構築するための一般的なガイドライン

  1. 「RESTアダプタ」トリガー接続を使用してバックエンド・アプリケーションXMLメッセージを受信します。
    入力XMLのいずれかの要素で、アウトバウンドEDIの受信者である取引パートナを指定する必要があります。 たとえば、入力XMLには次のものがあります:
    <tradingPartnerId>Micro Parts</tradingPartnerId>

    この場合、受信者取引パートナはMicro Partsであり、作成した参照に一致するエントリが必要です。 この参照を使用すると、統合でマイクロ・パーツのEDI識別子を動的に取得できます。

  2. 次に、B2Bアクションを追加し、アウトバウンド方向用に構成します。
  3. X12「文書標準」「ドキュメントのバージョン」として4010「ドキュメント・タイプ」として「850 (購買オーダー)」を選択します。
  4. バックエンド・アプリケーションのXMLメッセージをedi-xml-documentに変換するために、「RESTアダプタ」トリガー接続とB2Bアクションの間で発生するマップ・アクションを構成します。

    マップ式でルックアップを参照して、EDI識別子を取得します。 これについては、項の後半で説明します。

  5. translation-statusSuccessまたはWarningのいずれかであることを確認して、EDIの変換が正常に完了したかどうかを確認します。

    成功した場合は、アダプタ起動接続を使用して、EDIドキュメントを取引パートナに送信します。 たとえば、FTPアダプタ起動接続を使用して、EDIドキュメントを外部のB2B Value Added Network (VAN)プロバイダに配信し、最終的なプッシュで取引パートナに転送します。

  6. 「ステージ・ファイルを使用したインバウンドEDIバッチ・ファイルの処理および997確認の送信」で説明されているインバウンドEDIパターンを使用して別の統合を作成し、EDI X12 997 (機能確認)ドキュメント・タイプを受信します。 これについては、この項の後半で詳しく説明します。

選択したEDIデリミタの指定

B2Bアクションを使用すると、edi-xml-document > headers > interchange-ctrl要素内のXML属性にEDIデリミタを割り当てることで、選択したデリミタを指定できます。 値を設定しない場合は、デフォルト値が使用されます。

任意の属性に単一のASCII文字を割り当てます。 特殊文字、印刷できない文字またはUnicode文字を指定するには、「TranslateInputの要素」の項でサポートされている値を参照してください。

次の属性は、各デリミタを表します:

EDI X12デリミタ 値を設定するXML属性 デフォルト値
要素デリミタ edi-xml-document > headers > interchange-ctrl > attribute 'element-separator' *
セグメント終了記号 edi-xml-document > headers > interchange-ctrl > attribute 'segment-terminator' ~
コンポジット要素デリミタ edi-xml-document > headers > interchange-ctrl > attribute 'subelement-separator' :

反復セパレータ

(X12 4020以降のバージョンでのみ使用)

edi-xml-document > headers > interchange-ctrl > attribute 'repetition-separator' なし

ノート:

データ値にデリミタ文字が含まれていないことを確認します。 データに出現しないデリミタを指定します。 そうしないと、生成されたEDIを正しく解析できません。 各デリミタには、個別の文字も使用する必要があります。 2つのデリミタに同じ文字を使用すると、無効なEDIメッセージが生成されます。

交換ヘッダーおよびグループ・ヘッダーへのEDI識別子の挿入

アウトバウンドEDI X12では、交換およびグループ・エンベロープのヘッダー・セグメント(ISAおよびGSセグメント)でEDI識別子を指定する必要があります。 これらは、デフォルト値が割り当てられていない必須要素です。 次に説明する6つのヘッダー・フィールドには、少なくとも値を指定する必要があります。 残りのヘッダー・フィールドにはデフォルト値が割り当てられます。

前に作成した参照を使用して、次の値が移入されます:
EDI X12ヘッダー・フィールド Trading-Partner-Lookupに基づくマッピングのガイドライン ターゲット要素
ISA05: 交換送信者ID修飾子

これは、この要素のX12コード・リストのコードを使用する必要がある2文字の値です。

予期される値は、送信側(つまり、ホスト会社)の交換ID修飾子です。 参照から、「ホスト会社」エントリのEDI_Interchange_Id_Qualifierをフェッチし、値として割り当てます。

マッピング式のサンプルは次のとおりです:



dvm:lookupValue ("tenant/resources/dvms/Trading-Partners-Lookup", "Trading-Partner-Id", "Host Company", "EDI_Interchange_Id_Qualifier", "Trading-Partners-Lookup error" )
edi-xml-document headers > interchange-ctrl > attribute 'sender-id-qualifier'
ISA06: 交換送信者ID

値は最大15文字です。

予想される値は、送信側(つまり、ホスト会社)の交換IDです。 参照から、エントリ「ホスト会社」EDI_Interchange_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
dvm:lookupValue ("tenant/resources/dvms/Trading-Partners-Lookup", "Trading-Partner-Id", "Host Company", "EDI_Interchange_Identifier", "Trading-Partners-Lookup error" )
edi-xml-document > headers > interchange-ctrl > attribute 'sender-id'
ISA07: 交換レシーバIDクオリファイア

これは2文字の値で、この要素のX12コード・リストのコードを使用する必要があります。

予想される値は、リモート取引パートナである受信パーティの交換IDクオリファイアです。 参照から、入力tradingPartnerId要素で指定されたエントリのEDI_Interchange_Id_Qualifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
dvm:lookupValue ("tenant/resources/dvms/Trading-Partners-Lookup","Trading-Partner-Id", /nssrcmpr:execute/tns:AcmePurchaseOrder/tns:tradingPartnerId, "EDI_Interchange_Id_Qualifier", "Trading-Partners-Lookup error" ) 
edi-xml-document > headers > interchange-ctrl > attribute 'receiver-id-qualifier'
ISA08: 交換レシーバID

値は最大15文字です。

予想される値は、リモート取引パートナである受信パーティの交換IDです。 参照から、入力tradingPartnerId要素で指定されたエントリのEDI_Interchange_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
dvm:lookupValue ("tenant/resources/dvms/Trading-Partners-Lookup", "Trading-Partner-Id",/nssrcmpr:execute/tns:AcmePurchaseOrder/tns:tradingPartnerId,"EDI_Interchange_Identifier", "Trading-Partners-Lookup error" )
edi-xml-document > headers > interchange-ctrl > attribute 'receiver-id'
GS02: アプリケーション送信者コード

値は2から15文字の間です。

予想される値は、送信側(つまり、ホスト会社)のアプリケーション送信者コードです。 参照から、エントリ「ホスト会社」EDI_Group_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:

dvm:lookupValue ("tenant/resources/dvms/Trading-Partners-Lookup","Trading-Partner-Id", "Host Company", "EDI_Group_Identifier", "Trading-Partners-Lookup error" )
edi-xml-document > headers > 「グループ」 > app-senders-code
GS03: 消込受け側コード

値は2から15文字の間です。

予想される値は、リモート取引パートナである受信パーティのアプリケーション・レシーバ・コードです。 参照から、入力tradingPartnerId要素で指定されたエントリのEDI_Group_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:

dvm:lookupValue ("tenant/resources/dvms/Trading-Partners-Lookup", "Trading-Partner-Id", /nssrcmpr:execute/tns:AcmePurchaseOrder/tns:tradingPartnerId, "EDI_Group_Identifier", "Trading-Partners-Lookup error" )
edi-xml-document > headers > 「グループ」 > app-receivers-code

EDI管理番号の自動生成

アウトバウンドEDI X12文書には3つの管理番号も必要であり、B2B処理では一意の増分値を使用してそれらが自動的に生成されます。
  • 交換管理番号。ISA13要素およびIEA02要素に移入されます。
  • GS06要素およびGE02要素に移入されるグループ管理番号。
  • ST02要素およびSE02要素に移入されたトランザクション・セット管理番号。

同様に、「交換」および「グループ」ヘッダーの「日付」および「時間」フィールドも、現在のタイムスタンプに基づいて自動的に生成されます。 その他の残りのフィールドには、edi-xml-document > 「トレーラ」要素のフィールドを含め、デフォルト値が割り当てられます。

interchange-ctrlおよび「グループ」の属性に値を明示的に割り当てることで、デフォルト値をオーバーライドできます。

翻訳エラーの確認

EDIの世代中にレポートされる可能性のある検証エラーを確認する必要があります。 検証エラーは、生成されたEDIが構文的に無効であり、取引パートナによって拒否される可能性があることを意味します。 マッピングまたは入力データを修正して、エラーを解決する必要があります。

切替えアクションおよび成功条件をTranslateOutput「translation-status = "Success"またはTranslateOutput」translation-status = "Warning"として使用して、検証エラーを確認します。 それ以外の場合、TranslateOutput > 「変換ステータスはエラーです」の場合は、クリティカルな検証エラーがあることを示します。

出力EDIペイロード

EDI変換が正常に完了した場合(エラーなしまたは警告のみ)、TranslateOutput > edi-payload要素には生成されたEDIが移入されます。 この値はBase64-encodedであり、取引パートナへの配信時に実際のEDIドキュメントを取得するには、decode64ファンクションまたはバリアントを適用する必要があります(たとえば、FTPアダプタ起動接続を介して送信されるファイルに書き込む場合)。

インバウンドEDI X12 997機能確認の受信

リモート取引パートナがEDI文書を受信すると、EDI X12 997文書が処理され、暫定確認として戻されます。 997確認メッセージには、送信した元のEDIドキュメントが取引パートナによって解析されたかどうかを示す、承認済や拒否済などのステータスがレポートされます。 997確認メッセージを受信したら、それを調べて取引パートナから報告された結果を判別することが重要です。 拒否された場合は、修正処理を実行できます。

997確認を受信する統合を構築するための一般的なガイドライン

「EDIメッセージの解析および変換」で説明されているインバウンドEDIパターンを使用して、個別の統合を構築する必要があります。

  1. B2Bアクションで、「997 (機能確認)」ドキュメント・タイプを選択します。
  2. この統合ではバックエンド・アプリケーション・メッセージを生成する必要がないため、変換ステップを削除します。 バックエンド・システムでは、通常、B2Bレイヤーの確認は必要なく、サポートもされません。
  3. TranslateOutputedi-xml-document「func-ack-report (機能確認レポートと同じ)」func-ack-statusにある機能確認ステータス・フィールドのチェックを追加します。
    edi_map.pngの説明は以下のとおりです
    「図edi_map.pngの説明」

    この要素の値は「成功」警告または「エラー」で、取引パートナから報告された受入ステータスを表します。 エラーの場合、func-ack-detailsフィールドには997確認メッセージの内容の解釈を説明するプレーン・テキストが移入されます。

    「B2Bアクション入力および出力スキーマ・リファレンス」の章のfunc-ack-report (機能確認レポートと同じ)の各子要素の説明を参照してください。

    ノート:

    B2Bアクションは、インバウンド997確認ドキュメントを解析するときに別の997確認メッセージを生成しません。 EDI X12標準では、確認メッセージの確認がないという動作が定義されています。 それ以外の場合は、手続き型無限ループを意味します。