Linux 上でEpicor Kinetic のデータに接続するGo アプリケーションを作成する方法

古川えりか
古川えりか
コンテンツスペシャリスト
CData ODBC Driver とunixODBC を使って、Epicor Kinetic に連携するGo アプリケーションを作成。

Go はオープンソースのプログラミング言語で、高速かつ信頼性の高いソフトウェアを低コストで作成できるのが魅力です。Go とODBC Driver for EpicorKinetic およびunixODBC を組み合わせて使うことで、Epicor Kinetic のデータにリアルタイムで 接続するアプリケーションを作成できます。本記事では、ODBC Driver for EpicorKinetic のインストール、unixODBC Driver Manager への設定、そしてEpicor Kinetic に連携するGo アプリケーションの作成までを説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持った製品です。

  1. Epicor Kinetic をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレデータソースに対応
  2. Go をはじめとする多様な開発ツールやノーコードアプリ、BI ツールにEpicor Kinetic のデータを連携
  3. ノーコードでの手軽な接続設定

CData ODBC ドライバでは、1.データソースとしてEpicor Kinetic の接続を設定、2.Go 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

Linux マシンで CData ODBC Drivers を使用する

CData ODBC Drivers はUbuntu、Debian、RHEL、CentOS、およびFedora など多くのRed Hat ベースおよびDebian ベースのシステムでサポートされています。 ほかにもいくつかのライブラリやパッケージのインストールが必要ですが、すでにデフォルトでインストールされている場合もあります。詳細はオンラインおよびインストールされるヘルプドキュメントの「はじめに」のセクションを参照してください。

Driver Manager のインストール

ドライバーのインストール前にシステムにDriver Manager が入っているかを確認してください。本記事では無料のオープンソースDriver Manager であるunixODBC を使います

Ubuntu のようなDebian ベースのシステムでは、APT パッケージマネージャからunixODBC をインストールできます:

$ apt-get install unixODBC unixODBC-dev

Red Hat Linux ベースのシステムでは、yum もしくはdnf からunixODBC をインストールできます:

$ yum install unixODBC unixODBC-devel

unixODBC Driver Manager はDriver の情報をodbcinst.ini ファイルから読み、odbc.ini からデータソースの情報を読みます。 次のコマンドをターミナルに入力して、設定ファイルの配置場所を決めることができます:

$ odbcinst -j

コマンドのアウトプットでODBC データソースのコンフィギュレーションファイルと登録されたODBC Drver のロケーションを表示します。 ユーザーデータソースはodbc.ini ホームフォルダが位置するユーザーアカウントのみからアクセス可能です。システムデータソースはすべてのユーザーからアクセスできます。 このコマンドのアウトプット例は以下です:

DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/myuser/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

ドライバーのインストール

パッケージ形式でドライバーをダウンロードできます。.deb 形式もしくは、.rpm 形式で提供しています。 ファイルをダウンロードしたら、ターミナルからドライバーをインストールします。

ドライバーインストーラーはドライバーをunixODBC に登録し、ODBC 接続をサポートするツールやアプリケーションから利用できるシステムDSN を作成します。T

Ubuntu のようなDebian ベースのシステムでは、sudo で次のコマンドを実行します:

$ dpkg -i /path/to/package.deb

.rpms をサポートするシステムでは、sudo で次のコマンドを実行します:

$ rpm -i /path/to/package.rpm

ドライバーのインストールが終わったら、unixODBC Driver Manager を使って登録されたドライバーを表示し、データソースを定義することができます。

登録されたドライバーの表示

$ odbcinst -q -d
CData ODBC Driver for EpicorKinetic
...

定義されたData Source の表示

$ odbcinst -q -s
CData EpicorKinetic Source
...

unixODBC でCData ODBC Driver for EpicorKinetic を使用するには、ドライバーがUTF-8 を使用するように設定する必要があります。それには、通常はインストールフォルダのlib フォルダ(/opt/cdata/cdata-odbc-driver-for-epicorkinetic)に入っているドライバーのINI ファイル(cdata.odbc.epicorkinetic.ini)を次のように編集する必要があります:

cdata.odbc.epicorkinetic.ini

...

[Driver]
DriverManagerEncoding = UTF-16

DSN の変更

