# SAP RFC
SAP は、世界中の大企業が使用するエンタープライズリソースプランニングソフトウェアです。
Workato SAP RFC コネクターは、企業ファイアウォールの背後にある SAP アプリケーションサーバーとの接続を可能にします。このコネクターは、IDoc または RFC を使用した SAP との通信をサポートします。Workato を使用すれば、コードを記述することなく、SAP やその他のアプリケーションに関わる強力な自動化を構築できます。
# サポートされている SAP バージョン
Workato の SAP RFC コネクターでは、SAP ERP ECC 6.0以降、SAP CRM、SAP SRM、SAP SCM、および NetWeaver プラットフォームと互換性のあるその他のモジュールをサポートします。
動作するには SAP Java Connector (JCo) が必要です。JCo バージョンの詳細については、SAP Note 2786882 - SAP JCo 3.1 release and support strategy (opens new window) を参照してください。
NOTE
OPA バージョン2.15以降、JCo 3.0ライブラリのサポートが維持されなくなります。サポートを要請する前に、最新の JCo 3.1ライブラリを使用していることを確認してください。
# サポートされている通信方式
コネクターは SAP との間で以下の通信方式をサポートします。
- インバウンド IDoc (IDoc を SAP に送信)
- アウトバウンド IDoc (SAP から IDoc を受信)
- トランザクション RFC (SAP で同期 RFC および BAPI を呼び出す)
# IDoc の概要
IDoc
とは、Intermediate Document の略です。簡単に言えば、SAP システム間または SAP システムとサードパーティシステムとの間で情報を交換するために使用されるデータコンテナーのことです。
IDoc は、SAP に保存された内部データ構造や、送信または受信アプリケーションに依存しないオープンインターフェイスです。あらゆるアプリケーションで、IDoc の構文およびセマンティクスに従うことで、IDoc を使用できます。
IDoc はデータ交換の方向に関係なく使用でき、アウトバウンドとインバウンドの両方の機能を持っています。
# RFC の概要
RFC
は、SAP システムとサードパーティアプリケーション間の通信を処理するプロトコルです。これは、呼び出し元プログラムとは異なるマシン上にある機能モジュールを呼び出すプロセスです。
Workato は SAP システム内の SAP RFC を呼び出して、返されたデータを取得したり、SAP データに対する同期更新を行うことができます。SAP インスタンスから直接 Workato を呼び出すために利用するよう RFC を設定することもできます。Workato 上に API エンドポイントを設定し、SAP を Workato に直接接続する方法については、こちらを参照してください。
RFC を介して Workato に接続する上で問題が発生している場合は、「トラブルシューティング」のセクションを参照してください。
# Workato での SAP RFC への接続方法
SAP RFC コネクターは、オンプレミス SAP システムと、企業ファイアウォールの背後のサーバー上の SAP システムの両方に接続できます。
コネクションを設定するには、以下の手順に 厳密にこの順序で 従ってください。
- I/ SAP で IDoc を設定する (IDoc を使用する予定である場合にのみ必須。RFC のみを使用する予定である場合は、このステップをスキップしてください)
- II/ SAP で Workato 統合ユーザーを作成する
- III/ SAP サーバー上で Workato オンプレミスエージェントを設定する
- IV/ Workato UI で SAP コネクターを設定する
いずれかのステップでエラーが発生した場合は、「トラブルシューティング」のセクションを参照してください。
# IDoc 統合のための SAP システムの設定
TIP
このステップは、IDoc を使用する予定である場合にのみ必要です。SAP コネクターで RFC のみを使用する予定である場合は、このステップは必要ありません。手順「II/ SAP で Workato 統合ユーザーを作成する」にスキップしてください。
# ステップ1: SAP GUI で Workato のプログラム ID を登録する
SAP で、トランザクション SM59 を使用して TCP/IP タイプ (タイプ T) の新しい RFC 宛先を作成します。TCP/IP Connection
フォルダーを選択し、[create
] ボタンを選択します。
[Technical Settings] タブで、[Registered Server Program
] オプションを選択し、プログラム ID として「WORKATO
」 (大文字と小文字が区別される) と入力します。
[MDMP & Unicode
] または [Unicode
] タブに進みます。通信タイプが Unicode
に設定されていることを確認します。
保存すると、新規に作成した RFC 宛先が表示されるはずです。
# ステップ2: Workato のポートを定義する
トランザクション WE21 を使用して、タイプ Transactional RFC
の IDoc を送受信するポートを定義します。
ポートを入力するよう求められたら、新しいポートを作成するか、自動的に生成されるようにします。後で使うためにこのポートを忘れずに保存してください。前のステップで作成した RFC Destination
を入力します。この例では、RFC Destination
に「WORKATOTST」という名前を付けたため、ここで RFC Destination
の入力にも同じように定義する必要があります。
# ステップ3: Workato に論理システムを作成する
トランザクション SALE を使用し、論理システムを定義します。
IDoc のインターフェイスとなる新しい論理システムを作成します。論理システムに選択される名前は、以下のステップでパートナープロファイルの作成に使用されます。
# ステップ4: Workato のパートナープロファイルを作成する
トランザクション WE20 を使用して、IDoc と送受信を行うためのパートナープロファイルを定義します。
タイプが論理システムであるパートナープロファイルを作成し、論理システムと同じ名前を指定します。この設定で、Workato システムとの間で送受信できるようにする Message types
を定義します。
アウトバウンドパラメーターは SAP から Workato に送信される IDoc に対応しているのに対し、インバウンドパラメーターは Workato から SAP に送信される IDoc に対応します。
重要な注意点 : ここで設定する Message types
のみが、Workato のレシピで使用できるようになります。
IDoc メッセージタイプの「基本タイプ」を入力するよう求められた場合、使用する予定のすべての IDoc を個別に登録するようにしてください。Workato の SAP New IDoc トリガーで CREMAS01
と CREMAS02
の両方を使用する予定である場合は、アウトバウンドパラメーターで CREMAS
を2回登録する必要があります。拡張を持つ IDoc の場合は、拡張も入力するようにしてください。
受信側ポートを入力するよう求められたら、ステップ2で定義したのと同じポートを入力し、[Output Mode
] を [Pass IDoc immediately] に切り替えるのを忘れないでください。
# ステップ5: パートナーの分散モデルと Workato との連携に使用されるメッセージタイプを作成する
トランザクション BD64 を使用して、Workato システムと連携する必要のある IDoc の分散モデルを作成します。IDoc のフローの方向は、このトランザクションの [Sender]、[Receiver]、[Message type] の属性に基づいて設定されます。
例 :
- Sender: T90CLNT090 (SAP システム)
- Receiver: WORKATOTST (Workato システム/OPA エージェント)
- Message Type: DEBMAS
分散モデルの以下の設定は、SAP で DEBMAS IDOC を Workato に送信できるようにします。Workato レシピは New IDoc
トリガーを使用してそれらを受信します。
WE20 のパートナープロファイル上で登録された各インバウンドおよびアウトバウンド IDoc に対して、別個のエントリが存在するはずです。上の例では、モデルビュー WORKATO Test System Model
の下の画像 は、以下のことを示しています。
- T90CLNT090 は WORKATOTST に4種類の IDoc (CREMAS、DEBMAS、MATMAS、および INVOIC) を送信できます。これらはパートナープロファイルで設定されたアウトバウンドパラメーターに関連付けられています。
- WORKATOTST は T90CLNT090 に3種類の IDoc (CREMAS、DEBMAS、および MATMAS) を送信できます。これらはパートナープロファイルで設定されたインバウンドパラメーターに関連付けられています。
フィルターは必要ありません。
# SAP で Workato 統合ユーザーを作成する
# ステップ6: SU01 を使用して SAP で新規ユーザーを作成する
最初に、SAP システムで Workato 専用のユーザーを作成する必要があります。このユーザーは、後で統合を実行するために最小限必要な権限で使用されます。T-code SU01 で、新規ユーザーに Workato に関連する名前を付けます。以下の例では、ユーザーに WORKATO_INT
という名前を付けています。ユーザーを作成する際は、Last name
とともに password
([Logon Data
] に配置) を指定する必要があります。
TIP
このユーザーの権限は、どの RFC を Workato から実行できるか、どの IDoc を送受信できるかを指定します。
# ステップ7: 新規作成した Workato ユーザーをアクティブ化する
新規ユーザーを作成したら、このユーザーとしてログインして、パスワードを変更することで、このユーザーをアクティブ化する必要があります。パスワードとユーザー名は両方とも、Workato で OPA を設定する際に必要になるため、控えておくようにしてください。
# ステップ8: PFCG を使用して Workato 統合ロールを作成する
次に、この新規作成したユーザーにロールを割り当てる必要があります。このロールは、SAP システム内の特定のオブジェクトに対してのみ付与されます。デモ目的で、今回は Workato から SAP に接続するために必要な最小限の権限についてのみ説明します。 これには、コネクターに必要な RFC の実行や IDOC の送受信に必要な認証は含まれていません。
TIP
Workato でアクションやトリガーを実行するために必要な権限を確認するには、こちらをご覧ください
T-code PFCG に移動し、この Workato ユーザーに割り当てる必要のあるロールを入力します。この例では、Z_WORKATO_MIN_AUTH
という名前を付けています。選択した名前を入力したら、[Single Role
] ボタンを選択します。
新規ロールに説明を入力し、[Authorizations
] タブに移動します。[Profile Name
] 入力項目の横にあるボタンを選択して、プロファイルを生成します。生成されたら、[Change Authorization Data
] を選択します。Workato コネクターが認証と SAP システムからのメタデータの読み取りを行えるようにするために、以下の権限を付与する必要があります。そのためには、ロールの手動による保守を追加します (上部のセクションにボタンが配置されている)。
追加する承認オブジェクト | 説明 |
---|---|
S_RFC | Workato での特定の機能グループの呼び出しを承認するために必要 |
S_RFC | Workato での特定の機能モジュールの呼び出しを承認するために必要 |
S_TABU_DIS | Workato での特定のテーブルの読み取りを承認するために必要 |
S_TABU_NAM | Workato での特定のテーブルの読み取りを承認するために必要 |
# S_RFC オブジェクトの場合
承認オブジェクト | RFC オブジェクトのタイプ (RFC_TYPE) | RFC オブジェクトの名前 (RFC_NAME) |
---|---|---|
S_RFC (Activity = 16) | FUGR | EDIMEXT |
RFC2 | ||
RFC_METADATA | ||
SDIFRUNTIME | ||
SDTX | ||
SVRZ | ||
SYST | ||
ARFC (IDOC を送信する場合にのみ必要) | ||
EDIN (IDOC を送信する場合にのみ必要) | ||
FUNC | DDIF_FIELDINFO_GET | |
GET_SYSTEM_NAME | ||
IDOCTYPES_LIST_WITH_MESSAGES | ||
RFCPING | ||
RFC_FUNCTION_SEARCH_WITHGROUP | ||
OCS_GET_INSTALLED_SWPRODUCTS | ||
RFC_READ_TABLE | ||
API_CREATE_TID (IDOC を送信する場合にのみ必要) | ||
IDOC_INBOUND_ASYNCHRONOUS (IDOC を送信する場合にのみ必要) |
S_TABU_DIS オブジェクトの場合
承認オブジェクト | テーブル承認グループ (DICBERCLS) |
---|---|
S_TABU_DIS (Activity = 02, 03) | SA |
SC | |
SS |
S_TABU_NAM オブジェクトの場合
承認オブジェクト | テーブル承認グループ (DICBERCLS) |
---|---|
S_TABU_NAM (Activity = 02, 03) | EDIPOA |
EDP13 | |
EDP21 | |
RFCDES | |
TAPLT | |
TBD05 | |
TFDIR | |
TFTIT |
最終的な承認は以下のようになるはずです。
[Generate] ボタン (上部のバーにある白と赤の円形のボタン) を押して承認を保存します。
# ステップ9: ユーザーを新規に作成したロールとリンクする
SU01 に移動し、前に作成したユーザーを編集します。[Roles
] タブに移動し、今作成したロールに割り当てを指定します。[Save] をクリックします。
# SAP サーバー上で Workato オンプレミスエージェント (OPA) を設定する
# ステップ10: Workato オンプレミスエージェント (OPA) をダウンロードする
Workato が SAP と接続するためには、SAP サーバー上、または SAP サーバーにアクセス可能な別個の仮想マシン上に Workato オンプレミスエージェント (OPA) をインストールする必要があります。
仮想マシンサーバーおよび SAP サーバーは、ファイアウォールの外側ではなく同じドメインに存在する必要があり、相互にアクセス可能 (各サーバーからもう一方のサーバーに ping を試行して相互にアクセス可能かどうかを確認) である必要があります。
こちらの説明に従って、Workato OPA をダウンロードおよび設定してください。
# ステップ11: SAP JCO ライブラリをダウンロードする
NOTE
OPA バージョン2.15以降、JCo 3.0ライブラリのサポートが維持されなくなります。サポートを要請する前に、最新の JCo 3.1ライブラリを使用していることを確認してください。
SAP Jco ライブラリを使用するライセンスをまだ所有していない場合は、SAP プロバイダーにライセンスについてお問い合わせください。
以下のリンクから、次の2つの項目をダウンロードします。
- SAP JCO コネクター SDK
- Direct Connection ( バージョン3.1 )
- メッセージサーバー接続 ( バージョン3.1 )
- SAP Java IDoc クラスライブラリ
- Direct Connection ( バージョン3.1.XX )
- メッセージサーバー接続 ( バージョン3.1.XX )
適切なオペレーティングシステムが選択されていることを確認してください。
https://support.sap.com/en/product/connectors/jco.html (opens new window)
ライブラリがダウンロードされたら、それらを OPA の lib_ext/
ディレクトリに配置してください。
# Windows ユーザー :
すべての関連するファイルを lib_ext
フォルダーにインポートしたことを確認してください。sapjco3.dll
、sapjco3.jar
、および sapidoc3.jar
の合計3ファイルを、lib_ext
フォルダーにインポートしている必要があります。sap-connector-X.X.X.jar
という名前のファイルはすでにその中に含まれています。
# Mac ユーザー :
すべての関連するファイルを lib_ext
フォルダーにインポートしたことを確認してください。libsapjco3.jnilib
、sapjco3.jar
、および sapidoc3.jar
の合計3ファイルを、lib_ext
フォルダーにインポートしている必要があります。sap-connector-X.X.X.jar
という名前のファイルはすでにその中に含まれています。
# Linux ユーザー :
すべての関連するファイルを lib_ext
フォルダーにインポートしたことを確認してください。libsapjco3.so
、sapjco3.jar
、および sapidoc3.jar
の合計3ファイルを、lib_ext
フォルダーにインポートしている必要があります。sap-connector-X.X.X.jar
という名前のファイルはすでにその中に含まれています。
# ステップ12: OPA に SAP プロファイルを作成する
こちらの手順に従って、OPA に SAP プロファイルを作成します。
# ステップ13: OPA を実行する
こちらの手順に従って、OPA を実行します。正常に実行されたら、Workato での SAP コネクターの設定に進むことができます。
# Workato UI で SAP コネクターを設定する
# ステップ14: Workato から SAP に接続する
Workato でコネクションを作成する方法は2通りあります。ナビゲーションバーで [App Connections
] を選択し、次に [Create a new connection
] をクリックします。または、SAP のトリガー/アクションを含むレシピで、[Connections
] タブを選択します。次に、以下の手順を実行します。
- コネクター
SAP RFC
を選択します。 - 前のステップで作成した SAP の OPA プロファイル名を入力します。この場合は「
Direct1
」です。 - OPA 名を選択します。この場合は「
OPA @ BCone SAP
」になります。 - [
Link your account
] をクリックします。接続が成功したら、Workato で SAP とやり取りするレシピの作成を開始できます。
# アクションとトリガーを実行するための最小限の権限
設定をサポートするため、Workato のアクションに必要となる権限について説明します。
New IDOC トリガーの場合
承認オブジェクト | アクティビティ (ACTVT) | 拡張 (EDI_CIM) | 基本タイプ (EDI_DOC) | トランザクションコード (EDI_TCD) |
---|---|---|---|---|
S_IDOCDEFT | 03 | [存在する場合は IDOC の拡張] | [IDOC の基本タイプ - DEBMAS07 など] | WE30 |
Send IDOC アクションの場合 こちらに記載されている承認および前述の新しい IDOC トリガーに必要な承認。IDOC の送信には、以下の承認も必要です。
承認オブジェクト | メッセージタイプ (EDI_MES) |
---|---|
B_ALE_RECV | [IDOC のメッセージタイプ - DEBMAS など] |
Run RFC アクションの場合
残念ながら、権限は多くの場合選択された RFC によって決まり、そのパラメーターについても同様です。このため、ST01 を使用して、必要となる絶対的な最小権限を確認することをお勧めします。T-code ST01 を使用して、トレースを設定できます。[Authorization check
] を選択し、[General filters
] で Workato ユーザーのユーザー名を入力します。
上部のバーで [Trace On
] を選択して、トレースをオンにします。この後、OPA をリアルタイムで取得し、トリガーとアクションの試行を開始します。統合ユーザーを作成するために設定された最小権限のみを使用しているため、エラーが発生するはずです。上部のナビゲーションバーで [Analysis
] を選択することで、承認エラーを確認できます。
[Display] を選択すると、権限が失敗した箇所が表示されます。前に Workato に作成した承認ロールにこれらの権限を追加します。以下の図は、どの追加の承認が必要かを [Trace display
] から読み取る方法の例を示しています。
WARNING
完了したら、トレースをオフにすることを忘れないでください。このためには、T-code ST01 で [Trace Off
] を選択します。
# トラブルシューティング
設定の際、以下のような問題に遭遇する可能性があります。この一覧は絶えず更新されます。この一覧に問題が見つからない場合は、agent.log
ファイルを確認するか、Workato サポートにお問い合わせください。
エージェントが開始されない。ログファイルに、「JCo initialization failed with java.lang.UnsatisfiedLinkError: C:\Program Files\Workato Agent PROD\lib_ext\sapjco3.dll: Can't find dependent libraries」と記録されている。
Windows プラットフォームでは、JCo 3.1が動作するには Visual Studio 2013 C/C++ ランタイムライブラリがシステムにインストールされている必要があります。存在しない場合は、Microsoft サポート技術情報の記事 (https://support.microsoft.com/en-us/help/4032938 (opens new window)) から "Visual C++ 再頒布可能パッケージ" をダウンロードしてインストールしてください。使用されるロケールと JVM ビット幅 (64ビット用の x64 または32ビット用の x86) に対応するパッケージを選択してください。
Workato で [Link your account
] をクリックすると、接続が失敗する
SAP への接続を試行すると、OPA でエラーが発生します。詳細情報を入手するため、OPA のログを確認してください。
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
間違ったオペレーティングシステムの Java コネクターをダウンロードした可能性があります。正しい SDK をダウンロードおよびインポートしたことを確認してください。
また、このエラーは Mac OS システムで libsapjco3.jnilib
を lib_ext
フォルダーにインポートしていない場合にも表示されます。
Classpath entry lib/SAPConnector.jar not found, skipped.
Mac ユーザーの場合、SAPConnector.jar
を lib_ext
フォルダーに移動する必要はありません。そのようにすると、エラーが発生します。
registration of tp <Program's name> from host ??? not allowed
reg_info ファイルと sec_info ファイルを確認する必要がある可能性があります。修正するには、こちらの SAP ノート (opens new window)の手順に従ってください。
フォールバックとして、以下の手順も実行できます。
- reginfo および secinfo ファイルを移動/名前変更します (OS レベルのパスをアプリケーションレベルで RZ11 T-code のパラメーター (gw/reg_info および gw/sec_info) の値で確認)。
- パラメーター gw/reg_no_conn_info の値を0に設定します。
- パラメーター gw/acl_mode の値を0に設定します。
partner ??? not reached
SAP サーバー (gwhost
) に、OPA がインストールされているマシンからアクセスできない可能性があります。確認のため、ターミナル/コマンドプロンプトを使用して、SAP サーバーの IP を ping
して、アクセス可能かどうかを検証してください。
Workato のドロップダウンリストに必要な IDoc が表示されない
Workato のドロップダウンリストに表示されるようにするためには、まず SAP で必要な IDoc を設定する必要があります。
RFC を介して Workato の API プラットフォームを呼び出せない
まだ有効にしていない場合は、SAP システム上で追加の設定を行って TLS 1.2を有効にする必要があります。Workato への受信 Web トラフィックでは、情報のセキュリティを強化するために TLS 1.2が必要です。TLS 1.2を有効化して Workato への接続を確立する方法については、こちらをご覧ください。
Last updated: 2023/8/31 1:07:14