SAP ERP

SAP ERP コネクタを使用すると、SAP ERP データに対して、挿入、削除、更新、読み取りオペレーションを実行できます。

準備

SAP ERP コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
    • コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
      • roles/storage.objectViewer

      サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。

    • 次のサービスを有効にします。
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      サービスを有効にする方法については、サービスを有効にするをご覧ください。

    以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。

コネクタを構成する

コネクタを構成するには、データソース(バックエンド システム)への接続を作成する必要があります。接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。

  1. Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      サポートされているすべてのリージョンの一覧については、ロケーションをご覧ください。

    2. [次へ] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. Connector: 使用可能なコネクタのプルダウン リストから [SAP ERP] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 63 文字以内で指定してください。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    6. Client: SAP システムを認証するクライアント。
    7. System Id: SAP システムのシステム ID または R3Name で、最大 3 文字の文字列です。ロード バランシング接続でよく使用されます。
    8. System Number: ターゲット システムを定める番号。ホスト接続プロパティを設定するときに使用されます。
    9. Project ID: SAP JCo jar を含む GCS バケットが存在する Google Cloud プロジェクトの ID。
    10. Bucket: sapjco3.jar ファイルと libsapjco3.so ファイルが含まれるバケットの名前
    11. Jaco jar オブジェクト ID: JCo jar のオブジェクト ID。
    12. libsapjco3 オブジェクト ID: libsapjco3 jar のオブジェクト ID。
    13. テーブルモード: ビューとして表示する SAP テーブルを選択します。
    14. SNC_LIB オブジェクト ID: SNC ライブラリのオブジェクト ID。
    15. PSE 名: バケットに適用できる Personal Security Environment(PSE)ファイルの名前。PSE ファイルには、公開鍵と秘密鍵のペア、X.509 証明書が ASN.1 構造で保存されます。
    16. グループ: ログインのグループ名。これは通常、SAP システムがロードバランサを使用している場合に指定されます。
    17. メッセージ サーバー: ロードバランサを使用する SAP システムへの接続時に使用するメッセージ サーバーの名前。
    18. 読み取りテーブル関数: テーブルの読み取りに使用される関数の名前。詳細については、カスタム読み取りテーブル関数を使用するをご覧ください。
    19. 接続スキーム: SAP システムへの接続に使用する接続スキームを選択します。
    20. システム ID: SAP システムのシステム ID または R3Name。最大 3 文字まで入力できます。
    21. SNC パスコード: SNC ライブラリ パスコードの Secret Manager の Secret を選択します。
    22. シークレットのバージョン: シークレットのバージョンを選択します。
    23. SNC モード: Integration Connectors と SAP システム間の認証用に SNC を有効にするには、このオプションを選択します。
    24. SNC 名: SNC 接続の名前を入力します。
    25. SNC qop: 保護レベルを選択します。サポートされているレベルは次のとおりです。
      • 1 - 認証のみを適用します。
      • 2 - 完全性保護を適用します。これには認証の保護も含まれます。
      • 3 - プライバシー保護を適用します。これには完全性と認証の保護も含まれます。
      • 8 - デフォルトの保護を適用します。
      • 9 - 最大限の保護を適用します。
    26. SNC パートナー名: アプリケーション サーバーの SNC 名を入力します。
    27. クエリモード: ビューとして表示するべき SAP テーブルを選択します。
    28. 閲覧可能なビュー: 表示するビューのカンマ区切りリストを入力します。例: ViewA,ViewB,ViewC
    29. 詳細レベル: ログの詳細レベルを入力します。サポートされている値は 1 ~ 5 です。値が大きいほど、ログの詳細が取得できることを意味します。
    30. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    31. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    32. [Next] をクリックします。
  5. [宛先] セクションに、接続するリモートホスト(バックエンド システム)の詳細を入力します。
    1. 宛先の種類: 宛先の種類を選択します。
      • リストから [ホストアドレス] を選択して、宛先のホスト名または IP アドレスを指定します。
      • バックエンド システムへのプライベート接続を確立する場合は、リストからエンドポイント アタッチメントを選択し、次にエンドポイント アタッチメントリストから必要なエンドポイント アタッチメントを選択します。

      セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。

      他の宛先を入力するには、[+ 宛先を追加] をクリックします。

    2. [次へ] をクリックします。
  6. [認証] セクションで、認証の詳細を入力します。
    1. [認証タイプ] を選択し、関連する詳細を入力します。

      SAP ERP 接続でサポートされる認証タイプは、次のとおりです。

      • ユーザー名とパスワードを指定する
    2. これらの認証タイプの構成方法については、認証を構成するをご覧ください。

    3. [次へ] をクリックします。
  7. Review: 接続と認証の詳細を確認します。
  8. [作成] をクリックします。

