e-Sales Manager のデータでGoogle Sheets を拡張

古川えりか
古川えりか
コンテンツスペシャリスト
Google Apps Script からAPI Server に呼び出しを発行。



マクロ、カスタム関数、アドオンを使用してGoogle スプレッドシートからe-Sales Manager のデータとやり取りします。CData API Server は、ADO.NET Provider for ESalesManager(またはその他の250+ ADO.NET Providers)と組み合わせることで、Google Sheets のようなクラウドベースのモバイルアプリケーションからe-Sales Manager のデータに接続できるようになります。API Server は、e-Sales Manager およびCData ADO.NET Providers にサポートされるすべてのソースのOData サービスを生成する軽量のWeb アプリケーションです。

Google Apps Script(GAS)は、これらのOData サービスをJSON 形式で利用できます。この記事では、Google スプレッドシートにCustomer データを取り込み、変更を加えたときにe-Sales Manager のデータの更新を実行するシンプルなアドオンを作成する方法を説明します。

API Server の設定

以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなe-Sales Manager OData サービスを作成していきましょう。

e-Sales Manager への接続

GAS からe-Sales Manager のデータを操作するには、まずe-Sales Manager への接続を作成・設定します。

  1. API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。 接続を追加
  2. 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「e-Sales Manager」を選択します。
  3. 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
    CData コネクタの追加方法はこちら >>
  4. それでは、e-Sales Manager への接続設定を行っていきましょう! 接続設定
  5. e セールスマネージャー Remix に接続するには、User、Passowrd、URL、TenantId パラメータが必要です。

    • User:API を実行するためのログインユーザーのユーザーID。
    • Password:API を実行するためのログインユーザーのユーザーパスワード
    • URL:e-Sales Manager Remix エンドポイントへのURL。例:https://XXX.softbrain.co.jp
    • TenantId:e-Sales Manager Remix テナント名のTenantd。例:cdata
  6. 接続情報の入力が完了したら、「保存およびテスト」をクリックします。

e セールスマネージャー Remix に接続するには、User、Passowrd、URL、TenantId パラメータが必要です。

  • User:API を実行するためのログインユーザーのユーザーID。
  • Password:API を実行するためのログインユーザーのユーザーパスワード
  • URL:e-Sales Manager Remix エンドポイントへのURL。例:https://XXX.softbrain.co.jp
  • TenantId:e-Sales Manager Remix テナント名のTenantd。例:cdata

API Server のユーザー設定

次に、API Server 経由でe-Sales Manager にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。

  1. 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
  2. 次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
  3. その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。

e-Sales Manager 用のAPI エンドポイントの作成

ユーザーを作成したら、e-Sales Manager のデータ用のAPI エンドポイントを作成していきます。

  1. まず、「API」ページに移動し、 「 テーブルを追加」をクリックします。
  2. アクセスしたい接続を選択し、次へをクリックします。
  3. 接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。

OData のエンドポイントを取得

以上でe-Sales Manager への接続を設定してユーザーを作成し、API Server でe-Sales Manager データのAPI を追加しました。これで、OData 形式のe-Sales Manager データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。

e-Sales Manager のデータを取得する

「Tools」->「Script Editor」とクリックして、スプレッドシートからScript Editor を開きます。Script Editor で次の機能を追加し、スプレッドシートにOData クエリの結果を入力します。


function retrieve(){
  var url = "https://MyUrl/api.rsc/Customer?select=Id,Name,Address,Address";
  var response = UrlFetchApp.fetch(url,{
    headers: {"Authorization":"Basic " + Utilities.base64Encode("MyUser:MyAuthtoken")}
  });
  var json = response.getContentText();
  var sheet = SpreadsheetApp.getActiveSheet();
  var a1 = sheet.getRange('a1');
  var index=1;
  var customer = JSON.parse(json).value;

  var cols = [["Id","Name","Address","Address"]];
  sheet.getRange(1,1,1,4).setValues(cols);

  row=2;
  for(var i in customer){
    for (var j in customer[i]) {
      switch (j) {
        case "Id":
          a1.offset(row,0).setValue(account[i][j]);
          break;
        case "Name":
          a1.offset(row,1).setValue(account[i][j]);
          break;
        case "Address":
          a1.offset(row,2).setValue(account[i][j]);
          break;
        case "Address":
          a1.offset(row,3).setValue(account[i][j]);
          break;
      }
    }
    row++;
  }
}

次のステップに従って、開いたタイミングでスプレッドシートに入力するインストール可能なトリガーを追加します。

  1. 「Resources」->「Current Project's Triggers」->「Add a New Trigger」とクリックします。
  2. 「Run」メニューで「retrieve」を選択します。
  3. 「From Spreadsheet」を選択します。
  4. 「On open」を選択します。

ダイアログを閉じると、アプリケーションへのアクセスを許可するように要求されます。

e-Sales Manager のデータへの変更を追加する

以下の関数を追加し、セルへの変更をAPI Server に追加します。


function buildReq(e){
  var sheet = SpreadsheetApp.getActiveSheet();
  var changes = e.range;
  var id = sheet.getRange(changes.getRow(),1).getValue();
  var col = sheet.getRange(1,changes.getColumn()).getValue();

  var url = "http://MyServer/api.rsc/Customer("+id+")";
  var putdata = "{\"@odata.type\" : \"CDataAPI.Customer\",  \""+col+"\": \""+changes.getValue()+"\"}";;
  UrlFetchApp.fetch(url,{
    method: "put",
    contentType: "application/json",
    payload: putdata,
    headers: {"Authorization":"Basic " + Utilities.base64Encode("MyUser:MyAuthtoken")}
  });

}

下記の手順に従って、アップデートトリガーを追加します。

  1. 「Resources」->「Current Project's Triggers」とクリックします。
  2. 「Run」メニューで「buildReqe」を選択します。
  3. 「From Spreadsheet」を選択します。
  4. 「On edit」を選択します。

「Publish」->「Test as Add-On」とクリックすることで、スクリプトを確認できます。バージョン、インストールタイプ、およびスプレッドシートを選択し、テストの構成を作成します。作成したら、選択して実行できます。

セルを変更すると、API Server はe-Sales Manager のデータのアップデートを実行します。

はじめる準備はできましたか?

詳細はこちら、または無料トライアルにお申し込みください:

CData API Server お問い合わせ