機械翻訳について

B2Bアクション入力および出力スキーマ・リファレンス

B2Bアクションのデータ・マッピングを構成する際、TranslateInputおよびTranslateOutput要素を使用して、これらの要素との間で送受信するデータをマップします。

この項では、TranslateInputおよびTranslateOutputのデータ要素に含まれるスキーマ要素について説明します。 これらのスキーマ要素は、B2Bアクションの動作を制御します。

インバウンドEDIのスキーマ要素

インバウンドEDIユースケースでは、B2Bアクションへの入力はEDIペイロード要素を持ち、解析後に生成される出力はEDIドキュメントのXML形式を持ちます。

TranslateInputデータ要素はB2Bアクションへの入力メッセージを表し、TranslateOutputはアクションの出力を表します。 したがって、少なくともTranslateInputには、入力マップ・アクションを使用して値を割り当てるedi-payload要素が含まれている必要があります。 その後、TranslateOutputデータ要素はedi-xml-document要素を生成し、解析されたデータを検証エラー(ある場合)とともにXML形式で返します。

edi-translate-inbound.pngの説明は以下のとおりです
「図edi-translate-inbound.pngの説明」

次の表では、インバウンドEDIシナリオのTranslateInputおよびTranslateOutputに含まれる各要素について説明します。

TranslateInputの要素

要素 説明
edi-payload

ネイティブEDI X12ペイロード(ISAセグメントで始まりIEAセグメントで終わる)から生成されたbase64-encoded文字列値をこの要素に割り当てる必要があります。 EDIにはデリミタまたはイメージなどのバイナリ・コンテンツとして使用される印刷不可能な文字が含まれている場合があるため、Base64エンコーディングが必要です。 EDI X12ペイロードにトランザクションのバッチが含まれる場合、B2B処理とともにステージ・ファイル処理を使用してバッチを処理する必要があります。

tracking-info

この要素は、バッチ処理のステージ・ファイル・アクションでB2Bアクションを使用する場合にのみ必要です。 この要素には、ステージ・ファイル・アクションからB2Bアクションに渡される各EDIトランザクションのトラッキング情報が含まれます。

edi-encoding

EDI X12ペイロードの文字エンコーディング(デフォルトはUTF-8)。

accept-message-on-errors

and

reject-message-on-errors

デフォルトでは、入力EDIペイロードの構文エラーは、変換時に検証エラーとして扱われます。 この動作は、次の2つの方法で変更できます:
  1. 現在のメッセージの検証チェックをオフにします。 または
  2. 一般的な場合は、検証をオンのままにします。 ただし、特定のタイプの検証エラーには時間がかかり、検証エラーが発生した場合でもメッセージを正常に処理できます。

これらの要素は、無視する検証エラーのタイプをきめ細かく制御することで、前述の2番目のオプションを提供します。 たとえば、B2Bレイヤーが無効なデータを検出しても、バックエンド・アプリケーションにメッセージを転送する特定の状況では、このファイングレイン制御が必要になる場合があります。

これらの要素はどちらも文字列型であり、文字列の形式を使用すると1つ以上の検証エラー・タイプを指定できます。 これらの要素は互いに逆の意味を持ちます。

形式は次のとおりです。

error#<error_code1>,error#<error_code2>,...

これはカンマ区切りの文字列で、各トークンはerror#で始まり、その後にB2B-01752などのエラー・コードが続きます(たとえば、トークンは: error#B2B-01752)。

accept-message-on-errors要素は無視する検証エラーを定義し、reject-message-on-errors要素は実際のエラーとして処理する検証エラーを定義します。

検証エラーが実際のエラーとして処理されると、B2Bアクションでは、拒否フラグ付きの確認メッセージ(EDI X12 997)も生成されます。 ただし、検証エラーが無視されると、997にはAccepted, but errors were notedステータスのフラグが付けられます。

validate
デフォルトでは、入力EDIペイロードの構文エラーは、変換時に検証エラーとして扱われます。 この動作は、次の2つの方法で変更できます:
  1. 現在のメッセージの検証チェックをオフにします。 または
  2. 一般的な場合は、検証をオンのままにします。 ただし、特定のタイプの検証エラーでは不十分であるため、検証エラーが発生した場合でもメッセージを正常に処理できます。

この要素は、前述の最初のオプションを提供します。 この要素をfalseに設定すると、検証チェックがオフになり、B2Bアクションの構成ウィザードでチェック・ボックス「入力データに対して検証を実行しますか」の選択を解除した場合と同じ効果があります。 ただし、この要素はチェック・ボックス設定をオーバーライドし、すべてのメッセージに設定できます(ただし、チェック・ボックス設定はすべてのメッセージに使用されます)。 この要素が設定されていない場合は、ウィザードのチェック・ボックス設定によって、検証をオンにするかオフにするかが制御されます。