認証を構成する

使用する認証に基づいて詳細を入力します。

  • ユーザー名とパスワード
    • ユーザー名: コネクタのユーザー名
    • パスワード: コネクタに関連付けられたパスワードを含む Secret Manager の Secret。

カスタム読み取りテーブル関数を使用する

RFC_READ_TABLE

コネクタは、SAP RFC_READ_TABLE 関数を使用して SAP テーブルからデータを取得します。

ただし、これにはいくつかの制限があります。一例として、DATA_BUFFER_EXCEEDED 例外について考えてみましょう。SAP RFC_READ_TABLE のサイズは 512 バイトの固定です。データの各行にバッファリングできるため、このバッファに収まる量を超える列を選択することはできません。512 バイト以上を選択すると、行あたに許容されている最大バッファサイズを超え、選択する列の数を少なくする必要があることを示す例外が発生します。

RFC_READ_TABLE2

このコネクタは、RFC_READ_TABLE2 テーブル読み取り関数もサポートしています。ReadTableFunction を /SAPDS/RFC_READ_TABLE2 に設定すると、アクティブなテーブル読み取り関数を RFC_READ_TABLE2 に切り替えることができます。

カスタム読み取りテーブル関数

カスタム読み取りテーブル RFC をインストールする

コネクタには Z_CUSTOM_READ_TABLE のコードが含まれています。これは、SAP RFC_READ_TABLE に類似したカスタム読み取りテーブル RFC ですが、DATA_BUFFER_EXCEEDED 問題に対応し、他の RFC_READ_TABLE 制限をバイパスするためのより大きなバッファを使用します。

次の手順は、付属のカスタム読み取りテーブル RFC を使用して、デフォルトの RFC_READ_TABLE で制限をバイパスする方法を示しています。

  1. 新しい関数のテンプレートとして RFC_READ_TABLE 関数を使用する: トランザクション コード SE37 と SDTX 関数グループを選択し、RFC_READ_TABLE を新しい関数グループまたは作業関数グループにコピーします。この例では、RFC_READ_TABLE が Z_CUSTOM_READ_TABLE にコピーされます。
  2. SAP 画面の [Attributes] タブで、[Remote Enabled Module] を選択します。
  3. [テーブル] タブで、DATA パラメータを CHAR8000 に設定します(右クリックしてから [表示] -> [変更] をクリックする必要がある場合があります)。
  4. [ソースコード] タブで、インストール ディレクトリの db サブフォルダにある置換用の RFC_READ_TABLE 関数モジュールのソースコードを貼り付けます。このコードは Z_CUSTOM_READ_TABLE.txt にありますが、SAP ERP インスタンスで ABAP バージョン 7.52 以降を実行している場合は、Z_CUSTOM_READ_TABLE_752.txt を使用することをおすすめします(下記のセクションを参照)。[Save] をクリックします。
  5. 提供されたカスタム読み取りテーブルに記載されているように、インポート、テーブル、例外を定義します。
  6. 関数モジュールを有効にし、接続文字列で ReadTableFunction を Z_CUSTOM_READ_TABLE または関数モジュールの名前に設定します。

ABAP 7.52 のカスタム読み取りテーブル

Z_CUSTOM_READ_TABLE.txt に加えて、ABAP バージョン 7.52 以降用に設計された Z_CUSTOM_READ_TABLE_752.txt ファイルもあります。これは Z_CUSTOM_READ_TABLE とほぼ同じですが、ABAP スクリプト自体ではなくデータベース内でABAP 7.52 で新しく使用可能になったキーワードを利用してページングを実行します。これにより、大きなテーブルを操作する場合にページングが効率的になります。

可能であれば、Z_CUSTOM_READ_TABLE_752 RFC を使用することをおすすめします。

エンティティ、オペレーション、アクション

すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。

  • エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。

    ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、Entities リストは空になります。

  • オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。

    使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがどのエンティティ オペレーションもサポートしていない場合、サポートされていないオペレーションは Operations リストに含まれません。

  • アクション: コネクタ インターフェースを介して統合で使用できる最初のクラス関数です。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには、いくつかの入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、Actions リストが空になります。

システムの上限

SAP ERP コネクタは、ノードごとに 1 秒あたり 7 件のトランザクションを処理することができ、この上限を超えるトランザクションはすべてスロットルされます。 デフォルトでは、Integration Connectors は、接続に 2 つのノードを割り当てます(可用性を高めるため)。

Integration Connectors に適用される上限の詳細については、上限をご覧ください。

接続構成のサンプル

このセクションでは、接続の作成時に構成するさまざまなフィールドの値の例を示します。

ApplicationServer 接続タイプ

次の表に、ApplicationServer 接続タイプのサンプル構成値を示します。必須フィールドとオプション フィールドについては、コンソールの接続作成インターフェースをご覧ください。

フィールド名 値のサンプル
リージョン us-central1
コネクタ SAP ERP
Connector Version 1
コネクタ名 saperp-applicationserver-conn
説明 なし
サービス アカウント xxxxxxxxx-compute@developer.gserviceaccount.com
クライアント 800
システム番号 00
プロジェクト ID xxxx-gcp-project
バケット sap-erp-bucket
Jco Jar オブジェクト ID sapjco3.jar
libsapjco3 オブジェクト ID libsapjco3.so
表モード TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None
読み取りテーブル関数 Z_CUSTOM_READ_TABLE
接続スキーム ApplicationServer
システム ID SA1
クエリモード なし
閲覧可能なビュー なし
詳細レベル 5
ノードの最小数 2
ノードの最大数 50
ホストアドレス 10.30.X.XX または外部 SAP システムの ルーター文字列。
認証 ユーザー パスワード
ユーザー名 12345
パスワード xyz@12345
バージョン 1

GroupServer の接続タイプ

次の表に、GroupServer 接続タイプのサンプル構成値を示します。必須フィールドと省略可能フィールドについては、コンソールの接続作成インターフェースをご覧ください。

フィールド名 値のサンプル
リージョン us-central1
コネクタ SAP ERP
Connector Version 1
コネクタ名 saperp-GroupServer-conn
説明 なし
サービス アカウント xxxxxxxxx-compute@developer.gserviceaccount.com
クライアント 800
システム番号 00
プロジェクト ID xxxx-gcp-project
バケット sap-erp-bucket
Jco Jar オブジェクト ID sapjco3.jar
libsapjco3 オブジェクト ID libsapjco3.so
表モード TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None
グループ 一般公開
メッセージ サーバー 10.30.X.XX
読み取りテーブル関数 Z_CUSTOM_READ_TABLE
接続方式 GroupServer
システム ID SA1
クエリモード なし
閲覧可能なビュー なし
詳細レベル 5
ノードの最小数 2
ノードの最大数 50
ホストアドレス 10.30.X.XX または外部 SAP システムの ルーター文字列。
認証 ユーザー パスワード
ユーザー名 12345
パスワード xyz@12345
バージョン 1

X509 証明書の接続タイプ

次の表に、X509 certificate 接続タイプのサンプル構成値を示します。必須フィールドと省略可能フィールドについては、コンソールの接続作成インターフェースをご覧ください。

フィールド名 値のサンプル
リージョン us-central1
コネクタ SAP ERP
Connector Version 1
コネクタ名 saperp-X509Certificate-conn
説明 なし
サービス アカウント xxxxxxxxx-compute@developer.gserviceaccount.com
クライアント 800
システム番号 00
プロジェクト ID xxxx-gcp-project
バケット sap-erp-bucket
Jco Jar オブジェクト ID sapjco3.jar
libsapjco3 オブジェクト ID libsapjco3.so
表モード TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None
SNC_LIB オブジェクト ID libsapcrypto.so
cred_v2 ファイルを作成するための PSE 名 EHP8_GCP_SA1.pse
読み取りテーブル関数 Z_CUSTOM_READ_TABLE
接続スキーム ApplicationServer
システム ID SA1
SNC パスコード xyz@gcp
SNC モード SNC を使用しているかどうかを設定するブール値。これを true に設定して、SNC を使用します。
SNC 名 p:CN=EHP8_GCP_SA1、OU=IT、O=CSW、C=DE
SNC Qop 3
SNC PartnerName p:CN=SA1、OU=I0020070395、OU=SAP Web AS、O=SAP Trust Community、C=DE
クエリモード なし
閲覧可能なビュー なし
詳細レベル 5
ノードの最小数 2
ノードの最大数 50
ホストアドレス 10.30.X.XX または外部 SAP システムの ルーター文字列。
認証 認証ベースの X509 証明書
X509Certificate X509 証明書は、PEM 形式の X509 証明書を含むファイルを指すファイルパスを使用して指定される場合があります。「-----BEGIN ...」ヘッダーで始まる PEM blob、または「-----BEGIN ...」ヘッダーがない PEM blob。
バージョン 1

