SAP でのリモート関数呼び出しの使用例

この例では、リモート関数呼び出しメソッドを使用して SAP でドキュメントを作成する Bot をビルドする方法について説明します。

前提条件

SAP の Web サイトから SAP Java コネクター パッケージおよび DLL をダウンロードします。

手順

  1. 新しい Bot を開きます。
    1. 左側のペインで [オートメーション] をクリックします。
    2. [新規作成] > [Bot] をクリックします。
    3. [TaskBot を作成] ウィンドウで、Bot 名を入力します。
    4. [作成と編集] をクリックします。
  2. [接続] アクションを使用して、SAP アプリケーションとの接続を確立します。
    1. [SAP BAPI セッション] フィールドに「Default」と入力します。
    2. [デスクトップ] オプションを選択し、お使いのデバイスで利用可能な SAP Java コネクター パッケージを参照し、選択します。
      例: F:\SAP \SAP JCo 3.1.3\Microsoft Windows and Windows Server\64-bit\sapjco3.jar
    3. [デスクトップ] オプションを選択し、お使いのデバイスで利用可能な SAP Java コネクター DLL を参照し、選択します。
      例: F:\SAP \SAP JCo 3.1.3\Microsoft Windows and Windows Server\64-bit\sapjco3.dll
    4. 接続タイプとして、[グループ/サーバー] オプションを選択します。
    5. [安全でない文字列] を選択し、「AWINAAWO12.bcone.com」と入力して、SAP メッセージ・サーバーのホスト名を指定します。
    6. [ゲートウェイ ホスト] フィールドに「AWINAAWO12.bcone.com」と入力し、サーバーに接続します。
    7. 次の値を入力します。
      フィールド
      ログオン グループ 公開
      システム番号 01
      SAP インスタンスのシステム ID AAI
      クライアント番号 800
      ログオン言語コード EN
      ルーター文字列 /H/115.112.148.66/S/3299
    8. [安全でない文字列] を選択し、「ISR3」と入力して、SAP サーバーへの接続に使用するユーザー名を指定します。
    9. [安全でない文字列] を選択し、「Automation@123」と入力して、SAP サーバーへの接続に使用するパスワードを指定します。
  3. SAP BAPI 関数の関数を作成するには、[関数を作成] アクションを使用します。
    1. SAP BAPI 関数のエイリアスを作成し、エイリアス名で保存します。
    2. [セッション名] フィールドに「Default」と入力します。
    3. [関数エイリアス名] フィールドに「BAPI_Post」と入力します。
    4. [BAPI 名] フィールドに「BAPI_ACC_DOCUMENT_POST」と入力します。
      注: SAP BAPI 関数名とその他のパラメーターは、Automation 360 Bot を作成する際のお客様の環境に固有です。
  4. SAP で「BAPI_ACC_DOCUMENT_POST」を作成するには、最初に構造とテーブルを作成する必要があります。関数のエイリアスを使用して構造体からデータを取得する場合は、[構造を取得] を選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」 ([関数を作成] アクションを使用して SAP BAPI 関数に指定したエイリアス) を入力します。
    2. [構造名] フィールドに、「DOCUMENTHEADER」 (データの取得元の構造名) を入力します。
    3. [SAP BAPI セッション] フィールドに、「Default」 ([接続] アクションで SAP アプリケーションへの接続に使用したセッション名) を入力します。
    4. 構造から取得したデータを保存するための [エイリアス] オプションを選択し、[構造のエイリアスを作成] フィールドに「Doc」と入力します。
  5. 関数のエイリアスを使用してテーブルから表形式データを取得するには、[テーブルを取得] アクションを選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_Post」 ([関数を作成] アクションを使用して SAP BAPI 関数に指定したエイリアス) を入力します。
    2. [テーブル名] フィールドに、「ACCOUNTGL」 (データの取得元のテーブル名) を入力します。
    3. [SAP BAPI セッション] フィールドに、「Default」 ([接続] アクションで SAP アプリケーションへの接続に使用したセッション名) を入力します。
    4. テーブルから取得したデータを保存するために [エイリアス] オプションを選択し、[テーブルのエイリアスを作成] フィールドに「GL」と入力します。
  6. ステップ 5 を繰り返します。ステップ 5(b) で、[テーブル名] フィールドに値「CURRENCYAMOUNT」を入力し、ステップ 5(d) で、[テーブルのエイリアスを作成] フィールドに値「Currency」を入力します。
  7. [フィールド値を設定] アクションを選択して、前に作成した空の構造体とテーブルにデータを設定します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_Post」と入力します。
    2. [送り元] フィールドから、[構造] を選択します。
    3. [構造のエイリアス] フィールドに「DOC」と入力します。
    4. [フィールド名] フィールドに、「USERNAME」 (データの設定先のフィールド名) を入力します。
    5. [フィールド値] フィールドに、「sy-uname」 (設定する値) を入力します。
    6. [SAP BAPI セッション] フィールドに「Default」と入力します。
  8. ステップ 7 を 7 回繰り返し、ステップ 7(a)、7(b)、7(c)、7(f) で入力したのと同じ値を入力します。ステップ 7(d) と 7(e) に以下の値を入力します。
    フィールド名 フィールド値
    BUS_ACT RFBU
    HEADER_TXT TEST BOC BAPI POSTING
    COMP_CODE 1000
    DOC_DATE 20210127
    PSTNG_DATE 20210127
    DOC_TYPE SA
    FIS_PERIOD 00
  9. [構造を取得] アクションを選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [構造名] フィールドに、「DOCUMENTHEADER」と入力します。
    3. [SAP BAPI セッション] フィールドに「Default」と入力します。
    4. 構造体から取得したデータをテーブル変数に格納する場合は、[変数] オプションを選択します。テーブル変数 Sap-Bapi-Table を作成します。
  10. [データ テーブル] > [ファイルへの書き込み] アクションをダブルクリックまたはドラッグします。
    1. [データ テーブル名] リストから、書き込むデータが含まれているテーブル変数 [Sap-Bapi-Table] を選択します。
    2. データを書き込むファイルの場所を [ファイル名を入力] フィールドで指定します。たとえば、次のようになります。D:/user defined/My Desktop/SAP Test/DOCUMENTHEADER.csv
    3. [フォルダー/ファイルが存在しない場合は作成する] チェックボックスを選択します。
    4. 既存のファイルにデータを書き込む場合は、[既存のファイルを上書き] オプションを選択します。
    5. [行区切り文字] フィールドから [改行] オプションを選択します。
    6. [列区切り文字] フィールドから [コンマ] オプションを選択します。
    7. [エンコード リスト] から [ANSI] オプションを選択します。
  11. [フィールドの値を設定] アクションをダブルクリックまたはドラッグして、データをテーブルに設定します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [送り元] フィールドから、[テーブル] を選択します。
    3. [テーブル エイリアス] フィールドに「GL」と入力します。
    4. [フィールド名] フィールドに、「ITEMNO_ACC」 (データの設定先のフィールド名) を入力します。
    5. [フィールド値] フィールドに、「2」 (設定する値) を入力します。
    6. [SAP BAPI セッション] フィールドに、「Default」 ([接続] アクションで SAP アプリケーションへの接続に使用したセッション名) を入力します。
  12. ステップ 11 を 7 回繰り返して、データをテーブルに設定します。

    テーブルの値を設定するときに、ステップ 11(a)、11(b)、11(c)、11(f) で前に入力した値と同じ値を保持します。ステップ 11(d) と 11(e) で以下の値を変更します。

    フィールド値 フィールド名
    GL_ACCOUNT 0000078310
    PSTNG_DATE 20210127
    ITEM_TEXT TEST POSTING DEBIT ITEM
    QUANTITY 1000
    BASE_UOM EA
    COMP_CODE 1000
    DOC_TYPE SA
  13. [値を設定] フィールド アクションを選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [送り元] フィールドから、[テーブル] を選択します。
    3. [テーブル エイリアス] フィールドに「GL」と入力します。
    4. [新しい行を作成] を選択すると、次の行にデータが入力されます。
    5. [フィールド名] フィールドに、「ITEMNO_ACC」 (データの設定先のフィールド名) を入力します。
    6. [フィールド値] フィールドに、「1」 (設定する値) を入力します。
    7. [SAP BAPI セッション] フィールドに、「Default」 ([接続] アクションで SAP アプリケーションへの接続に使用したセッション名) を入力します。
  14. [テーブルを取得] アクションを選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [テーブル名] フィールドに「ACCOUNTGL」と入力します。
    3. [SAP BAPI セッション] フィールドに「Default」と入力します。
    4. テーブルから取得したデータをテーブル変数に格納する場合は、[変数] オプションを選択します。テーブル変数 Sap-Bapi-Table を作成します。
  15. [データ テーブル] > [ファイルへの書き込み] オプションをダブルクリックまたはドラッグしますオプション。
    1. [データ テーブル名] リストから、書き込むデータが含まれているテーブル変数 [Sap-Bapi-Table] を選択します。
    2. データを書き込むファイルの場所を [ファイル名を入力] フィールドで指定します。たとえば、次のようになります。D:/user defined /My Desktop/SAP Test/ACCOUNTGL.csv
    3. [フォルダー/ファイルが存在しない場合は作成する] チェックボックスを選択します。
    4. 既存のファイルにデータを書き込む場合は、[既存のファイルを上書き] オプションを選択します。
    5. [行区切り文字] フィールドから [改行] オプションを選択します。
    6. [列区切り文字] フィールドから [コンマ] オプションを選択します。
    7. [エンコード リスト] から [ANSI] オプションを選択します。
  16. [フィールドの値を設定] アクションをダブルクリックまたはドラッグして、データをテーブルに設定します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [送り元] フィールドから、[テーブル] を選択します。
    3. [テーブル エイリアス] フィールドに「CURRENCY」と入力します。
    4. [フィールド名] フィールドに、「ITEMNO_ACC」 (データの設定先のフィールド名) を入力します。
    5. [フィールド値] フィールドに、「2」 (設定する値) を入力します。
    6. [SAP BAPI セッション] フィールドに、「Default」 ([接続] アクションで SAP アプリケーションへの接続に使用したセッション名) を入力します。
  17. ステップ 16 を 7 回繰り返して、データをテーブルに設定します。

    テーブルの値を設定するときに、ステップ 16(a)、16(b)、16(c)、16(f) で前に入力した値と同じ値を保持します。ステップ 16(d) と 16(e) で以下の値を変更します。

    フィールド名 フィールド値
    CURRENCY USD
    AMT_DOCCUR -2000
    ITEMNO_ACC 1
    CURRENCY USD (繰り返し) 43 行目
    AMT_DOCCUR 2000
  18. ステップ 14 を繰り返し、[テーブル名] フィールドに「CURRENCYAMOUNT」を入力します。
  19. ステップ 15 を繰り返し、ファイルの場所を指定します。D:/user defined /My Desktop/SAP Test/CURRENCYAMOUNT.csv のように指定します。
  20. [関数を実行] アクションを選択して、SAP BAPI 関数を実行します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [シーケンスを終了] オプションを選択してプロセスの終了をマークし、[トランザクションを確定] オプションを選択して処理中に行った変更をコミットします。
    3. [SAP BAPI セッション] フィールドに「Default」と入力します。
  21. [テーブルを取得] アクションを選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [テーブル名] フィールドに「RETURN」と入力します。
    3. [SAP BAPI セッション] フィールドに「Default」と入力します。
    4. テーブルから取得したデータをテーブル変数に格納する場合は、[変数] オプションを選択します。テーブル変数 Sap-Bapi-Table を作成します。
  22. ステップ 15 を繰り返し、ファイルの場所を指定します。D:/user defined /My Desktop/SAP Test/Return.csv のように指定します。
  23. 関数から指定したフィールドのデータを取得する場合は、[フィールド値を取得] アクションを選択します。
    1. [BAPI 関数のエイリアス] フィールドに、「BAPI_POST」と入力します。
    2. [送り元] フィールドから [関数] を選択します。
    3. [フィールド名] フィールドに「OBJ_KEY」と入力します。
    4. [SAP BAPI セッション] フィールドに「Default」と入力します。
    5. [出力を変数に保存] フィールドで [Prompt-Assignment] を選択します。
  24. [メッセージ ボックス] アクションをダブルクリックまたはドラッグします。
    1. [メッセージ ボックス ウィンドウのタイトルを入力] フィールドに「Automation Anywhere Enterprise Client」を入力します。
    2. $Prompt-Assignment$」を入力します。
    3. スクロール バーを表示する場合は、[スクロール バーを表示する行数] フィールドに「30」を入力します。
  25. ステップ 23ステップ 24 を繰り返します (ステップ 23(c) では「OBJ_SYS」と入力)。
  26. ステップ 23ステップ 24 を繰り返します (ステップ 23(c) では「OBJ_TYPE」と入力)。
  27. [保存]、[実行] の順にクリックします。