ドライバーがインストールされると、システムDSN が事前定義されます。システムDSN はシステムデータソースファイル(/etc/odbc.ini)を編集して必要な接続プロパティを定義します。 ユーザー単位のDSN を作成することも可能で、その際には$HOME/.odbc.ini へのアクセスと変更は必要ありません

ERP インスタンスに接続するには、次の接続プロパティを指定してください。

  • Url:ERP インスタンスをホストしているサーバーのURL。例えば、https://myserver.EpicorSaaS.com
  • ERPInstance:ERP インスタンス名。
  • User:アカウントのユーザー名。
  • Password:アカウントのパスワード。
  • Service:データを取得するサービス。例えば、BaqSvc。

また、オプションで次の接続プロパティを指定することもできます。

  • ApiKey:アカウント設定に応じて、いくつかのサービスへの接続に必要となるオプションのキー。
  • ApiVersion:デフォルトはv1。新しいEpicor API を使用するにはv2 に設定してください。
  • Company:ApiVersion をv2 に設定した場合は必須になります。

/etc/odbc.ini or $HOME/.odbc.ini

[CData EpicorKinetic Source]
Driver = CData ODBC Driver for EpicorKinetic
Description = My Description
Service = Erp.BO.CustomerSvc
ERPInstance = MyInstance
URL = https://myaccount.epicorsaas.com
User = username
Password = password

これらのコンフィギュレーションファイルの使い方についての詳細は、インストールされるヘルプドキュメントを参照してください。

Epicor Kinetic のデータに連携するGo アプリケーションサンプルの作成

Driver Manager のインストール、DSN 設定を終えたら、Epicor Kinetic のデータ に連携するGo アプリケーションを作成します。 まずはODBC データベース向けのGo ドライバーをインストールします。いくつかのオプションがありますが、本記事ではhttps://github.com/alexbrainman/odbc のODBC ドライバーを使います。

Linux へのODBC のインストール

Go のODBC ドライバーをインストールするには、GOPATH 環境変数を定義する必要があります:

export GOPATH=$HOME/golang/go

GOPATH が定義されたら、ODBC ドライバー向けのGo ドライバーをインストールすることが可能です:

$ go get github.com/alexbrainman/odbc

これでGo アプリケーションを作って実行する準備ができました。

Go アプリケーションサンプル

このサンプルアプリケーションはEpicor Kinetic のデータ に対してシンプルなSQL SELECT クエリを発行し、結果を表示します。$GOPATH/src/cdata-odbc-epicorkinetic ディレクトリを作成し、次のソースコードをコピーして新しいGo ファイルを作成します。

cdata-odbc-epicorkinetic.go

package main

import (
  _ "github.com/alexbrainman/odbc"
  "database/sql"
  "log"
  "fmt"
)

func main() {
  db, err := sql.Open("odbc",
    "DSN=CData EpicorKinetic Source")
  if err != nil {
    log.Fatal(err)
  }

  var (
    custnum string
    company string
  )

  rows, err := db.Query("SELECT CustNum, Company FROM Customers WHERE CompanyName = ?", "CompanyName")
  if err != nil {
    log.Fatal(err)
  }
  defer rows.Close()
  for rows.Next() {
    err := rows.Scan(&custnum, &company)
    if err != nil {
      log.Fatal(err)
    }
    fmt.Println(custnum, company)
  }
  err = rows.Err()
  if err != nil {
    log.Fatal(err)
  }

  defer db.Close()
}

ターミナルでGo アプリケーションディレクトリに移動して、アプリケーションをビルドします。

$ go build

アプリケーションのビルド後、アプリケーションを実行してEpicor Kinetic のデータを表示することができます。

$ ./cdata-odbc-epicorkinetic

おわりに

このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをGo から扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

日本のユーザー向けにCData ODBC ドライバは、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

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

Epicor Kinetic ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Epicor Kinetic Icon Epicor Kinetic ODBC Driver お問い合わせ

Epicor Kinetic ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからEpicor Kinetic データに連携。

Epicor Kinetic に標準ODBC Driver インターフェースを使ってRDB と同感覚でアクセス - Epicor Kinetic のSales Orders、Purchase Orders、Accounts に標準ODBC インターフェースで双方向連携。