Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの例では、次のコンポーネントおよび操作を使用して、WS-Addressing を設定して SOAP 要求を送信します。
[HTTP] > [Listener]
フローを開始するコンポーネント。
Transform Message
入力データを新しい出力構造または形式に変換するコンポーネント。
SAP S/4HANA > Invoke
指定されたサービスに要求を送信する操作。
Logger
Mule コンソールに応答を表示するコンポーネント。
この例では、一部の項目値に設定プロパティを使用します。コードで変数をそれらの値に置き換えるか、src/main/resources/mule-artifact.properties
ファイルで各変数の値を指定できます。
以下が必要です。
SAP S/4HANA インスタンスおよび Anypoint Platform へのアクセス権
Studio で、新しい Mule プロジェクトを作成してコネクタを追加および設定します。
[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択します。
Mule プロジェクトの名前を入力して、[Finish (完了)] をクリックします。
[Mule Palette (Mule パレット)] ビューで「HTTP」を検索し、[Listener (リスナー)] 操作を選択します。
ビュー内で選択されている HTTP Listener"]
Listener 操作をキャンバスにドラッグします。
[Listener (リスナー)] 設定で、[Connector configuration (コネクタ設定)] の横にある [+] をクリックしてグローバル要素を追加します。
デフォルトを受け入れます。
[Path (パス)] 項目を /wsa
に設定します。
[Mule Palette (Mule パレット)] ビューで「SAP S4 HANA」を検索し、[Invoke] 操作を選択します。
[Invoke] 操作をキャンバスの [Listener (リスナー)] コンポーネントの右にドラッグします。
[Invoke] 設定で、[Connector configuration (コネクタ設定)] の横にある [+] をクリックしてグローバル要素を追加します。
Invoke 操作のグローバル要素を設定します。
Name (名前)
設定の参照に使用される名前。この例では、SAP_S4_HANA_Cloud_SOAP_Config
を使用します。
Service base URL (サービスベース URL)
コネクタからアクセスする SAP S/4HANA インスタンス (エンドポイント) のベース URL。
Username (ユーザー名)
SAP S/4HANA にログインするためのアカウントユーザー名。
Password (パスワード)
SAP S/4HANA にログインするためのアカウントパスワード。
[Addressing] タブを開きます。
WS-Addressing プロパティを設定します。
Version (バージョン)
WS-Addressing バージョン。
From (送信元)
SOAP 要求の送信元となるエンドポイントの参照。
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
エディターの [Global Elements (グローバル要素)] タブに戻り、SAP_S4_HANA_Cloud_SOAP_Config
設定を開きます。
ウィンドウ下部の [Test Connection… (接続をテスト…)] ボタンをクリックして、正常に設定されていることを確認します。
テスト接続に成功したら、[Test connection (接続をテスト)] と [Global Element Properties (グローバル要素のプロパティ)] ウィンドウを閉じます。
エディターの [Message flow (メッセージフロー)] タブを開いて、Invoke 操作のプロセッサーを開きます。
プロパティウィンドウで次の各項目を設定します。
Display Name (表示名)
UI に表示するコネクタ操作の名前。
Connector Configuration (コネクタ設定)
SAP_S4_HANA_Cloud_SOAP_Config
という名前の Invoke 操作で以前に作成したグローバル設定。
Service name (サービス名)
サービスの名前。この例では、CreditManagementAccountByIDQuery_In
を選択します。
Operation name (操作名)
サービスの操作名。この例では、CreditManagementAccountByIDQuery_In
を選択します。
メッセージ
SOAP メッセージのコンテンツ。
メッセージペイロードのグラフィカルビューを開き、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
Invoke 操作の [General (一般)] プロパティを設定します。
[Advanced (詳細)] タブを開き、[Web Service Addressing] ドロップダウンを None
から Edit inline
に変更します。
次の項目を設定します。
To (宛先)
このメッセージの意図される受信者のアドレス。
Version (バージョン) (省略可能)
WS-Addressing バージョン。何も指定されていない場合、コネクタでは設定の値が使用されます。
From (送信元) (省略可能)
メッセージの送信元となるエンドポイントの参照。何も指定されていない場合、コネクタでは設定の値が使用されます。
メッセージ ID
時間と空間でメッセージを一意に識別する識別子。何も指定されていない場合、コネクタでは時間ベースの UUID が使用されます。
Relates to (関連先) (省略可能)
メッセージが関連するメッセージ ID。
応答で JSON に変換する内容を使用して、[Transform Message (メッセージの変換)] コンポーネントをフローに追加します。
[Mule Palette (Mule パレット)] ビューで、「Transform Message」を検索します。
[Transform Message (メッセージの変換)] コンポーネントをキャンバスの [Invoke] 操作の右にドラッグします。
[Transform Message (メッセージの変換)] 設定で、出力を json に設定し、[Output (出力)] セクションの括弧をキーワード message に置換します。
%dw 2.0
output application/json
---
message
dataweave
Logger コンポーネントを追加して、Mule コンソールにメッセージ応答を表示するように設定します。
[Mule Palette (Mule パレット)] ビューで、「Logger」を検索します。
[Logger] コンポーネントをキャンバスの [Transform Message (メッセージの変換)] コンポーネントの右にドラッグします。
次の項目を設定します。
Display Name (表示名)
Logger コンポーネントの名前。
メッセージ
Mule ログメッセージを指定する文字列または DataWeave 式。
Level (レベル)
ログレベルを設定します。デフォルト値は INFO
です。
アプリケーションを実行し、正常にデプロイされるまで待機します。
Web ブラウザーから次の URL にアクセスします: http://localhost:8081/wsa
。
正常な応答が返されたことを確認します。
[payload (ペイロード)] で [headers (ヘッダー)] プロパティを見つけ、[Relates to (関連先)] プロパティの値が Invoke 操作の [Message ID (メッセージ ID)] 項目で設定した値と同じであることを確認します。
このユースケース例のフローを Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。必要に応じて、環境に合わせて値を変更します。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:s4hana-soap="http://www.mulesoft.org/schema/mule/s4hana-soap"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/s4hana-soap http://www.mulesoft.org/schema/mule/s4hana-soap/current/mule-s4hana-soap.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<configuration-properties file="mule-artifact.properties"/>
<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>
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="web-service-addressing">
<http:listener config-ref="HTTP_Listener_config" path="/wsa" />
<s4hana-soap:invoke config-ref="SAP_S4_HANA_Cloud_SOAP_Config"
service="https://mysap.s4hana.instance.com/sap/bc/srt/wsdl_ext/flv_10002S111AD1/srvc_url/sap/bc/srt/scs_ext/sap/creditmanagementaccountbyidqu1"
operation="CreditManagementAccountByIDQuery_In">
<s4hana-soap:addressing wsaTo="https://mysap.s4hana.instance.com/sap/bc/srt/scs_ext/sap/creditmanagementaccountbyidqu1"
wsaMessageID="#[123456]" />
<s4hana-soap:message><![CDATA[#[%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
}
}]]]></s4hana-soap:message>
</s4hana-soap:invoke>
<ee:transform doc:name="Transform Message">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
message]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" message="#[payload]"/>
</flow>
</mule>
xml