Web Service Addressing の例 - Mule 4

この例では、次のコンポーネントおよび操作を使用して、WS-Addressing を設定して SOAP 要求を送信します。

  • [HTTP] > [Listener]

    フローを開始するコンポーネント。

  • Transform Message

    入力データを新しい出力構造または形式に変換するコンポーネント。

  • SAP S/4HANA > Invoke

    指定されたサービスに要求を送信する操作。

  • Logger

    Mule コンソールに応答を表示するコンポーネント。

    WS-Addressing を有効にして SOAP 要求を送信するための Mule フロー
    Figure 1. この例のフローでは、WS-Addressing を有効にして SOAP 要求を送信します。

この例では、一部の項目値に設定プロパティを使用します。コードで変数をそれらの値に置き換えるか、​src/main/resources/mule-artifact.properties​ ファイルで各変数の値を指定できます。

始める前に

以下が必要です。

  • SAP S/4HANA インスタンスおよび Anypoint Platform へのアクセス権

WS-Addressing ヘッダーを使用した SOAP 要求の送信

Mule プロジェクトを作成する

Studio で、新しい Mule プロジェクトを作成してコネクタを追加および設定します。

  1. [File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. Mule プロジェクトの名前を入力して、​[Finish (完了)]​ をクリックします。

Listener を追加および設定する

  1. [Mule Palette (Mule パレット)]​ ビューで​「HTTP」​を検索し、​[Listener (リスナー)]​ 操作を選択します。

    "[Mule Palette (Mule パレット) ビュー内で選択されている HTTP Listener"]

  2. Listener​ 操作をキャンバスにドラッグします。

  3. [Listener (リスナー)]​ 設定で、​[Connector configuration (コネクタ設定)]​ の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. [Path (パス)]​ 項目を ​/wsa​ に設定します。

    HTTP Listener の一般設定項目

Invoke 操作を追加および設定する

  1. [Mule Palette (Mule パレット)]​ ビューで​「SAP S4 HANA」​を検索し、​[Invoke]​ 操作を選択します。

  2. [Invoke]​ 操作をキャンバスの ​[Listener (リスナー)]​ コンポーネントの右にドラッグします。

  3. [Invoke]​ 設定で、​[Connector configuration (コネクタ設定)]​ の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. Invoke​ 操作のグローバル要素を設定します。

    • Name (名前)
      設定の参照に使用される名前。この例では、​SAP_S4_HANA_Cloud_SOAP_Config​ を使用します。

    • Service base URL (サービスベース URL)
      コネクタからアクセスする SAP S/4HANA インスタンス (エンドポイント) のベース URL。

    • Username (ユーザー名)
      SAP S/4HANA にログインするためのアカウントユーザー名。

    • Password (パスワード)
      SAP S/4HANA にログインするためのアカウントパスワード。

      Invoke 操作のサンプル値を含む [SAP S/4HANA SOAP Configuration (SAP S/4HANA SOAP 設定)] ウィンドウ
      Figure 2. 次の画像は、​Invoke​ 操作のグローバル要素のサンプル値を示しています。
  5. [Addressing]​ タブを開きます。

  6. WS-Addressing プロパティを設定します。

    • Version (バージョン)
      WS-Addressing バージョン。

    • From (送信元)
      SOAP 要求の送信元となるエンドポイントの参照。

      [Web Service Addressing] 項目を設定
      Figure 3. 次の画像は、​[Addressing]​ 項目のサンプル値を示しています。
  7. Studio キャンバスの下部にある ​[Configuration XML (設定 XML)]​ をクリックして、対応する XML を表示します。

    <s4hana-soap:config name="SAP_S4_HANA_Cloud_SOAP_Config">
        <s4hana-soap:basic-authentication-connection baseUrl="${config.cloud.soap.baseUrl}"
            username="${config.cloud.soap.username}" password="${config.cloud.soap.password}" />
        <s4hana-soap:web-service-addressing wsaVersion="WSA200408" />
    </s4hana-soap:config>
    xml
  8. エディターの ​[Global Elements (グローバル要素)]​ タブに戻り、​SAP_S4_HANA_Cloud_SOAP_Config​ 設定を開きます。

  9. ウィンドウ下部の ​[Test Connection…​ (接続をテスト…​)]​ ボタンをクリックして、正常に設定されていることを確認します。

  10. テスト接続に成功したら、​[Test connection (接続をテスト)]​ と ​[Global Element Properties (グローバル要素のプロパティ)]​ ウィンドウを閉じます。

  11. エディターの [Message flow (メッセージフロー)] タブを開いて、​Invoke​ 操作のプロセッサーを開きます。

  12. プロパティウィンドウで次の各項目を設定します。

    • Display Name (表示名)
      UI に表示するコネクタ操作の名前。

    • Connector Configuration (コネクタ設定)
      SAP_S4_HANA_Cloud_SOAP_Config​ という名前の ​Invoke​ 操作で以前に作成したグローバル設定。

    • Service name (サービス名)
      サービスの名前。この例では、​CreditManagementAccountByIDQuery_In​ を選択します。

    • Operation name (操作名)
      サービスの操作名。この例では、​CreditManagementAccountByIDQuery_In​ を選択します。

    • メッセージ
      SOAP メッセージのコンテンツ。

  13. メッセージペイロードのグラフィカルビューを開き、SOAP メッセージコンテンツを設定します。この例では、次のペイロードを設定します。

    %dw 2.0
    output application/xml
    ns ns0 http://sap.com/xi/SAPGlobal/Global
    ---
    {
        ns0#CreditManagementAccountByIDQuery: {
            MessageHeader: {
                ID: "@" as String,
                CreationDateTime: now()
            },
            Selection: {
                DebtorPartyInternalID: "0011100050" as String,
                CreditsegmentInternalID: 1 as String
            },
            LanguageCode: "ZZZ" as String
        }
    }
    dataweave
  14. Invoke​ 操作の ​[General (一般)]​ プロパティを設定します。

    Invoke 操作の一般プロパティ
  15. [Advanced (詳細)]​ タブを開き、​[Web Service Addressing]​ ドロップダウンを ​None​ から ​Edit inline​ に変更します。

  16. 次の項目を設定します。

    • To (宛先)
      このメッセージの意図される受信者のアドレス。

    • Version (バージョン)​ (省略可能)
      WS-Addressing バージョン。何も指定されていない場合、コネクタでは設定の値が使用されます。

    • From (送信元)​ (省略可能)
      メッセージの送信元となるエンドポイントの参照。何も指定されていない場合、コネクタでは設定の値が使用されます。

    • メッセージ ID
      時間と空間でメッセージを一意に識別する識別子。何も指定されていない場合、コネクタでは時間ベースの UUID が使用されます。

    • Relates to (関連先)​ (省略可能)
      メッセージが関連するメッセージ ID。

      Invoke 操作の詳細プロパティ
      Figure 4. 次の画像は、​Invoke​ 操作の ​[Web Service Addressing]​ プロパティを示しています。