functional-ack-required

この要素をfalseに設定すると、B2Bアクションは機能確認メッセージを生成しません。 trueに設定されているか、設定されていない場合、B2Bアクションがバッチ内の最後のメッセージ(つまり、機能グループ内の最後のトランザクション・セット)を処理するときに、機能確認メッセージがTranslateOutput要素に含まれます。

passthrough-errors

この要素は、バッチ処理のステージ・ファイル・アクションでB2Bアクションを使用する場合にのみ必要です。 この要素は、エラーが発生した場合に適切な機能確認メッセージを生成できるように、特定のエラーをステージ・ファイル・アクションからB2Bアクションに転送するだけです。

B2Bアクションをスタンドアロン・モードで使用する場合は、この要素を設定しないでください。

routing-info

この要素は、バッチ処理のステージ・ファイル・アクションでB2Bアクションを使用する場合にのみ必要です。

B2Bアクションをスタンドアロン・モードで使用する場合は、この要素を設定しないでください。

input-source-context

このオプション要素を使用するには、B2BアクションによってTranslateOutput要素にコピーされる任意の識別子文字列を割り当てることができます。 たとえば、B2Bアクションがファイルからのメッセージを処理している場合は、ファイル名をこの要素に設定します。 要素の目的は、出力で値を使用できるようにすることです。 そのため、統合内でさらにアクションをリレーしたり、トラッキング変数内に格納できます。

TranslateOutputの要素

要素 説明
edi-xml-document

この要素は、翻訳されたメッセージとともにXMLフォームで返されます。 「インバウンドEDI用のTranslateOutput XMLのサンプル」を参照してください。

edi-xml-document > headers > interchange-ctrl

edi-xml-document > headers > group

これらのヘッダー要素は、EDI X12 ISAおよびGSエンベロープから解析された値とともに返されます。

edi-xml-document > func-ack-report
この要素は、ドキュメント・タイプが997 (機能確認)の場合にのみ返され、997に固有の特別なコンテンツを保持します。 子要素は次のとおりです:
  • original-tracking-info: この機能確認から再構築された元のアウトバウンド・メッセージのトラッキング識別子。 このトラッキング識別子は、アウトバウンドEDIの場合にTranslateOutput > tracking-infoで生成されるtracking-infoと部分文字列が一致します。 これは、最初に取引パートナに送信されたアウトバウンド・メッセージに着信997を関連付けるために使用されます。 たとえば、original-tracking-infoの値はtc=1013;gc=1013;sn=SenderID;rc=ReceiverID;st=A;で、TranslateOutput > tracking-infoの対応する値はtc=1013;gc=1013;sn=SenderID;rc=ReceiverID;ic=000000015です(これらの値には部分文字列一致があります。つまり、両方の値のtc=1013;gc=1013;sn=SenderID;rc=ReceiverID文字列の一部に完全一致があります)。
  • func-ack-status: 取引パートナによって報告された全体的な受入ステータス。 値は: AcceptedRejectedまたはAccepted But Errors Were Notedのステータスに対応するSuccessErrorまたはWarning
  • func-ack-details: 人間が読めるプレーン・テキスト形式での機能確認の解釈。

edi-xml-document > transaction-data

この要素は、STセグメントで始まり、SEセグメントで終わる、EDIメッセージ内のデータ・セグメントおよび要素の階層構造とともに返されます。

EDI X12データ内の各セグメントまたはループは親XML要素になり、その構成要素であるEDI要素は子XML要素になります。

たとえば、これはtransaction-data要素内に表示される場合があります:

<ST>
    <ST01>850</ST01>
    <ST02>1234</ST02>
</ST>

前述のXMLフラグメントは、この行を持つEDI X12データから解析されたデータ値を表します: ST*850*1234~

XML要素<ST01>および<ST02>には、EDIデータ内で発生する対応する要素の位置に基づいて値が割り当てられます。

edi-xml-document > trailers > group

edi-xml-document > trailers > interchange-ctrl

トレーラ要素は、EDI X12 IEAおよびGEエンベロープから解析された値とともに返されます。

functional-ack-present

EDI X12 997の機能確認がfunctional-ack要素で生成された場合、この要素はtrueとして返されます。

この要素は、確認メッセージが不要または生成された場合にfalseとして返されます(TranslateInput > functional-ack-requiredfalseに設定されている場合、確認メッセージは生成されません)。

