Mule 4 用 SAP コネクタ

Premium

SAP コネクタにより、SAP NetWeaver ベースのシステムまたは外部システムとのデータインテグレーションが可能になります。

注意: このコネクタは、Mule 4 と Studio 7 でのみ使用でき、Anypoint Platform の Design Center 機能では使用できません。

このコネクタを使用するには、個別のライセンスが必要です。このコネクタを評価したり、本番環境で使用したりするには、MuleSoft にお問い合わせください。

Mule Runtime では、SAP 用 Anypoint コネクタ (SAP Java コネクタ (JCo) ライブラリを利用する SAP 認定 Java コネクタ) を介した SAP インテグレーションがサポートされているため、Mule アプリケーションで次のことができます。

  • 次の種別がサポートされている RFC プロトコルを介して BAPI 関数を実行する。

    • 同期 RFC (sRFC)

    • トランザクション RFC (tRFC)

    • キュー RFC (qRFC)

  • sRFC、tRFC、qRF を介して BAPI としてコールされる JCo サーバとして動作する。

  • tRFC および qRFC を介して IDoc を送信する。

  • tRFC および qRFC を介して IDoc を受信する。

  • SAP オブジェクト (JCo 関数/BAPI & IDoc) と XML の変換を行う。

前提条件

このドキュメントの前提条件を次に示します。

  • SAP ビジネスコンテキスト (特に SAP R/3 ビジネススイート) の実践的な知識

  • 管理的な観点からの SAP NetWeaver プラットフォームの基本的な理解

  • ABAP 言語の知識

  • 対象リソースへの接続をテストするためのログイン情報

ハードウェアとソフトウェアの要件および互換性に関する情報は、SAP Connector Release Notes - Mule 4を参照してください。

Anypoint Exchange の SAP コネクタも参照してください。

注意: このコネクタバージョンは、Design Center では使用できません。

SAP 変換のユースケース

XML と Maven のサポート

Maven でこのコネクタを使用するには、Anypoint Exchange の [Dependency Snippets (連動関係スニペット)] で pom.xml の連動関係情報を確認してください。

Maven 連動関係管理では、この XML スニペットが pom.xml ファイルに保存されます。

<dependency>
  <groupId>org.mule.connectors</groupId>
  <artifactId>mule-sap-connector</artifactId>
  <version>4.0.0</version>
  <classifier>mule-plugin</classifier>
</dependency>

<version> タグの内側に、目的のバージョン番号、RELEASE (最新リリース) または SNAPSHOT (最新の使用可能なバージョン) を配置します。使用可能なバージョンは、4.0.0、4.0.1、4.1.0、4.1.1 です。

JCo ライブラリをサポートするために、次の連動関係を追加します。

<build>
    <plugins>
        <plugin>
            <groupId>org.mule.tools.maven</groupId>
            <artifactId>mule-maven-plugin</artifactId>
            <version>${mule.maven.plugin.version}</version>
            <extensions>true</extensions>
            <configuration>
                <sharedLibraries>
                    <sharedLibrary>
                        <groupId>com.sap.conn.jco</groupId>
                        <artifactId>com.sap.conn.jco.sapjco3</artifactId>
                    </sharedLibrary>
                    <sharedLibrary>
                        <groupId>com.sap.conn.idoc</groupId>
                        <artifactId>com.sap.conn.idoc.sapidoc3</artifactId>
                    </sharedLibrary>
                    <sharedLibrary>
                        <groupId>com.sap.conn.jco</groupId>
                        <artifactId>com.sap.conn.jco.libsapjco3</artifactId>
                    </sharedLibrary>
                </sharedLibraries>
            </configuration>
        </plugin>
    </plugins>
</build>

Studio でコネクタの設定を行う

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックし、Anypoint Platform ユーザ名とパスワードを指定します。

  3. SAP コネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

Studio でグローバル要素を作成する

Mule プロジェクトで複数の SAP コネクタインスタンスが必要な場合、グローバル SAP 要素を作成できます。

SAP コネクタオブジェクトには、SAP サーバに接続できるようにする設定プロパティが保持されています。

SAP コネクタの設定を作成する手順は、次のとおりです。

  1. [Global Elements (グローバル要素)] セクションに移動し、[Create (作成)] をクリックします。

  2. [Connector Configuration (コネクタ設定)] セクションで [SAP Inbound (SAP インバウンド)] または [SAP Outbound (SAP アウトバウンド)] のいずれかを選択します。

  3. [General (一般)] タブペインで、SAP 接続を定義するのに必要なパラメータを入力します。これは、SAP システム管理者によって提供されます。