アクション

このセクションでは、コネクタでサポートされているアクションを一覧表示します。アクションの構成方法については、アクションの例をご覧ください。

BAPI_MATERIAL_SAVEDATA アクション

このアクションを使用すると、特定のタスクを実行できます。たとえば、SAP ERP でマテリアル マスター データを作成または変更できます。

BAPI_MATERIAL_SAVEDATA アクションの入力パラメータ

パラメータ名 データ型 必須 説明
HEADDATA 文字列 入力パラメータ HEADDATA。
CLIENTDATA 文字列 入力パラメータ CLIENTDATA。
CLIENTDATAX 文字列 入力パラメータ CLIENTDATAX。
MATERIALDESCRIPTION 文字列 テーブル MATERIALDESCRIPTION。

BAPI_MATERIAL_SAVEDATA アクションの出力パラメータ

このアクションは、アクションが正常に完了した場合、ステータス 200(OK)を返します。

BAPI_MATERIAL_SAVEDATA アクションの構成方法の例については、アクションの例をご覧ください。

ZFM_GCP_MULTIDATA_TAB のアクション

このアクションにより、ユーザーは特定のタスクを実行できます。たとえば、SAP ERP でマルチデータ型データを作成できます。

ZFM_GCP_MULTIDATA_TAB アクションの入力パラメータ

パラメータ名 データ型 必須 説明
ReturnTables 文字列 出力する関数モジュールのテーブルを指定するカンマ区切りのリスト。 指定しない場合は、返されたすべてのテーブルが出力されます。
T_TABLE 文字列 テーブル T_TABLE。
IM_INPUT_1 文字列 入力パラメータ IM_INPUT_1。
IM_INPUT_2 文字列 入力パラメータ IM_INPUT_2。

ZFM_GCP_MULTIDATA_TAB アクションの出力パラメータ

このアクションは、アクションが正常に完了した場合、ステータス 200(OK)を返します。

ZFM_GCP_MULTIDATA_TAB アクションの構成方法の例については、アクションの例をご覧ください。

PushIDoc アクション

このアクションにより、特定のタスクを実行できます。たとえば、SAP から外部システムにデータを転送できます。

PushIDoc アクションの入力パラメータ

パラメータ名 データ型 必須 説明
FileType 文字列 ファイル形式。指定できる値は XML、IDoc です。
モード 文字列 転送モード。Sync、ASync の値が指定できます。
Content 文字列 ファイルのコンテンツ。

PushIDoc アクションの出力パラメータ

このアクションは、アクションが正常に完了した場合、ステータス 200(OK)を返します。

PushIDoc アクションの構成方法の例については、アクションの例をご覧ください。

ExecuteCustomQuery アクション

このアクションにより、カスタムクエリを実行できます。

