機械翻訳について

B2B for Oracle Integrationを使用した単純な統合の作成

単純な例を使用して、統合内のB2Bアクションを使用して受信EDI X12ドキュメントを解析する方法を確認します。

統合の作成

RESTリクエストを介してEDIドキュメントを受信し、EDIを解析して検証し、XMLに変換し、レスポンスでXMLを返す基本的なインバウンド統合フローを作成します。

ノート:

この統合フローでは、簡略化のためにRESTを使用します。 「RESTアダプタ」トリガー接続は、Oracle Integrationで使用可能な「FTPアダプタ」などの他のアダプタと置き換えることができます。 通常、FTPはEDIで使用されるトランスポート・タイプです。
  1. ナビゲーション・ペインで、「統合」をクリックします。
  2. Integrationsページで、「作成」をクリックします。
  3. 使用するスタイルとして「アプリケーション駆動オーケストレーション」を選択します。 「Create New Integration」ダイアログが表示されます。
  4. 「統合とは何を呼びたいのですか?」フィールドにInbound EDI via RESTと入力し、「作成」をクリックします。

「RESTアダプタ」トリガー接続の構成

統合キャンバスで、開始ノードをクリックし、トリガー接続として「RESTエンドポイント・インタフェースの例」を選択します。

RESTエンドポイントの構成ウィザードが開きます。
  1. 「基本情報」ページで、次の詳細を入力します:
    1. 「エンドポイントとは何を呼びたいのですか?」フィールドにReceive-EDIと入力します。
    2. エンドポイントの説明(オプション)を入力します。
    3. 「次へ」をクリックします。
  2. 「リソース構成」ページで、次の手順を実行します:
    1. エンドポイント相対リソースURIとして/inbound_ediを入力します。
    2. エンドポイントで実行するアクションとしてPOSTを選択します。
    3. このエンドポイントのリクエストとレスポンスの両方を構成する場合に選択します。 「次へ」をクリックします。
  3. リクエスト・ページで、次の手順を実行します:
    1. 「リクエストのペイロード形式を選択」フィールドで「バイナリ」を選択します。

      ノート:

      ほとんどのEDI文書にはテキスト・データのみが含まれますが、区切り文字として使用される改行や特殊文字も含まれる場合があります。 一部のEDI文書には、イメージなどのRAWバイナリ・データとテキストが含まれています。 したがって、リクエスト・ペイロード形式として「バイナリ」を選択します。
    2. エンドポイントで受信するメディア・タイプとして「その他のメディア・タイプ」を選択します。
    3. 「メディア・タイプ」フィールドにapplication/EDI-X12と入力します。 「次へ」をクリックします。
  4. レスポンス・ページで、次の手順を実行します:
    1. 「レスポンス・ペイロード形式を選択」フィールドで「JSONサンプル」を選択します。
    2. 「サンプルJSONの入力」の横にあるinlineリンクをクリックします。
    3. 表示されたページで、次のサンプルJSONを入力し、OKをクリックします。
      {
         "translate_result": "xxxx",
         "hasError": false,
         "validationErrors": "xxxx",   "translated_payload":  "xxxx"
      }
    4. JSONがレスポンス・メディア・タイプとして自動的に選択されていることに注意してください。
  5. 「次」をクリックし、「サマリー」ページで「完了」をクリックして「RESTアダプタ」の構成を完了します。
これで、統合フローがキャンバスで次のように表示されます:

edi_example_rest.pngの説明は以下のとおりです
「図edi_example_rest.pngの説明」

B2Bアクションの構成

フローにB2Bアクションを追加して、EDIドキュメントをOracle Integration XMLメッセージに変換します。

  1. キャンバスの右側で、「アクション」 「アクション」アイコンをクリックし、「EDI変換」をドラッグして、最初のReceive-EDI要素の後にドロップします。
    B2Bアクションの構成ウィザードが開きます。
  2. 「基本情報」ページで、アクションの名前としてEDI-Translateと入力し、「次」をクリックします。
  3. 「データ・フォーマットの選択」ページで、次の詳細を入力します:
    1. Oracle IntegrationメッセージへのインバウンドEDIメッセージラジオ・ボタンは選択されたままにします。
    2. 文書標準をX12として選択します。
    3. ドキュメント・バージョンとして4010を選択します。
    4. 文書タイプとして850 (Purchase Order)を選択します。
    5. ドキュメント定義として「標準」を選択します。
    6. UTF8としてEDI文字エンコーディングを選択します。
    7. 「入力データに対して検証を実行しますか。」フィールドでYesを選択します。 「次へ」をクリックします。
  4. サマリー・ページで、「完了」をクリックして構成を完了します。
    対応するマッピング要素が統合フローに自動的に追加されることに注意してください:

    edi_example_translate.pngの説明は以下のとおりです
    「図edi_example_translate.pngの説明」

マッピング・アクションの構成

受信EDIメッセージを正常に解析してXMLメッセージに変換するために、EDI-TranslateアクションおよびReceive-EDIアクションのデータ・マッピングを構成します。

EDIへのマップ-変換アクションの構成

  1. 「EDIへのマップ-変換」アクションをクリックし、「編集」を選択します。
  2. 左側のstreamReferenceを右側のTranslateInput内のedi-payloadにマップします。
  3. 下部に表示される式ペインで「開発者ビューに切替え」 切替えアイコンをクリックし、マッピングの式を編集します。

    次のように、既存のメディア・ロード式に関数コールencodeReferenceToBase64のプレフィクスを付けます: oraext:encodeReferenceToBase64 (/nssrcmpr:execute/ns20:streamReference ) Save 「Save」アイコンをクリックします。

    payload_exp.pngの説明は以下のとおりです
    「図payload_exp.pngの説明」

    ノート:

    ネームスペースは、ns20とは異なる場合があります。
  4. 「検証」をクリックし、次に「閉じる」をクリックします。

