SAP S/4HANA 接続:販売受注と顧客を取り込む
S/4HANA の OData ベース URL を入力し、認証情報一式(Basic の通信ユーザー、または OAuth2 の 3 点セット)のどちらかを入力して、テスト・マッピング・有効化すると販売受注と顧客を取り込めます。
SAP S/4HANA コネクタは、OData サービス経由で S/4HANA システムの販売受注と顧客を Integration に取り込みます。認証は 2 通り:Basic の通信ユーザー、または OAuth2 クライアント認証情報。どちらか一式だけを入力し、両方は入力しません。この接続では在庫は同期されません:S/4HANA の在庫は取り込まれず、返送もされません。
前提条件#
- 連携が許可されている SAP S/4HANA システム(クラウドでもオンプレミスでも可)。
- SAP Basis/SAP 管理チームの協力:OData ベース URL の提供と、通信ユーザーまたは OAuth2 クライアントの準備を依頼できること。
- 販売受注 OData サービス(API_SALES_ORDER_SRV)が S/4HANA システムで有効化されていること。未有効化の場合は、SAP 管理者が /IWFND/MAINT_SERVICE で有効化できます。
- どちらのサインイン方式を使うか決めておくこと:Basic(ユーザー名+パスワード)または OAuth2(Client ID+Client Secret+Token URL)。必要なのは一式だけです。
認証情報の取得#
- ベース URL:SAP Basis チームに S/4HANA システムの OData ベースアドレスを依頼するか、BTP destination を使っている場合はそこから取得します。形式は https://s4hana.example.com:44300 のような形です。共通の既定値はありません。クラウドとオンプレミスでアドレスが異なるため、他のシステムのアドレスを流用しないでください。
- Basic セット(選択肢 A):SAP 管理者に S/4HANA で通信ユーザーを作成または確認してもらい、そのユーザー名とパスワードを控えます。通信ユーザーは S/4HANA がシステム間サインイン用に用意するアカウントです。個人用のログインユーザーは使わないでください。
- OAuth2 セット(選択肢 B)—クラウド:SAP BTP の統合インスタンスのサービスキーから Client ID、Client Secret、Token URL を取得します。
- OAuth2 セット(選択肢 B)—オンプレミス:Client ID と Client Secret は OAuth クライアント設定から取得し、Token URL も同じ設定から取得します。Token URL に推測できる標準値はありません。必ず自分のシステムまたはサービスキーからコピーしてください。
- SAP クライアント:システムで SAP クライアント番号(例:100)を使う場合は、それも控えてください。各リクエストに sap-client パラメータとして送信されます。Basis チームが不要と言う場合は、入力しなくて構いません。
Integration への入力#
- Integration → コネクタマーケットプレイス → SAP S/4HANA → 新規接続を開きます。
- base_url(必須):S/4HANA システムの OData ベースアドレス。例:https://s4hana.example.com:44300。常に必須なのはこの項目だけです。
- sap_client(任意):SAP クライアント番号。例:100。システムで使わない場合は空欄にします。
- username(Basic セット):S/4HANA の通信ユーザーのユーザー名。Basic セットを選んだ場合のみ入力し、必ず password とセットで入力します。
- password(Basic セット):その通信ユーザーのパスワード。暗号化して保存され、再表示されることはありません。
- client_id(OAuth2 セット):OAuth2 の Client ID。クラウドでは BTP サービスキーから、オンプレミスでは OAuth クライアント設定から取得し、通常 sb- で始まります。OAuth2 セットを選んだ場合のみ、client_secret と token_url とセットで入力します。
- client_secret(OAuth2 セット):その Client ID に対応する OAuth2 の Client Secret。暗号化して保存され、再表示されることはありません。
- token_url(OAuth2 セット):OAuth2 の Token URL。形式は https://…/oauth/token のような形です。BTP サービスキー(クラウド)または OAuth クライアント設定(オンプレミス)からコピーし、記憶で入力しないでください。
接続テスト#
テストではまず base_url が入力されているか、認証情報がちょうど一式そろっているかを確認します。不完全な場合は即座に失敗し、有効な 2 通りの組み合わせ(username+password、または client_id+client_secret+token_url)がエラーに示されます。OAuth2 セットの場合、テストは先に token_url で認証情報をアクセストークンに交換します。Basic セットの場合は直接サインインします。次に販売受注 OData サービスの定義を読み取ります:GET {base_url}/sap/opu/odata/sap/API_SALES_ORDER_SRV/$metadata。sap_client を入力した場合は sap-client パラメータが付きます。12 秒の制限内に OK が返れば、アドレス・サインイン・サービスがすべて正常です。失敗ごとに専用のエラーコードと次の手順があります。よくある質問をご覧ください。
Mapping / テンプレート選択#
販売受注には SAP S/4HANA の標準テンプレートを選択してください。有効化の前に、実際の販売受注 1 件でプレビューし、受注番号・顧客・受注明細が正しい標準フィールドに入るか確認します。S/4HANA から取り込んだ顧客レコードは SAP システムの顧客識別子を保持するため、受注をその顧客に紐付けられます。重要なフィールドが違う場所に入る場合は Mapping を調整して再プレビューしてください。未確認の Mapping で有効化しないでください。
有効化#
有効化後、Integration は設定した頻度で S/4HANA から新規・変更された販売受注と顧客を取り込みます。この接続から S/4HANA へ書き戻されるものはなく、在庫は双方向とも同期されません。在庫はこれまで通り管理してください。最初の数件は Runs / Logs で確認し、各注文が S/4HANA の販売受注と一致することを確かめてから、無人運用に移してください。
よくある質問#
テストが 404 で失敗する — SERVICE_NOT_ACTIVATED
ここでの 404 は、アドレスが間違っているという意味ではありません。販売受注 OData サービス(API_SALES_ORDER_SRV)が S/4HANA システムでまだ有効化されておらず、そのサービスアドレスで応答するものがないという意味です。
SAP 管理者に、S/4HANA で /IWFND/MAINT_SERVICE を使って API_SALES_ORDER_SRV サービスを有効化してもらい、テストを再実行してください。このエラーで base_url を変更しないでください。
テストが 401 で失敗する — INVALID_CREDENTIALS
S/4HANA がサインインを拒否しました。通信ユーザーのユーザー名またはパスワードが違う、OAuth2 の Client ID/Client Secret が一致しない、あるいは token_url でのトークン交換で認証情報が受け付けられなかった、のいずれかです。
選んだセットの認証情報を取得元(S/4HANA の通信ユーザー、または BTP サービスキー/OAuth クライアント設定)からコピーし直し、先頭や末尾に空白が紛れていないか確認して、再テストしてください。
テストが 403 で失敗する — MISSING_SCOPE
サインインは成功しましたが、そのアカウントに販売受注サービスを使う許可がありません。通信ユーザーにサービスの権限が不足しているか、この連携用の通信シナリオ(communication scenario)が S/4HANA で設定されていません。
SAP 管理者に、販売受注サービスに対する通信ユーザーの権限と通信シナリオの設定を確認してもらい、再テストしてください。パスワードを変更しても 403 は直りません。
テストで認証情報が不完全と言われる
認証情報が一部しか入力されていません。例えば username だけで password がない、client_id と client_secret だけで token_url がない、といった状態です。テストには一式が必要で、サインインを試す前に停止します。
どちらか一式を決め、そのすべての項目を入力してください。Basic は username+password、OAuth2 は client_id+client_secret+token_url です。もう一方の項目は空にして、中途半端な入力を残さないでください。
この接続で S/4HANA と在庫を同期できますか?
いいえ。この接続が取り込むのは販売受注と顧客だけです。S/4HANA の在庫は取り込まれず、在庫の変更も返送されません。在庫は今お使いのシステムで管理を続け、この接続を前提に OMS の在庫数を計画しないでください。
この接続を流れるレコードは販売受注と顧客の 2 種類だけです。製品レコードも流れません。製品カタログと在庫数値は今まで通り保守してください。