SAP グローバル要素設定により、接続プロパティを定義したり、必要な SAP 連動関係をプロジェクトに簡単に追加したりできます。

SAP コネクタでは、使いやすいように最も一般的なプロパティのみがコネクタパラメータとして表示されます。[Properties (プロパティ)] パネルにリストされていないプロパティを設定するには、このガイドの「拡張プロパティ」セクションを参照してください。

最低限定義する必要のある属性は次のとおりです。

項目 説明

Application Server Host (アプリケーションサーバホスト)

SAP エンドポイント

Username (ユーザ名)

承認された SAP ユーザのユーザ名。

Password (パスワード)

承認された SAP ユーザのパスワードログイン情報。

System Number (システム番号)

SAP システムに接続するために使用されるシステム番号。

Client (クライアント)

SAP システムに接続するために使用される SAP クライアント ID (通常は数値)。

Login Language (ログイン言語)

SAP 接続で使用される言語。たとえば、英語の場合は EN になります。

プロパティプレースホルダ構文は簡単かつ再利用可能な方法であるため、この方法を使用してログイン情報を読み込むことをお勧めします。

SAP インスタンスへの接続が成功したかどうかを確認するには、[Test (テスト)] ボタンをクリックします。ログイン情報が正しければ、「Test Connection Successful (テスト接続に成功しました)」というメッセージが表示されます。

SAP ライブラリをインストールする

  1. SAP Web サイトにアクセスし、IDOC、JCO、JCO Native のバージョン 3.0.18 ライブラリをダウンロードします。 ライブラリ形式は、変換することなく Studio 7 で直接使用できます。これらは、コンピュータのフォルダにダウンロードできます。ライブラリをダウンロードするには、SAP ID が必要です。

    注意: 各ライブラリのファイル種別は、オペレーティングシステムによって異なります。

    • Windows: sapidoc3.jar、sapjco3.jar、sapjco3.dll

    • Mac OS: sapidoc3.jar、sapjco3.jar、libsapjco3.jnilib

    • Linux: sapidoc3.jar、sapjco3.jar、libsapjco3.so

  2. SAP コネクタを Studio にインストールして、コネクタを Mule プロジェクトに追加したら、フローのコネクタをダブルクリックし、[Connector Configuration (コネクタ設定)] 項目の右側にあるプラス (+) 記号をクリックします。

    次の画面が表示されます。

    Studio の [SAP Outbound (SAP アウトバウンド)] 設定

    SAP コネクタを設定するには、次の 3 つの [Add Dependency (連動関係を追加)] 設定を行う必要があります。

IDOC ライブラリをインストールする

  1. [Add Dependency (連動関係を追加)] をクリックします。

  2. [Install (インストール)] をクリックします。

    IDOC の Maven 連動関係
  3. [Install (インストール)] メニューで、[Browse (参照)] をクリックして、ライブラリファイルを見つけます。

  4. 一意のグループ ID、アーチファクト ID、バージョンを指定します。

    IDOC の Maven 連動関係

    完了したら、[Finish (完了)] をクリックします。キャンセルする場合は、[Remove Dependency (連動関係を削除)] をクリックします。

    IDOC のインストール完了画面

JCO ライブラリをインストールする

  1. [Add Dependency (連動関係を追加)] をクリックします。

  2. [Install (インストール)] をクリックします。

    JCO の Maven 連動関係
  3. [Install (インストール)] メニューで、[Browse (参照)] をクリックして、ライブラリファイルを見つけます。

  4. 一意のグループ ID、アーチファクト ID、バージョンを指定します。

    JCO の Maven 連動関係

    完了したら、[Finish (完了)] をクリックします。キャンセルする場合は、[Remove Dependency (連動関係を削除)] をクリックします。

    JCO のインストール完了画面

JCO Native ライブラリをインストールする

  1. [Add Dependency (連動関係を追加)] をクリックします。

  2. [Install (インストール)] をクリックします。

    JCO Native の Maven 連動関係
  3. [Install (インストール)] メニューで、[Browse (参照)] をクリックして、ライブラリファイルを見つけます。

  4. 一意のグループ ID、アーチファクト ID、バージョンを指定します。

    JCO Native の Maven 連動関係

    完了したら、[Finish (完了)] をクリックします。キャンセルする場合は、[Remove Dependency (連動関係を削除)] をクリックします。

    JCO Native のインストール完了画面