カスタムクエリを作成する手順は次のとおりです。

  1. 詳細な手順に沿って、コネクタタスクを追加します。
  2. コネクタタスクを構成するときに、実行するアクションの種類で [Actions] を選択します。
  3. [Actions] リストで [Execute custom query] を選択し、[Done] をクリックします。

    execute-custom-query-action を示す画像 execute-custom-query-action を示す画像

  4. [Task input] セクションを開き、次の操作を行います。
    1. [Timeout after] フィールドに、クエリが実行されるまで待機する秒数を入力します。

      デフォルト値: 180

    2. [Maximum number of rows] フィールドに、データベースから返される最大行数を入力します。

      デフォルト値: 25

    3. カスタムクエリを更新するには、[Edit Custom Script] をクリックします。[Script editor] ダイアログが開きます。

      custom-sql-query を示す画像 custom-sql-query を示す画像

    4. [Script editor] ダイアログで、SQL クエリを入力して [Save] をクリックします。

      SQL ステートメントで疑問符(?)を使用して、クエリ パラメータ リストで指定する必要がある 1 つのパラメータを表すことができます。たとえば、次の SQL クエリは、LastName 列に指定された値と一致する Employees テーブルからすべての行を選択します。

      SELECT * FROM Employees where LastName=?

    5. SQL クエリで疑問符を使用した場合は、各疑問符の [+ Add Parameter Name] をクリックして、パラメータを追加する必要があります。統合の実行中に、これらのパラメータにより SQL クエリ内の疑問符(?)が順番に置き換わります。たとえば、3 つの疑問符(?)を追加した場合、3 つのパラメータを順番に追加する必要があります。

      add-query-param を示す画像 add-query-param を示す画像

      クエリ パラメータを追加する手順は次のとおりです。

      1. [Type] リストから、パラメータのデータ型を選択します。
      2. [Value] フィールドに、パラメータの値を入力します。
      3. 複数のパラメータを追加するには、[+ クエリ パラメータを追加] をクリックします。

アクションが正常に実行されると、クエリ結果のあるレスポンスの本文でステータス 200(OK)を返します。

アクションの例

例 - レコードを作成する

この例では、BAPI_MATERIAL_SAVEDATA アクションを使用して、マテリアル レコードを作成します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [BAPI_MATERIAL_SAVEDATA] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Value フィールドに次のような値を入力します。
    {
    "HEADDATA": "{\"MATERIAL\":\"000000000000009001\",\"IND_SECTOR\":\"M\",\"MATL_TYPE\":\"HALB\",\"BASIC_VIEW\":\"X\"}",
    "CLIENTDATA" : "{\"MATL_GROUP\":\"00107\",\"BASE_UOM\":\"KG\"}",
    "CLIENTDATAX" : "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}",
    "MATERIALDESCRIPTION" : "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Google\"}"
    }
  4. アクションが成功すると、BAPI_MATERIAL_SAVEDATA タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "RETURN_TYPE": "S",
    "RETURN_ID": "MM",
    "RETURN_NUMBER": 356,
    "RETURN_MESSAGE": "The material 9001 has been created or extended",
    "RETURN_LOG_NO": "",
    "RETURN_LOG_MSG_NO": 0,
    "RETURN_MESSAGE_V1": "9001",
    "RETURN_FIELD": "",
    "RETURN_SYSTEM": "T90CLNT090",
    "RESULT_TABLE": null
    }]

例 - レコードを更新する

この例では、BAPI_MATERIAL_SAVEDATA アクションを使用して、マテリアル レコードを更新します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [BAPI_MATERIAL_SAVEDATA] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Value フィールドに次のような値を入力します。
    {
    "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"IND_SECTOR\":\"A\",\"MATL_TYPE\":\"FHMI\",\"BASIC_VIEW\":\"X\"}",
    "CLIENTDATA": "{\"MATL_GROUP\":\"013\",\"BASE_UOM\":\"ST\"}",
    "CLIENTDATAX": "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}",
    "MATERIALDESCRIPTION": "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Googlecloud\"}"
    }
  4. アクションが成功すると、BAPI_MATERIAL_SAVEDATA タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "RETURN_TYPE": "S",
    "RETURN_ID": "MM",
    "RETURN_NUMBER": 356,
    "RETURN_MESSAGE": "The material 9000 has been created or extended",
    "RETURN_LOG_NO": "",
    "RETURN_LOG_MSG_NO": 0,
    "RETURN_MESSAGE_V1": "9000",
    "RETURN_PARAMETER": "",
    "RETURN_ROW": 0,
    "RETURN_FIELD": "",
    "RETURN_SYSTEM": "T90CLNT090",
    "RESULT_TABLE": null
    }]

例 - レコードを削除する

この例では、BAPI_MATERIAL_SAVEDATA アクションを使用して、マテリアル レコードを削除します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [BAPI_MATERIAL_SAVEDATA] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Value フィールドに次のような値を入力します。
    {
    "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"BASIC_VIEW\":\"X\"}",
    "CLIENTDATA": "{\"DEL_FLAG\":\"X\"}",
    "CLIENTDATAX": "{\"DEL_FLAG\":\"X\"}"
    }
  4. アクションが成功すると、BAPI_MATERIAL_SAVEDATA タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "RETURN_TYPE": "S",
    "RETURN_ID": "MM",
    "RETURN_NUMBER": 356,
    "RETURN_LOG_NO": "",
    "RETURN_LOG_MSG_NO": 0,
    "RETURN_MESSAGE_V1": "9000",
    "RETURN_PARAMETER": "",
    "RETURN_ROW": 0,
    "RETURN_FIELD": "",
    "RETURN_SYSTEM": "T90CLNT090",
    "RESULT_TABLE": null
    }]
    

