アプリケーション・メッセージからのアウトバウンド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で使用可能なアクションおよびアダプタを使用して、ユース・ケースに対応します。前提条件
- 統合→ルックアップに移動し、
Trading-Partners-Lookupという名前の新しい参照を次のように作成します: - アウトバウンドEDIドキュメントの送信先の取引パートナに対応するエントリを追加します。
- 次の列を追加します:
Trading-Partner-IdEDI_Interchange_IdentifierEDI_Group_IdentifierEDI_Interchange_Id_Qualifier
- ホスト会社のエントリを追加して、会社のEDI識別子も入力できるようにします。
アウトバウンドEDI処理の統合を構築するための一般的なガイドライン
- 「RESTアダプタ」トリガー接続を使用してバックエンド・アプリケーションXMLメッセージを受信します。
入力XMLのいずれかの要素で、アウトバウンドEDIの受信者である取引パートナを指定する必要があります。 たとえば、入力XMLには次のものがあります:
<tradingPartnerId>Micro Parts</tradingPartnerId>この場合、受信者取引パートナはMicro Partsであり、作成した参照に一致するエントリが必要です。 この参照を使用すると、統合でマイクロ・パーツのEDI識別子を動的に取得できます。
- 次に、B2Bアクションを追加し、アウトバウンド方向用に構成します。
- X12を「文書標準」、「ドキュメントのバージョン」として4010、「ドキュメント・タイプ」として「850 (購買オーダー)」を選択します。
- バックエンド・アプリケーションのXMLメッセージをedi-xml-documentに変換するために、「RESTアダプタ」トリガー接続とB2Bアクションの間で発生するマップ・アクションを構成します。
マップ式でルックアップを参照して、EDI識別子を取得します。 これについては、項の後半で説明します。
- translation-statusが
SuccessまたはWarningのいずれかであることを確認して、EDIの変換が正常に完了したかどうかを確認します。成功した場合は、アダプタ起動接続を使用して、EDIドキュメントを取引パートナに送信します。 たとえば、FTPアダプタ起動接続を使用して、EDIドキュメントを外部のB2B Value Added Network (VAN)プロバイダに配信し、最終的なプッシュで取引パートナに転送します。
- 「ステージ・ファイルを使用したインバウンド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をフェッチし、値として割り当てます。 マッピング式のサンプルは次のとおりです:
|
edi-xml-document headers > interchange-ctrl > attribute 'sender-id-qualifier' |
| ISA06: 交換送信者ID |
値は最大15文字です。 予想される値は、送信側(つまり、ホスト会社)の交換IDです。 参照から、エントリ「ホスト会社」のEDI_Interchange_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
|
edi-xml-document > headers > interchange-ctrl > attribute 'sender-id' |
| ISA07: 交換レシーバIDクオリファイア |
これは2文字の値で、この要素のX12コード・リストのコードを使用する必要があります。 予想される値は、リモート取引パートナである受信パーティの交換IDクオリファイアです。 参照から、入力tradingPartnerId要素で指定されたエントリのEDI_Interchange_Id_Qualifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
|
edi-xml-document > headers > interchange-ctrl > attribute 'receiver-id-qualifier' |
| ISA08: 交換レシーバID |
値は最大15文字です。 予想される値は、リモート取引パートナである受信パーティの交換IDです。 参照から、入力tradingPartnerId要素で指定されたエントリのEDI_Interchange_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
|
edi-xml-document > headers > interchange-ctrl > attribute 'receiver-id' |
| GS02: アプリケーション送信者コード |
値は2から15文字の間です。 予想される値は、送信側(つまり、ホスト会社)のアプリケーション送信者コードです。 参照から、エントリ「ホスト会社」のEDI_Group_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
|
edi-xml-document > headers > 「グループ」 > app-senders-code |
| GS03: 消込受け側コード |
値は2から15文字の間です。 予想される値は、リモート取引パートナである受信パーティのアプリケーション・レシーバ・コードです。 参照から、入力tradingPartnerId要素で指定されたエントリのEDI_Group_Identifierをフェッチし、値として割り当てます。 たとえば、マッピング式は次のようになります:
|
edi-xml-document > headers > 「グループ」 > app-receivers-code |
EDI管理番号の自動生成
- 交換管理番号。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パターンを使用して、個別の統合を構築する必要があります。
- B2Bアクションで、「997 (機能確認)」ドキュメント・タイプを選択します。
- この統合ではバックエンド・アプリケーション・メッセージを生成する必要がないため、変換ステップを削除します。 バックエンド・システムでは、通常、B2Bレイヤーの確認は必要なく、サポートもされません。
- TranslateOutput→edi-xml-document→「func-ack-report (機能確認レポートと同じ)」→func-ack-statusにある機能確認ステータス・フィールドのチェックを追加します。

「図edi_map.pngの説明」この要素の値は「成功」、警告または「エラー」で、取引パートナから報告された受入ステータスを表します。 エラーの場合、func-ack-detailsフィールドには997確認メッセージの内容の解釈を説明するプレーン・テキストが移入されます。
「B2Bアクション入力および出力スキーマ・リファレンス」の章のfunc-ack-report (機能確認レポートと同じ)の各子要素の説明を参照してください。
ノート:
B2Bアクションは、インバウンド997確認ドキュメントを解析するときに別の997確認メッセージを生成しません。 EDI X12標準では、確認メッセージの確認がないという動作が定義されています。 それ以外の場合は、手続き型無限ループを意味します。