ライブラリのインストールが完了した場合

完了したら、正常にインストールされた各ライブラリに緑色のチェックマークが付いた次のような設定画面が表示されます。

インストールされているすべての連動関係ライブラリ
  1. Configure in Studioセクションの説明に従って、残りの [Global Element Properties (グローバル要素のプロパティ)] 項目の値を追加します。 SAP サイトのアクセス権ですべての情報を利用できます。

  2. [Test Connection (接続をテスト)] をクリックして、ログイン情報が正しいことを確認します。

拡張プロパティを定義する

SAP コネクタのグローバル要素の拡張プロパティを定義する手順は、次のとおりです。

  1. [General (一般)] ペインの [Advanced (詳細)] タブに移動します。

    下部の [Advanced (詳細)] タブ
  2. ウィンドウの上部にある [Extended Properties (拡張プロパティ)] セクションを見つけます。

  3. [Edit inline (インライン編集)] オプションを選択します。

  4. プラスボタン (「+」) をクリックして、新しい拡張プロパティを追加します。

これが機能するように、各自の設定で SAP で定義したプロパティ名を指定する必要があります。

SAP インバウンド

この設定では特殊な [Advanced (詳細)] プロパティはありません。

SAP アウトバウンド

項目 XML 属性 説明 デフォルト値

Display Name (表示名)

name (名前)

Mule 設定で内部的に使用されるエンドポイントの参照名。

Default idocument Version (デフォルトの IDoc バージョン)

defaultIdocumentVersion

このバージョンは、IDoc の送信時に使用されます。IDoc バージョンの値は、com.sap.conn.idoc.IDocFactory の IDOC_VERSION_xxxx 定数に対応してます。

Disable Function template cache flag ([関数テンプレートキャッシュを無効化] フラグ)

disableFunctionTemplateCacheFlag

関数テンプレートキャッシュを無効にする必要があるかどうかを示します。

false

Evaluate response flag ([応答を評価] フラグ)

evaluateResponseFlag

エラー応答で例外を発生させるのか、ユーザが別の結果として処理できるようにするのかを示します。

false

Log trace flag ([トレースを記録] フラグ)

logTraceFlag

トレースを Mule サーバに記録するかどうかを示します。

false

ユースケース: IDoc を SAP に送信する

このユースケースでは、IDoc を SAP に送信する Mule アプリケーションの作成方法について説明します。

  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. 新しい HTTP リスナのグローバル要素設定を作成し、デフォルト値のままにします。

  3. HTTP エンドポイントをキャンバスにドラッグして、次のパラメータを設定します。

    パラメータ

    Connector Configuration (コネクタ設定)

    HTTP_Listener_Configuration

    Path (パス)

    /sendIDoc

  4. 新しい SAP アウトバウンドのグローバル要素設定を作成し、環境値を入力します。

  5. [Test (テスト)] をクリックして、Mule が SAP インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。失敗した場合は、パラメータを確認して修正し、もう一度テストを実行してください。

  6. SAP モジュールを選択して [HTTP] の横にある [Send IDoc (IDoc を送信)] 操作を追加し、[Extension Configuration (拡張機能設定)] 項目で、前のセクションで作成した設定を選択します。

  7. 次の値を使用して操作を設定します。

    パラメータ

    Display Name (表示名)

    Send IDoc (IDoc を送信) (または他の任意の名前)

    Connector configuration (コネクタ設定)

    SAP_Outbound (作成したグローバル要素の名前)

    Key (キー)

    MATMAS01

    Content (コンテンツ)

    #[payload]

  8. 変換メッセージコンポーネントを SAP コネクタの前にドロップし、コンポーネントをクリックしてそのプロパティエディタを開きます。メタデータが取得されたら、入力する従業員の各項目を選択します。変換スクリプトは、次のようになります。

    %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")
  9. SAP エンドポイントの直後にロガーを追加して、ログでコネクタのペイロードを確認します。

  10. 保存して、Mule アプリケーションとして実行します。

  11. Web ブラウザから、次のクエリパラメータの形式で、従業員の内部 ID、名、姓を入力してアプリケーションをテストします。

    http://localhost:8081/sendIDoc

    Mule によってクエリが実行され、従業員レコードが NetSuite に追加されます。

ユースケース: 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>

SAP JCo の注意事項

