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

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

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

CData ODBC ドライバとは?

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

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

CData ODBC ドライバでは、1.データソースとしてBullhorn CRM の接続を設定、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 BullhornCRM
...

定義されたData Source の表示

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

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

cdata.odbc.bullhorncrm.ini

...

[Driver]
DriverManagerEncoding = UTF-16

DSN の変更

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

Bullhorn CRM 接続プロパティの取得・設定方法

Bullhorn CRM に接続するには、Bullhorn CRM アカウントの資格情報を入力します。また、DataCenterCode プロパティをデータセンターに対応するデータセンターコードに設定してください。詳しくは、こちら を参照してください。

CLS2、CLS21 などのコードはクラスタID で、ログインした際のブラウザのURL(アドレスバー)に含まれます。

例えば、

https://cls21.bullhornstaffing.com/BullhornSTAFFING/MainFrame.jsp?#no-ba

こちらのURL は、ログインしたユーザーがCLS21 クラスタに存在することを示しています。

ちなみに、コールバックURL の末尾に"/" を含む値、例えば http://localhost:33333/ を指定する場合は、アプリケーション設定で指定したコールバックURL と厳密に同じ値を指定する必要があります。このパラメータの文字が一致しない場合、エラーとなります。

Bullhorn CRM への認証(OAuth)

Bullhorn CRM ではOAuth 2.0 認証標準を利用できます。 OAuth を使用して認証するには、すべてのシナリオでカスタムOAuth アプリケーションを作成して設定する必要があります。詳しい認証方法については、ヘルプドキュメントの「OAuth」セクションを参照してください。

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

[CData BullhornCRM Source]
Driver = CData ODBC Driver for BullhornCRM
Description = My Description
DataCenterCode = CLS33
OAuthClientId = myoauthclientid
OAuthClientSecret = myoauthclientsecret

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

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

Driver Manager のインストール、DSN 設定を終えたら、Bullhorn CRM のデータ に連携する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 アプリケーションサンプル

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

cdata-odbc-bullhorncrm.go

package main

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

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

  var (
    id string
    candidatename string
  )

  rows, err := db.Query("SELECT Id, CandidateName FROM Candidate WHERE CandidateName = ?", "山田太郎")
  if err != nil {
    log.Fatal(err)
  }
  defer rows.Close()
  for rows.Next() {
    err := rows.Scan(&id, &candidatename)
    if err != nil {
      log.Fatal(err)
    }
    fmt.Println(id, candidatename)
  }
  err = rows.Err()
  if err != nil {
    log.Fatal(err)
  }

  defer db.Close()
}

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

$ go build

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

$ ./cdata-odbc-bullhorncrm

おわりに

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

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

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

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

 ダウンロード

詳細:

Bullhorn CRM Icon Bullhorn CRM ODBC Driver お問い合わせ

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

Bullhorn CRM データにデータベースと同感覚でアクセスして、Bullhorn CRM のCandidates、Resumes、Searches データに使い慣れたODBC インターフェースで双方向連携。