Transform Message コンポーネントを追加および設定する

応答で JSON に変換する内容を使用して、​[Transform Message (メッセージの変換)]​ コンポーネントをフローに追加します。

  1. [Mule Palette (Mule パレット)]​ ビューで、​「Transform Message」​を検索します。

    [Mule Palette (Mule パレット)] ビュー内で選択されている [Transform Message (Core)] コンポーネント
  2. [Transform Message (メッセージの変換)]​ コンポーネントをキャンバスの ​[Invoke]​ 操作の右にドラッグします。

  3. [Transform Message (メッセージの変換)]​ 設定で、出力を json に設定し、​[Output (出力)]​ セクションの括弧をキーワード ​message​ に置換します。

    %dw 2.0
    output application/json
    ---
    message
    dataweave

Logger コンポーネントを追加および設定する

Logger​ コンポーネントを追加して、Mule コンソールにメッセージ応答を表示するように設定します。

  1. [Mule Palette (Mule パレット)]​ ビューで、​「Logger」​を検索します。

  2. [Logger]​ コンポーネントをキャンバスの ​[Transform Message (メッセージの変換)]​ コンポーネントの右にドラッグします。

  3. 次の項目を設定します。

    • Display Name (表示名)
      Logger コンポーネントの名前。

    • メッセージ
      Mule ログメッセージを指定する文字列または DataWeave 式。

    • Level (レベル)
      ログレベルを設定します。デフォルト値は ​INFO​ です。

      [Logger] プロパティウィンドウ
      Figure 5. 次のイメージは、項目のサンプル値を示しています。

アプリケーションの実行と検証

  1. アプリケーションを実行し、正常にデプロイされるまで待機します。

  2. Web ブラウザーから次の URL にアクセスします: http://localhost:8081/wsa​。

  3. 正常な応答が返されたことを確認します。

  4. [payload (ペイロード)]​ で ​[headers (ヘッダー)]​ プロパティを見つけ、​[Relates to (関連先)]​ プロパティの値が ​Invoke​ 操作の ​[Message ID (メッセージ ID)]​ 項目で設定した値と同じであることを確認します。

Web Service Addressing の XML の例

このユースケース例のフローを Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。必要に応じて、環境に合わせて値を変更します。