B2B処理では、次のように機能確認メッセージが自動的に生成されます:
  • シングルトン・トランザクションの場合(EDIメッセージまたはファイル内に単一のオーダーがある場合など): 機能確認は、トランザクションの処理と同時に即時に生成されます。
  • バッチ取引の場合(EDIメッセージまたはファイル内に50のオーダーがある場合など): 機能確認は、バッチ内の最後のトランザクションが処理されるときに生成されます。 バッチとは、複数のトランザクション(つまり、ST/SEセグメントの複数のペア)を含む単一のEDI X12機能グループを意味します。 機能確認では、複数のAK2セグメントおよびAK5セグメントを含めることで、そのバッチ内のすべてのトランザクションのステータスがレポートされます。 EDI X12標準によると、バッチごとに1つの機能確認のみが必要です。
functional-ack

functional-ack-presenttrueとして返される場合、functional-ack要素は、取引パートナに送信する準備ができているBase64-encoded EDI X12 997 (機能確認)ドキュメントとともに返されます。 ネイティブEDIコンテンツを送信しようとしている時点(たとえば、取引パートナに配信するファイルに書き込む前)でネイティブEDIコンテンツを取得するには、Decode64関数を適用する必要があります。

functional-ack-tracking-info

この要素は、生成された機能確認メッセージの一意の送信識別子を表す文字列とともに返されます。 この文字列には、機能確認に使用される管理番号が含まれます。 この値は、取引パートナが997ドキュメントを処理できない場合にトラッキング目的で役立ちます。

validation-errors-present

入力ペイロードの解析中に検証エラーが検出された場合、この要素はtrueとして返されます。

validation-errors > error

validation-errors > validation-error-report

error要素は、XML構造内の各検証エラーとともに検証エラーとともに返されます。エラー・コードとエラー・メッセージは、別々のXML要素として返されます。 最大100個の検証エラーが報告されます。

validation-error-report要素は、最大100個の検証エラーの連結リストとともに改行文字で区切られて返されます。

tracking-info