SAP JCo により、SAP バックエンドシステムと Java アプリケーション間の通信が促進されます。Java プログラムは、SAP システムに接続して、リモート関数モジュールを起動できるようになります。また、オブジェクト型が異なっていても IDoc (SAP 中間ドキュメント) を解析できるようになります。インバウンド通信とアウトバウンド通信の両方がサポートされています。

  • Java API: 動的なメタデータルックアップおよびキャッシュを処理する。SAP 関数モジュール (BAPI) のパラメータやテーブルのコンテナである JCO.Function を Java で実装します。Java アプリケーションは、Java API 上に構築されます。

  • JNI (Java ネイティブインターフェース): 元々 SAP への RFC コールを直接行ってデータを操作できるようにために SAP によって C 言語で作成されたライブラリ。JCo は、Java で C ライブラリをラップして、SAP システムへのプラットフォームネイティブなアクセスを提供します。RFC ミドルウェアは、(JNI) レイヤを介して RFC ライブラリを使用します。

  • RFC (リモート関数コール): SAP システムとの通信は、RFC プロトコルを介して行われる。RFC は、コール元プログラムとして別のシステムで実行される BAPI のコールまたは IDoc 処理のトリガを意味します。RFC インターフェースにより、2 つの SAP システム間または SAP と外部システム間の関数コールが可能になります。

  • RFC ライブラリ: SAP システムにアクセスするための C 言語ベースの関数のライブラリ。RFC ライブラリの対応は、JNI によって行われます。

  • RFC レイヤ: RFC コールを処理する SAP コンポーネント。

  • SAP Java IDoc クラスライブラリ: SAP IDoc の構造化された高レベルの解析とナビゲーションを Java で提供する。次のアドオンパッケージで構成されます。

    • SAP Java Base IDoc クラスライブラリ: ミドルウェアに依存する Java IDoc クラスライブラリの実装の一般的な基本クラスとインターフェースのセットを提供する、ミドルウェアに依存しないライブラリ。

    • SAP Java Connector IDoc クラスライブラリ: IDoc を作成、送信、受信するためのミドルウェアに依存しないライブラリ。

  • FM (関数モジュール): SAP の ABAP 言語で定義された手順。これにより、SAP システムでグローバル関数をカプセル化および再利用できます。

  • BAPI (ビジネスアプリケーションプログラミングインターフェース): 次のような特定の設計条件を満たす関数モジュール。

    • SAP ビジネスオブジェクトのメソッドを実装する。

    • さまざまなバージョンの SAP システムで静的インターフェースを維持する。

    • リモートに対応している。

    • ユーザ操作の有無に関係なく実行が完了する。

    • エラーを処理する。

  • IDoc (中間ドキュメント): SAP システム間で電子データを交換するための標準 SAP 形式。通常、メッセージ種別 (納品書や発注書など) ごとに異なる特殊な形式 (IDoc 種別と呼ばれる) に対応しています。ただし、関連するコンテンツが含まれる複数のメッセージ種別を 1 つの IDoc 種別に割り当てることもできます。

  • ALE (アプリケーションリンクイネーブリング): 分散アプリケーションを設定および操作するためのテクノロジ。ALE により、分散と統合を兼ね備えた SAP システムのインストールが促進されます。これには、緩やかにリンクしている SAP アプリケーション間で整合性が確保されたデータを使用するビジネス駆動型メッセージ交換が含まれます。アプリケーションは、中央データベースを使用せずに、同期通信および非同期通信で統合されます。

  • SAP NetWeaver: SAP ソリューションで使用される主要なテクノロジおよびアプリケーションプラットフォームの 1 つ。その主要なコンポーネントは、ERP、CRM、SCM、PLM、SRM、BI などの SAP Web アプリケーションサーバのランタイム環境を提供する SAP Web アプリケーションサーバ (WebAS) です。その他に、エンタープライズポータル、交換インフラストラクチャ、マスタデータ管理、モバイルインフラストラクチャなどのコンポーネントもあります。SAP NetWeaver は、これらの技術的なコンポーネントの総称です。

  • SAP NetWeaver は、Java スタックと ABAP スタックの両方で実行されます。

  • ABAP (アドバンスドビジネスアプリケーションプログラミング): SAP の独自プログラミング言語であり、ビジネスアプリケーションを構築するための NetWeaver プラットフォームの一部。

関連情報

  • SAP コネクタは RFC プロトコルを使用して NetWeaver アプリケーションサーバ (NWAS) に接続する。

  • ECC および CRM は、他の SAP ソリューションと同様に NWAS 上で実行されるため、コネクタを使用するユーザはこれらのシステムにアクセスできる。

  • MuleSoft フォーラム

  • 知識ベース記事

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub