Node.js からSage 50 UK データをクエリ

詳細情報をご希望ですか?

製品について詳細情報や無償トライアルをご案内します:

CData API Server



API Server は、データを外部に公開します。CData API Server のOData エンドポイントを使って、Node.js からSage 50 UK へのCRUD クエリを実行します。

CData API Server とADO.NET Provider for Sage 50 UK(もしくは230+ の他のADO.NET Providers)を使って、Sage 50 UK をOData エンドポイントして公開し、Node.js からシンプルなHTTP リクエストでクエリを実現します。本記事ではAPI Server を使ってJSON でフォーマットされたSage 50 UK データをNode.js でリクエストする方法を説明します。

API サーバーをセットアップ

以下のステップに従って、安全なSage 50 UK OData サービスの作成を開始します。

デプロイ

API サーバーは独自のサーバーで実行されます。Windows では、スタンドアロンサーバーまたはIIS を使用して展開できます。Java サーブレットコンテナで、API Server WAR ファイルをドロップします。詳細とハウツーについては、ヘルプドキュメントを参照してください。

API Server は、Microsoft AzureAmazon EC2Heroku にも簡単にデプロイできます。

Sage 50 UK に接続

API サーバーとADO.NET Provider for Sage 50 UK を展開した後、[Settings]->[Connections]をクリックし、API サーバー管理コンソールで新しい接続を追加してSage 50 UK に接続するために必要な認証値とその他の接続プロパティを指定します。

Note:Sage 50 UK 2012 以降のみサポートされています。

[接続]セクションのUser およびPassword プロパティを、有効なSage 50 UK のユーザー資格情報に設定する必要があります。これらの値は、Sage 50 UK に ログインするために使用するものと同じです。

さらに、[接続]セクションのURL プロパティを、希望する会社データセットのアドレスに設定する必要がります。アドレスを取得するには、以下を行ってください:

  1. Sage 50 UK ソフトウェアを開きます。
  2. [Tools]->[Internet Options]をクリックします。
  3. [SData Settings]タブを選択します。
  4. [Sage 50 Accounts]の隣にある[Details]ボタンをクリックします。会社名のリストとそれに対応するデータセットのアドレスを含むウィンドウが表示されます。
  5. URL プロパティを希望する会社の隣にあるアドレスフィールドの値に設定します。

次に、[Settings]->[Resources]をクリックして、API サーバーへのアクセスを許可するSage 50 UK エンティティを選択できます。

API サーバーユーザーを承認

作成するOData サービスを決定したら、[Settings]->[Users]をクリックしてユーザーを承認します。API サーバーは、認証トークンベースの認証を使用して主要な認証スキームをサポートします。IP アドレスに基づいてアクセスを制限することもできます。ローカルマシンを除くすべてのIP アドレスはデフォルトで制限されています。SSL を使用して、接続を認証及び暗号化することができます。

Node.js からSage 50 UK OData フィードを消費

OData フィードはNode.js で簡単に使用できます。Node.js のHTTP クライアントを使用して、API サーバーのOData エンドポイントからJSON 形式のデータをリクエストできます。リクエストを行った後、レスポンスの本文を作成し、JSON.parse() 関数を呼び出してレコードに解析できます。

以下のコードはTradingAccounts データに対して認証されたリクエストを行います。 以下のURL の例では、TradingAccountUUID カラムの値がc2ef66a5-a545-413b-9312-79a53caadbc4 のレコードを検索する単純なフィルターを適用しています。

var http = require('http'); http.get({ protocol: "http:", hostname:"MyServer.com", port:MyPort, path: "/api.rsc/TradingAccounts?$filter=" + encodeURIComponent("TradingAccountUUID eq 'c2ef66a5-a545-413b-9312-79a53caadbc4'"), auth:'MyUser:MyAuthtoken' }, function(res) { var body = ''; res.on('data', function(chunk) { body += chunk; }); res.on('end', function() { console.log(body); var jsonData = JSON.parse(body); }); }).on('error', function(e) { console.log("Error: ", e); });