この要素は、入力EDIで発生する一意の伝送識別子を表す文字列とともに返されます。 この文字列には、入力EDIメッセージの(interchange/group/transaction-set制御番号で使用される制御番号が含まれます。 この値はトラッキング目的で役立ちます。

translation-status

この要素は、次のように値SuccessWarningまたはErrorとともに返されます:

Success: 入力EDIが正常に解析され、検証エラーが検出されなかったことを示します(検証がオフの場合も発生します)。

Warning: 検証エラーがあったが、それらがマイナーであったか、ユーザーが特定のエラーを厳密に処理するように選択したことを示します。これは、TranslateInput > accept-message-on-errors値によって制御されます。

Error: 翻訳中にクリティカル検証エラーが検出され、機能確認コンテンツでメッセージが拒否済としてマークされたことを示します。 統合では、後続の処理のためにバックエンド・システムにメッセージを送信しないでください。かわりに、メッセージをエラー処理にルーティングする必要があります。

transaction-summary

この要素は、トランザクションのバッチ全体にわたって、成功、警告またはエラーで解析されたトランザクションの合計数とともに返されます。

input-source-context

この要素は、後続の統合アクションに表示されるように、TranslateInput > input-source-contextの動詞コピーとして返されます。

インバウンドEDI用のTranslateOutput XMLのサンプル

この項では、インバウンドEDIのサンプルTranslateOutput XMLファイルを示します。

<ns0:executeResponse xmlns:ns0="http://xmlns.oracle.com/cloud/adapter/ediAdapter/EDI_Translate_REQUEST/types">
    <TranslateOutput xmlns="http://xmlns.oracle.com/b2b/X12/4010/transactionset-850/default" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <edi-xml-document format="X12-4010-850" ver="1.0.20200326">
            <headers>
                <interchange-ctrl ack-requested-code="0" auth-info="" auth-info-qualifier="00" ctrl-standards-id="U" ctrl-version-num-code="00401" date="190312" element-separator="|" interchange-ctrl-num="000001894" receiver-id="22222" receiver-id-qualifier="01" sec-info="" sec-info-qualifier="00" segment-terminator="0xa" sender-id="111111T" sender-id-qualifier="01" subelement-separator="~" time="0845" usage-indicator-code="T"/>
                <group app-receivers-code="ACME" app-senders-code="0124578" date="20190312" func-identifier-code="PO" group-ctrl-num="0123456" resp-agency-code="X" time="084515" version-identifier-code="004010"/>
            </headers>
            <transaction-data>
                <ST>
                    <ST01>850</ST01>
                    <ST02>1013</ST02>
                </ST>
                <BEG>
                    <BEG01>99</BEG01>
                    <BEG02>BA</BEG02>
                    <BEG03>Purchase Order Number</BEG03>
                    <BEG05>20061103</BEG05>
                    <BEG06>Contract Number</BEG06>
                    <BEG09>01</BEG09>
                </BEG>
                ....
                <SE>
                    <SE01>25</SE01>
                    <SE02>1013</SE02>
                </SE>
            </transaction-data>
            <trailers>
                <group count-of-txnsets="1" group-ctrl-num="1013"/>
                <interchange-ctrl count-of-groups="1" interchange-ctrl-num="100000020"/>
            </trailers>
        </edi-xml-document>
        <functional-ack-present>true</functional-ack-present>
        <functional-ack>SVNBfDAwfCAgICAgICAgICB8MDB8ICAgICAgICAgI...</functional-ack>
        <functional-ack-tracking-info>tc=1016;gc=1016;sn=22222;rc=111111T;ic=000000016;</functional-ack-tracking-info>
        <validation-errors-present>true</validation-errors-present>
        <validation-errors>
            <error>
                <code>B2B-01757</code>
                <category>data_codelist</category>
                <summary>Element BEG01 (element id 353) contains an invalid identification code [99] that is not listed in the allowed codes for this element (for example: 00, 44, 01, 45, 02, 46 ...).</summary>
                <location>segment-BEG &gt; BEG01 (element id 353) | segment position 2 (starting with ST segment) | element position 1 | character position 174</location>
            </error>
            <validation-error-report>[1] Error code: B2B-01757 | category: data_codelist | message: (Severe) Element BEG01 (element id 353) contains an invalid identification code [99] that is not listed in the allowed codes for this element (for example: 00, 44, 01, 45, 02, 46 ...). | segment-BEG &gt; BEG01 (element id 353) | segment position 2 (starting with ST segment) | element position 1 | character position 174</validation-error-report>
        </validation-errors>
        <tracking-info>tc=1234;gc=0123456;sn=111111T;rc=22222;ic=000001894;seq=1;tot=1;</tracking-info>
        <translation-status>Error</translation-status>
    </TranslateOutput>
</ns0:executeResponse>
 

アウトバウンドEDIのスキーマ要素

アウトバウンドEDIユースケースでは、B2Bアクションへの入力はEDIドキュメントのXML形式になり、出力はEDI形式にアセンブルされたドキュメントになります。

edi-translate-outbound.pngの説明は以下のとおりです
「図edi-translate-outbound.pngの説明」

次の表では、アウトバウンドEDIシナリオのTranslateInputおよびTranslateOutputに含まれる各要素について説明します。

TranslateInputの要素

要素 説明
edi-xml-document

変換時に出力EDIメッセージを形成するために使用する「XML」形式のデータ。

少なくとも、入力の次の子XML要素に値を割り当てる必要があります:

  • headers > interchange-ctrl:
    • 属性sender-id-qualifierには交換送信者ID修飾子の値が含まれている必要があります。 この値は、ISA05要素に挿入されます。
    • 属性sender-idには交換送信者ID修飾子の値が含まれている必要があります。 この値は、ISA06要素に挿入されます。
    • 属性receiver-id-qualifierには、交換レシーバID修飾子の値が含まれている必要があります。 この値は、ISA07要素に挿入されます。
    • 属性receiver-idには、交換レシーバID修飾子の値が含まれている必要があります。 この値は、ISA08要素に挿入されます。
  • headers > group:
    • 属性app-senders-codeには、アプリケーション送信者コードの値が含まれている必要があります。 この値は、GS02要素に挿入されます。
    • app-receivers-code属性には、アプリケーション・レシーバ・コードの値を含める必要があります。 この値は、GS03要素に挿入されます。
  • transaction-data:
    • 内部の子要素は、オーダーなどのビジネス・メッセージの構造を表します。 これらの要素をマッピングするには、EDI X12セグメントおよびビジネス・メッセージを形成する要素に関する知識が必要です。 各セグメントに指定された構文ルールで定義された他の要素の存在に基づいて、必須セグメントおよび要素に値を割り当て、条件付き要素に値を割り当てる必要があります。

    ヘッダーおよびトレーラ内の他の要素および属性にはデフォルト値が割り当てられるため、これらはオプションです。

ノート:

B2B処理では、交換、グループおよびトランザクション・セットに対して一意の管理番号が自動的に生成されます。

ノート:

アウトバウンドEDIのデリミタのカスタマイズ

デフォルトでは、element-separator*segment-delimiter~subelement-separator:です。 これらをオーバーライドするには、次のように入力XMLで値を指定します:

  • headers > interchange-ctrl > attribute 'element-separator'
  • headers > interchange-ctrl > attribute 'subelement-separator'
  • headers > interchange-ctrl > attribute 'segment-terminator'
  • headers > interchange-ctrl > attribute 'repetition-separator' (X12 4020以降のバージョンにのみ適用)

使用するデリミタ文字がASCII印刷可能文字の場合は、"|"などの文字列値を対応する属性に割り当てるだけです。 特殊文字をデリミタとして使用する場合は、16進数形式で指定します。 たとえば、0xAの場合、0xは固定のプレフィクスで、AはASCII行送り文字の16進表現です。

EDIペイロードでUTF-8などの異なるエンコーディングを使用する場合は、16進数形式を使用してUnicode文字をデリミタとして指定できます。 たとえば、Unicode文字Φをデリミタとして使用するには、0x03A60を指定します。 これが正しく機能するには、受信側取引パートナがUTF-8 EDIペイロードを受信するように準備する必要があります。

指定するデリミタ文字列値は、単一の文字にのみ一致する必要があります。 複数の文字は使用できません。 唯一の例外はsegment-terminatorで、一方の文字とオプションのASCIIキャリッジ・リターンおよび末尾に改行文字を追加できます。 たとえば、~0xd0xasegment-terminator値では、~の後に<CR>および<LF>segment-terminatorとして使用されます。つまり、各EDIセグメントは別々の行に出力されるため、読みやすくなります。

accept-message-on-errors

「エラー時のメッセージの受入れ」を参照してください。

reject-message-on-errors

「エラー時にメッセージを拒否」を参照してください。

validate

「検証」を参照してください。

input-source-context

「入力ソース・コンテキスト」を参照してください。

TranslateOutputの要素

要素 説明
edi-payload

この要素は、X12 ISAヘッダー・エンベロープで始まりIEAトレーラ・エンベロープで終わる、EDI形式の翻訳済メッセージとともに返されます。 管理番号は自動的に生成され、EDIコンテンツに挿入されます。 EDIコンテンツはBase64エンコードされていることに注意してください。

validation-errors-present

「検証エラーあり」を参照してください。

validation-errors > error

validation-errors > validation-error-report

「検証エラー - エラーおよびエラー・レポート」を参照してください。

tracking-info

この要素は、出力EDIで発生する一意の伝送識別子を表す文字列とともに返されます。 この文字列には、出力EDIメッセージの(interchange/group/transaction-set制御番号で使用される制御番号が含まれます。 この値はトラッキング目的で役立ちます。

translation-status

「換算ステータス」を参照してください。

input-source-context

「入力ソース・コンテキスト」を参照してください。

アウトバウンドEDI用のサンプルTranslateOutput XML

この項では、アウトバウンドEDIのサンプルTranslateOutput XMLファイルを示します。

<executeResponse xmlns="http://xmlns.oracle.com/cloud/adapter/ediAdapter/EDI_Generate_REQUEST/types">
    <TranslateOutput xmlns="http://xmlns.oracle.com/b2b/edi/generic/document">
        <edi-payload>SVNBKjAwKiAgICAgICAgICAqMDAqICAgI...E1fg==</edi-payload>
        <validation-errors-present>true</validation-errors-present>
        <validation-errors>
            <error>
                <code>B2B-01757</code>
                <category>data_codelist</category>
                <summary>Element BEG02 (element id 92) contains an invalid identification code [00] that is not listed in the allowed codes for this element (for example: PR, LS, DR, DS, UD, UE ...).</summary>
                <location>edi-xml-document &gt; transaction-data &gt; segment-BEG &gt; BEG02 (element id 92) | segment position 2 (starting with ST segment) | element position 2</location>
            </error>
            <validation-error-report>[1] Error code: B2B-01757 | category: data_codelist | message: (Severe) Element BEG02 (element id 92) contains an invalid identification code [00] that is not listed in the allowed codes for this element (for example: PR, LS, DR, DS, UD, UE ...). | edi-xml-document &gt; transaction-data &gt; segment-BEG &gt; BEG02 (element id 92) | segment position 2 (starting with ST segment) | element position 2</validation-error-report>
        </validation-errors>
        <tracking-info>tc=1015;gc=1015;sn=Acme Foods;rc=Global Chips;ic=000000015;</tracking-info>
        <translation-status>Error</translation-status>
    </TranslateOutput>
</executeResponse>