受信するマップ-EDIアクションの構成

  1. 「受信へのマップ-EDI」アクションをクリックし、「編集」を選択します。
  2. ツールバーの「開発者」をクリックします。
  3. edi-xml-document (左側の$EDI-TranslateexecuteResponseTranslateOutputの下)を、右側のresponse-wrapper内のtranslated_payloadにマップします。

    ノート:

    このマッピングを実現するには、最初に@format変数(edi-xml-document内)をtranslated_payloadにマップします。 このマッピングの式で、/@formatを削除し、ツールバーの「トグル」 関数の切替えをクリックします。 コンポーネント・ペインで、「関数」の下の「文字列」を展開します。 get-content-as-stringファンクションを選択し、式エディタにドロップします。 次のように、エディタの既存の式を関数にコピー : oraext:get-content-as-string ($EDI-Translate/nsmpr0:executeResponse/ns20:TranslateOutput/ns20:edi-xml-document ) 「保存」をクリックします 「Save」アイコン
  4. 同じTranslateOutput要素内のtranslation-statusを右側のtranslate_resultにマップします。
  5. validation-errors-presenthasErrorにマップします。
  6. validation-error-report (TranslateOutput > validation-errors)をvalidationErrorsにマップします。
  7. 「検証」をクリックし、次に「閉じる」をクリックします。

統合のアクティブ化

エラーを確認し、統合フローを保存してアクティブ化します。

  1. キャンバスにエラー通知が表示されます。 これを解決するには、キャンバスの右上隅にある「アクション・メニュー」 「アクション」メニューをクリックし、「トラッキング」を選択します。
  2. 表示されるダイアログで、左側のstreamReferenceを選択し、右側の表に移動します。
  3. 「保存」をクリックします。
  4. 統合を保存し、「閉じる」をクリックします。
  5. Integrationsページで、統合に対して「アクティブ化」 アクティブ化アイコンボタンをクリックします。
  6. 「統合のアクティブ化」ダイアログで「アクティブ化」をクリックします。

最初のEDI文書の解析

サンプル統合を実行するには、PostmanなどのRESTクライアント・ツールからリクエストを送信します。

次のように、RESTクライアント・ツールでリクエスト定義を作成します:
  1. HTTP POSTをURLに送信するリクエストを定義します:
    http://host:port/ic/api/integration/v1/flows/rest/INBOUND_EDI_VIA_REST/1.0/inbound_edi
  2. リクエストの認可を構成します。 HTTP Basic認証を選択し、Oracle Integrationインスタンスにユーザー名とパスワードを指定します。
  3. Content-TypeKEYとして、application/EDI-X12VALUEとして、HTTPヘッダーを追加します。
  4. 「電子データ交換について」で提供されているサンプルのEDI X12オーダーをリクエスト本文として使用します。 EDI X12文書のテキスト全体を本文フィールドにコピーします。 リクエスト本文のタイプのオプションがある場合は、EDIデータを貼り付ける前にRAWを選択します。
  5. RESTクライアントからリクエストを送信します。
  6. 統合フローからのレスポンスを確認します。
    レスポンス・ステータスが200 OKで、JSONが次のように表示されるかどうかを確認します:
    {
      "translate_result": "Success",
      "hasError": false,
      "validationErrors": "",
      "translated_payload": "<edi-xml-document...>"
    }

    値がSuccesstranslate_resultパラメータは、EDI X12ドキュメントが正常に解析および変換されたことを示します。

構文検証のテスト

変換に加えて、B2Bアクションでは受信したEDIデータも検証され、見つかったエラーがレポートされます。

統合開発者は、EDI X12ドキュメントをバックエンド・アプリケーションに送信してさらに処理するために統合を構築する場合、EDIデータの解析中に検証エラーをチェックし、これらのエラーを統合フローで適切に処理できます。 エラー処理の詳細は、「インバウンドEDIメッセージの解析および変換」を参照してください。 入力データ検証を有効にするには、B2Bアクションの構成時に「入力データに対して検証を実行しますか」フィールドでYesを選択します。 「スタンドアロン・モードでのB2Bアクションの使用」を参照してください。

B2B処理の検証機能をテストするには、EDI X12購買オーダー文書に構文エラーを導入し、RESTクライアントを介してサンプルのB2Bフローに送信します。

  1. RESTクライアントの(EDI X12 POデータを含む)リクエスト本文の5行目で、USDUSD123に置き換えて、このデータをフィールドで許可されている長さより長くします。
  2. 更新されたリクエストをクライアントから送信します。
  3. 次のようなレスポンスが表示されます:
    {
      "translate_result": "Error",
      "hasError": true,
      "validationErrors": "[1] Error code: B2B-01752 | category: data_size | message: (Severe) Element CUR02 (element id 100) has a identifier value [USD123] of length 6, which is 
      more than the maximum allowed length of 3. | segment-CUR > CUR02 (element id 100) | segment position 3 (starting with ST segment) | element position 2 | line 4 | 
      character position 7\n\n",
      "translated_payload": ...
    }

    translate_resultErrorとして返されるようになり、データの構文エラーがvalidationErrors要素で報告されます。 つまり、EDI X12ドキュメントは正常に処理されませんでした。