Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerSAP との接続を確立し、SAP Connector の Function source 操作 (export パラメーターを SAP に返します) を使用して関数を受信する Mule アプリケーションを作成します。
Anypoint Studio で、新しい Mule プロジェクトを作成します。
Studio タスクバーの左上にある Exchange アイコン (X) をクリックします。
Exchange で、[Login (ログイン)] をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。
Exchange で、種別として [Connectors (コネクタ)] を選択し、「SAP Connector」 (SAP Connector) を検索します。
[SAP Connector for Mule 4 (Mule 4 用 SAP Connector)] タイルを選択し、[Add to project (プロジェクトに追加)] をクリックします。
SAP の Function source 操作をキャンバスのソース領域のフローの開始位置にドラッグします。
新しい [SAP インバウンド] グローバル要素設定を作成し、環境値を指定します。
Transform Message コンポーネントをフローに追加して、メタデータに基づいて詳細を指定します。
これで、次の図のように、フローに Function source (キャンバスのソース領域内) と Transform Message が含まれます。
SAP Design Studio には、受信したオブジェクトとその応答に関するフィードバックが表示されます。
この例では、IDoc を SAP に送信する Mule アプリケーションを作成します。
Anypoint Studio で、新しい Mule プロジェクトを作成します。
HTTP Listener 操作をキャンバスにドラッグし、デフォルト値を使用します。
HTTP Request 操作をキャンバスにドラッグし、[Path (パス)] を /sendIDoc に設定します。
HTTP Listener 操作で使用するものと同じ HTTP 設定を使用します。
新しい SAP アウトバウンドグローバル要素設定を作成し、環境値を指定します。
[Test Connection (接続をテスト)] をクリックして、Mule Runtime Engine が SAP インスタンスに接続できることを確認します。
正常に接続できた場合は、設定を保存します。
それ以外の場合、無効なパラメーターを確認および修正して、再度テストします。
SAP Connector を選択して HTTP 操作の横に Send IDoc 操作を追加します。
次の値を使用して操作を設定します。
| パラメーター | 値 |
|---|---|
Display Name (表示名) |
Send IDoc 操作の表示名 |
Connector configuration (コネクタ設定) |
作成したグローバル要素の |
Key (キー) |
MATMAS01 |
Content (コンテンツ) |
|
Transform Message コンポーネントを SAP Connector の前にドロップし、コンポーネントをクリックしてそのプロパティエディターを開きます。
メタデータが取得されたら、入力する従業員の各項目を選択します。
変換スクリプトの XML には、Transform Message の DataWeave コンテンツが次のように表示されます。
%dw 2.0
output application/xml
---
read('<?xml version="1.0"?>
<MATMAS01>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<MANDT>800</MANDT>
</EDI_DC40>
</IDOC>
</MATMAS01>
',"application/xml")
SAP エンドポイントの直後に Logger を追加します。
アプリケーションを実行すると、Logger により Anypoint Studio コンソールにメッセージが表示され、ログでコネクタのペイロードを確認できます。
[File (ファイル)] > [Save (保存)] をクリックして、アプリケーションを保存します。
[Run (実行)] > [Run as (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] をクリックして、アプリケーションを実行します。
Anypoint Studio が提供する Web サーバーを使用して、ユーザーはブラウザーからアプリケーションをテストできます。
Web ブラウザーから、次のクエリパラメーターの形式で、従業員の内部 ID、名、姓を入力してアプリケーションをテストします。
http://localhost:8081/sendIDoc
Mule Runtime Engine によってクエリが実行され、従業員レコードが追加されます。
この例は RFC サーバーのように機能し、SAP ゲートウェイで自身を登録します。外部 SAP システムからの受信 IDoc 要求を待機します。
Anypoint Studio で、新しい Mule プロジェクトを作成します。
Exchange から SAP Connector をプロジェクトに追加します。
SAP の Document source 操作をキャンバスのソース領域のフローの開始位置にドラッグします。
新しい [SAP インバウンド] グローバル要素設定を作成し、環境値を指定します。
Document source の直後に Logger を追加します。
アプリケーションを実行すると、Logger により Anypoint Studio コンソールにメッセージが表示され、ログでコネクタのペイロードを確認できます。
新しい Mule フローで HTTP Listener 操作をキャンバスにドラッグし、デフォルト値を使用します。
HTTP Request 操作をキャンバスにドラッグし、[Path (パス)] を /triggerIDoc に設定します。
HTTP Listener 操作で使用するものと同じ HTTP 設定を使用します。
フローに Transform Message コンポーネントを追加します。
このメッセージのコンテンツは、SAP から SAP IDoc ソースに送信する IDoc をトリガーする関数のペイロードです。
%dw 2.0
output application/xml
---
{
ZMMFM_TRIGGER_IDOC_MATMAS: {
"import": {
IV_MTYP: "MATMAS"
,
IV_OBJ: "23"
,
IV_SYS: "MULE11_LS"
}
,
export: {
EV_RET: "0"
},export: {
EV_OBJ: "0000000003526552"
},export: null,changing: null,
tables: {
T_MSG: null
},
}
}
SAP の Synchronous remote function call 操作をキャンバスのソース領域にドラッグします。
この操作は、SAP IDoc ソースへの送信を要求された IDoc をトリガーします。
キー値を入力します。
キー値が正しい場合、Transform Message で関数のペイロードが表示されます。
[File (ファイル)] > [Save (保存)] をクリックして、アプリケーションを保存します。
[Run (実行)] > [Run as (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] をクリックして、アプリケーションを実行します。
Anypoint Studio が提供する Web サーバーを使用して、ユーザーはブラウザーからアプリケーションをテストできます。
Web ブラウザーから「http://localhost:8081/triggerIDoc」と入力してアプリケーションをテストします。
キャンバスでフローは次のようになります。
応答の例:
<MATMAS01>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<MANDT>800</MANDT>
<DOCNUM>0000000003572826</DOCNUM>
<DOCREL>740</DOCREL>
<STATUS>30</STATUS>
<DIRECT>1</DIRECT>
<OUTMOD>2</OUTMOD>
<IDOCTYP>MATMAS01</IDOCTYP>
<MESTYP>MATMAS</MESTYP>
<SNDPOR>SAPIDE</SNDPOR>
<SNDPRT>LS</SNDPRT>
<SNDPRN>T90CLNT090</SNDPRN>
<RCVPOR>MULE11_TP</RCVPOR>
<RCVPRT>LS</RCVPRT>
<RCVPRN>MULE11_LS</RCVPRN>
<CREDAT>20191004</CREDAT>
<CRETIM>050305</CRETIM>
<SERIAL>20191004050305</SERIAL>
</EDI_DC40>
...
```
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:sap="http://www.mulesoft.org/schema/mule/sap"
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/sap
http://www.mulesoft.org/schema/mule/sap/current/mule-sap.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"/>
<sap:outbound-config name="SAP_Outbound" doc:name="SAP Outbound" >
<sap:simple-connection-provider-connection
applicationServerHost="${sap.jcoAsHost}"
username="${sap.jcoUser}"
password="${sap.jcoPasswd}"
systemNumber="${sap.jcoSysnr}"
client="${sap.jcoClient}"
language="${sap.jcoLang}" />
</sap:outbound-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="demo-idoc-clientFlow" >
<http:listener config-ref="HTTP_Listener_config"
path="/idoc" doc:name="Listener" />
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
---
read('<?xml version="1.0"?>
<MATMAS01>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<MANDT>800</MANDT>
</EDI_DC40>
</IDOC>
</MATMAS01>
',"application/xml")
]]></ee:set-payload>
</ee:message>
</ee:transform>
<sap:send config-ref="SAP_Outbound" doc:name="Send IDoc"
key="MATMAS01"/>
<logger level="INFO" doc:name="Logger" message="#[payload]"/>
</flow>
</mule>