例 - マルチデータ型のデータを作成する

この例では、ZFM_GCP_MULTIDATA_TAB アクションを使用してマルチデータ型データを作成します。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [ZFM_GCP_MULTIDATA_TAB] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Value フィールドに次のような値を入力します。
    {
    "T_TABLE": "{\"ZACCP\":\"111\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}",
    "IM_INPUT_1": "{\"ZACCP\":\"222\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}",
    "IM_INPUT_2": "{\"ZSTRING\": \"HI Google\",\"ZSSTRING\": \"HI Google How are you\"}"
    }
  4. アクションが成功すると、ZFM_GCP_MULTIDATA_TAB タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "EX_OUTPUT_1_ZACCP": 222,
    "EX_OUTPUT_1_ZCHAR": "CHARACTER1",
    "EX_OUTPUT_1_ZCLNT": "100",
    "EX_OUTPUT_1_ZCUKY": "INR",
    "EX_OUTPUT_1_ZCURR": 200,
    "EX_OUTPUT_1_ZDATS": "2023-12-13",
    "EX_OUTPUT_1_ZRAW": "01010008010101050401",
    "EX_OUTPUT_1_ZTIMS": "10:30:56",
    "EX_OUTPUT_1_ZUNIT": "11",
    "EX_OUTPUT_1_ZINT4P": 45,
    "EX_OUTPUT_1_ZINT4": 54,
    "EX_OUTPUT_1_ZLRAW": "0101000801010105040100030101010300040000\u0000",
    "EX_OUTPUT_2_ZSTRING": null,
    "EX_OUTPUT_2_ZSSTRING": null,
    "RESULT_TABLE": null,
    "T_TABLE_ZACCP": null,
    "T_TABLE_ZCHAR": null,
    "T_TABLE_ZCLNT": null,
    "T_TABLE_ZQUAN": null,
    "T_TABLE_ZRAW": null,
    "T_TABLE_ZTIMS": null,
    "T_TABLE_ZUNIT": null
    },{
    "EX_OUTPUT_1_ZACCP": null,
    "EX_OUTPUT_1_ZCHAR": null,
    "EX_OUTPUT_1_ZCLNT": null,
    "EX_OUTPUT_1_ZCUKY": null,
    "EX_OUTPUT_1_ZRAW": null,
    "T_TABLE_ZLANG": null,
    "T_TABLE_ZNUMC": null,
    "T_TABLE_ZPREC": null,
    "T_TABLE_ZQUAN": null,
    "T_TABLE_ZRAW": null,
    "T_TABLE_ZTIMS": null,
    "T_TABLE_ZUNIT": null
    },{
    "EX_OUTPUT_1_ZACCP": null,
    "EX_OUTPUT_1_ZCHAR": null,
    "EX_OUTPUT_1_ZCLNT": null,
    "EX_OUTPUT_1_ZCUKY": null,
    "EX_OUTPUT_1_ZCURR": null,
    "EX_OUTPUT_1_ZDATS": null,
    "EX_OUTPUT_1_ZDEC": null,
    "EX_OUTPUT_1_ZQUAN": null,
    "T_TABLE_ZNUMC": 110,
    "T_TABLE_ZPREC": 3,
    "T_TABLE_ZQUAN": 188,
    "T_TABLE_ZRAW": "01010008010101050401",
    "T_TABLE_ZTIMS": "10:30:56",
    "T_TABLE_ZUNIT": "11"
    }]
    

例 - IDoc を push する

