Ruby でSage US データ連携アプリを構築

Ruby でODBC 経由でSage US に接続して、モダンなクラウド連携アプリを開発。

CData ODBC Driver for Sage US を使うと、簡単にRuby アプリケーションにリアルタイムSage US データを連携・統合できます。 Tこの記事では、Sage US] データにリアルタイムに連携するRuby アプリケーションを構築して、クエリを実行し、結果を表示してみます。

Sage US データのODBC 接続を設定

通常はCData ODBC Driver のインストール後にODBC DSN 接続ウィザードが立ち上がり、設定を行うことができます。 もしODBC DSN 接続が未済の場合には、Microsoft ODBC データソースアドミニストレータでODBC DSN を作成および設定することができます。

The Application Id and Company Name connection string options are required to connect to Sage as a data source. You can obtain an Application Id by contacting Sage directly to request access to the Sage 50 SDK.

Sage must be installed on the machine. The Sage.Peachtree.API.dll and Sage.Peachtree.API.Resolver.dll assemblies are required. These assemblies are installed with Sage in C:\Program Files\Sage\Peachtree\API\. Additionally, the Sage SDK requires .NET Framework 4.0 and is only compatible with 32-bit applications. To use the Sage SDK in Visual Studio, set the Platform Target property to "x86" in Project -> Properties -> Build.

You must authorize the application to access company data: To authorize your application to access Sage, restart the Sage application, open the company you want to access, and connect with your application. You will then be prompted to set access permissions for the application in the resulting dialog.

While the compiled executable will require authorization only once, during development you may need to follow this process to reauthorize a new build. To avoid restarting the Sage application when developing with Visual Studio, click Build -> Configuration Manager and uncheck "Build" for your project.

Ruby および必要なGem のインストール

If you do not have Ruby installed, refer to the Ruby インストールページ. Ruby をインストールしたら、次にruby-dbi、dbd-odbc、ruby-odbc gems をインストールします:

gem install dbi gem install dbd-odbc gem install ruby-odbc

Sage US データに連携するRuby アプリケーションの作成

Ruby ファイル (例: Sage50USSelect.rb) を作成し、テキストエディタで開きます。ファイルに次のコードをコピーします:

#connect to the DSN require 'DBI' cnxn = DBI.connect('DBI:ODBC:CData Sage50US Source','','') #execute a SELECT query and store the result set resultSet = cnxn.execute("SELECT Name, LastInvoiceAmount FROM Customer") #display the names of the columns resultSet.column_names.each do |name| print name, "\t" end puts #display the results while row = resultSet.fetch do (0..resultSet.column_names.size - 1).each do |n| print row[n], "\t" end puts end resultSet.finish #close the connection cnxn.disconnect if cnxn

これで、Ruby で Sage US データが接続できるようになります。簡単にコマンドラインからファイルを叩いて接続を確認してみましょう。:

ruby Sage50USSelect.rb Sage US へのSQL-92 企画のSQL を使って、Ruby に簡単にSage US を連携できます。是非、トライアルで試してみてください。