---
schema_version: "1"
id: 921e1786dd369d6e96d2c06b58c4264f096cea4d4acc48b3302dc39277b18295
title: SAP Connector の例 - Mule 4
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/sap-connector/5.1/sap-connector-examples.md
canonical_url: https://docs.mulesoft.com/jp/sap-connector/5.1/sap-connector-examples
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3ac55d72a2c6b0e70b08a9875905ac3fbb79d16255d31b6fc8a38f43b16dfd2e
description: MuleSoft Documentation Site
release: "5.1"
latest: false
---
# SAP Connector の例 - Mule 4

## [](#sap-接続の確立)SAP 接続の確立

SAP との接続を確立し、SAP Connector の **Function source**​ 操作 (export パラメーターを SAP に返します) を使用して関数を受信する Mule アプリケーションを作成します。

1. Anypoint Studio で、新しい Mule プロジェクトを作成します。
2. Studio タスクバーの左上にある Exchange アイコン **(X)**​ をクリックします。
3. Exchange で、**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。
4. Exchange で、種別として **\[Connectors (コネクタ)\]**​ を選択し、「SAP Connector」 (SAP Connector) を検索します。
5. \[SAP Connector for Mule 4 (Mule 4 用 SAP Connector)\] タイルを選択し、**\[Add to project (プロジェクトに追加)\]**​ をクリックします。
6. SAP の **Function source**​ 操作をキャンバスのソース領域のフローの開始位置にドラッグします。
7. 新しい **\[SAP インバウンド\]**​ グローバル要素設定を作成し、環境値を指定します。
8. **Transform Message**​ コンポーネントをフローに追加して、メタデータに基づいて詳細を指定します。
    
    ![sap function return response](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-function-return-response.png)
    
    これで、次の図のように、フローに **Function source**​ (キャンバスのソース領域内) と **Transform Message**​ が含まれます。
    
    ![sap flow response](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-flow-response.png)
    
    SAP Design Studio には、受信したオブジェクトとその応答に関するフィードバックが表示されます。
    
    ![sap result sap gui](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-result-sap-gui.png)

## [](#sap-への-idoc-の送信)SAP への IDoc の送信

この例では、IDoc を SAP に送信する Mule アプリケーションを作成します。

1. Anypoint Studio で、新しい Mule プロジェクトを作成します。
2. **HTTP Listener**​ 操作をキャンバスにドラッグし、デフォルト値を使用します。
3. **HTTP Request**​ 操作をキャンバスにドラッグし、**\[Path (パス)\]**​ を `/sendIDoc`​ に設定します。  
    **HTTP Listener**​ 操作で使用するものと同じ HTTP 設定を使用します。
4. 新しい SAP アウトバウンドグローバル要素設定を作成し、環境値を指定します。
5. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule Runtime Engine が SAP インスタンスに接続できることを確認します。
6. 正常に接続できた場合は、設定を保存します。  
    それ以外の場合、無効なパラメーターを確認および修正して、再度テストします。
7. SAP Connector を選択して HTTP 操作の横に **Send IDoc**​ 操作を追加します。
8. 次の値を使用して操作を設定します。
    
    <table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 40%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">値</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Display Name (表示名)</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Send IDoc 操作の表示名</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Connector configuration (コネクタ設定)</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>作成したグローバル要素の <code>SAP_Outbound</code>​</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Key (キー)</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>MATMAS01</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Content (コンテンツ)</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>#[payload]</code>​</p>
</div></div></td>
</tr>
</tbody>
</table>
9. **Transform Message**​ コンポーネントを SAP Connector の前にドロップし、コンポーネントをクリックしてそのプロパティエディターを開きます。
10. メタデータが取得されたら、入力する従業員の各項目を選択します。
    
    変換スクリプトの XML には、**Transform Message**​ の DataWeave コンテンツが次のように表示されます。
    
    ```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")
    ```
11. SAP エンドポイントの直後に **Logger**​ を追加します。  
    アプリケーションを実行すると、**Logger**​ により Anypoint Studio コンソールにメッセージが表示され、ログでコネクタのペイロードを確認できます。
12. **\[File (ファイル)\]**​ > **\[Save (保存)\]**​ をクリックして、アプリケーションを保存します。
13. **\[Run (実行)\]**​ > **\[Run as (別のユーザーとして実行)\]**​ > **\[Mule Application (Mule アプリケーション)\]**​ をクリックして、アプリケーションを実行します。  
    Anypoint Studio が提供する Web サーバーを使用して、ユーザーはブラウザーからアプリケーションをテストできます。
14. Web ブラウザーから、次のクエリパラメーターの形式で、従業員の内部 ID、名、姓を入力してアプリケーションをテストします。
    
    ```none
    http://localhost:8081/sendIDoc
    ```
    
    Mule Runtime Engine によってクエリが実行され、従業員レコードが追加されます。

### [](#受信-idoc-要求のトリガー)受信 IDoc 要求のトリガー

この例は RFC サーバーのように機能し、SAP ゲートウェイで自身を登録します。外部 SAP システムからの受信 IDoc 要求を待機します。

1. Anypoint Studio で、新しい Mule プロジェクトを作成します。
2. Exchange から SAP Connector をプロジェクトに追加します。
3. SAP の **Document source**​ 操作をキャンバスのソース領域のフローの開始位置にドラッグします。
4. 新しい **\[SAP インバウンド\]**​ グローバル要素設定を作成し、環境値を指定します。
5. **Document source**​ の直後に **Logger**​ を追加します。  
    アプリケーションを実行すると、**Logger**​ により Anypoint Studio コンソールにメッセージが表示され、ログでコネクタのペイロードを確認できます。
6. 新しい Mule フローで **HTTP Listener**​ 操作をキャンバスにドラッグし、デフォルト値を使用します。
7. **HTTP Request**​ 操作をキャンバスにドラッグし、**\[Path (パス)\]**​ を `/triggerIDoc`​ に設定します。  
    **HTTP Listener**​ 操作で使用するものと同じ HTTP 設定を使用します。
8. フローに **Transform Message**​ コンポーネントを追加します。  
    このメッセージのコンテンツは、SAP から SAP IDoc ソースに送信する IDoc をトリガーする関数のペイロードです。
    
    ```dataweave
    %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
    },
    	}
    }
    ```
9. SAP の **Synchronous remote function call**​ 操作をキャンバスのソース領域にドラッグします。  
    この操作は、SAP IDoc ソースへの送信を要求された IDoc をトリガーします。
10. キー値を入力します。  
    キー値が正しい場合、**Transform Message**​ で関数のペイロードが表示されます。
    
    ![sap connector remote function call key](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-connector-remote-function-call-key.png)
11. **\[File (ファイル)\]**​ > **\[Save (保存)\]**​ をクリックして、アプリケーションを保存します。
12. **\[Run (実行)\]**​ > **\[Run as (別のユーザーとして実行)\]**​ > **\[Mule Application (Mule アプリケーション)\]**​ をクリックして、アプリケーションを実行します。  
    Anypoint Studio が提供する Web サーバーを使用して、ユーザーはブラウザーからアプリケーションをテストできます。
13. Web ブラウザーから「http://localhost:8081/triggerIDoc」と入力してアプリケーションをテストします。

キャンバスでフローは次のようになります。

![sap remote function call flow](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-remote-function-call-flow.png)

応答の例:

```dataweave
<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>

 		...

    ```
```

### [](#idoc-を-sap-に送信する-xml)IDoc を SAP に送信する XML

```xml
<?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>
```

## [](#関連情報)関連情報

[MuleSoft ヘルプセンター](https://help.mulesoft.com)