この例では、IDoc を SAP ERP にプッシュします。

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [PushIDoc] アクションを選択してから、[完了] をクリックします。
  3. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "Content": "\n\n\n EDI_DC40\n 800\n 0000000008604824\n 740\n 53\n 2\n \n MATMAS05\n MATMAS\n ZLS_QA23\n LS\n ZLS_QA23\n SAPSA1\n LS\n SA1CLNT800\n 20230218\n 232556\n\n\n 005\n 000000000000000012\n 20170328\n 42039\n 20170727\n 42039\n KLVC\n FERT\n M\n 02\n BG\n 000\n 002\n 0.000\n 0.000\n KGM\n 0.000\n 0001\n 0.000\n 0.000\n 0.000\n 0.000\n 0.000\n",
    "FileType": "XML",
    "Mode": "ASync"
    }
  4. アクションが成功すると、PushIDoc タスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
    "Result": "Success",
    "Message": "Push IDoc success"
    }]

エンティティ オペレーションの例

このセクションでは、このコネクタでエンティティ オペレーションの一部を実行する方法について説明します。

例 - すべてのレコードを一覧表示する

この例では、T001 エンティティ内のすべてのレコードを一覧表示します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から T001 を選択します。
  3. [List] オペレーションを選択してから、[完了] をクリックします。
  4. 必要に応じて、コネクタタスクの [タスク入力] セクションでフィルタ句を指定して、結果セットをフィルタリングできます。 フィルタ句の値は、常に単一引用符(')内で指定します。

例 - エンティティからレコードを取得する

この例では、T001 エンティティから、指定した ID のレコードを取得します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から T001 を選択します。
  3. [Get] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタタスクの [タスク入力 セクションで [entityId] をクリックし、[デフォルト値] フィールドに 0001 を入力します。

    ここで、0001T001 エンティティ内の一意のレコード ID です。

Terraform を使用して接続を作成する

Terraform リソースを使用して、新しい接続を作成できます。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。

Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。

パラメータ名 データ型 必須 説明
クライアント STRING True SAP システムを認証するクライアント。
グループ STRING False 使用しているログオン グループ。通常、これは、ロード バランシングを使用する SAP システムに接続する場合にのみ指定する必要があります。
message_server STRING False ロード バランシングを使用する SAP システムに接続する場合は、メッセージ サーバーを指定する必要があります。
read_table_function STRING False テーブルデータの読み取りに使用する関数。
connection_scheme ENUM False SAP システムにメッセージ サーバー(GroupServer)を使用して接続するか、メッセージ サーバーを使用せずに SAP システム(ApplicationServer)に接続するかを指定します。サポートされている値は、ApplicationServer、GroupServer です。
system_id STRING False SAP システムのシステム ID または R3Name で、最大 3 文字の文字列です。ロード バランシング接続でよく使用されます。
system_number STRING True ターゲット システムを定める番号。ホスト接続プロパティを設定するときに使用されます。
project_id STRING True SAP JCo jar を含む Cloud Storage バケットが存在する Google Cloud プロジェクトの ID。
バケット STRING True sapjco3.jar ファイルと libsapjco3.so ファイルが含まれるバケットの名前
sapjco3_jar STRING True sapjco3.jar のオブジェクト ID
libsapjco3_so STRING True libsapjco3.so のオブジェクト ID
snc_lib STRING False SNC ライブラリのオブジェクト ID
snc_mode BOOLEAN False SNC を使用しているかどうかを設定するブール値。これを true に設定して、SNC を使用します。
snc_name STRING False SNC 接続の名前を含む入力(省略可)。
snc_qop ENUM False SNC 接続の保護の質。有効な値は 1、2、3、8、9 で、次の保護レベルに対応します。1 は認証のみを適用します。2 完全性保護(認証)を適用します。3 プライバシー保護(整合性と認証)を適用する。8 デフォルトの保護を適用します。9 最大限の保護を適用します。サポートされている値は、1、2、3、8、9 です。
snc_partner_name STRING False アプリケーション サーバーの SNC 名。SNC を使用する場合は必須の入力です。
query_mode ENUM False ビューとして表示する SAP テーブルを設定します。サポートされている値は、Global、Local、All、None です。
table_mode ENUM False ビューとして表示する SAP テーブルを設定します。サポートされている値は、TransparentApplication、TransparentCustomer、TransparentSystem、Pooled、Cluster、All、None です。
詳細度 文字列 False 接続の詳細レベルは 1~5 です。詳細レベルが高いと、すべての通信の詳細(リクエスト、レスポンス、SSL 証明書)がログに記録されます。

インテグレーションで SAP ERP 接続を使用する

接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。

  • Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
  • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。

Google Cloud コミュニティの助けを借りる

Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