Haskellから最新技術にアクセスする方法

Haskellから最新技術にアクセスする方法

Tomas OlejnikTechnical Leave a Comment

Microsoft Dynamics CRM, Microsoft Dynamics AX, Microsoft SharePoint, Microsoft Exchangeなどの最新のビジネスソフトウェアに、レガシーシステムやエキゾチックなプログラミング言語から接続する方法を想像できますか?今日は、Connect Bridgeプラットフォームを使用してレガシーシステムからターゲットのデータソースにアクセスする方法を説明します。機能言語であるHaskellとODBCドライバを用いて、よく知られたSQL構文を用いてデータ操作を行う方法を紹介します。

Connect Bridgeプラットフォームは、ODBC、JDBCドライバ、Webサービスを利用して最新のシステムと接続できる強力な統合プラットフォームです。この組み合わせにより、レガシーシステムを含むあらゆる環境からの接続が可能になります。

環境設定

まず、コードを実行するための環境を準備する必要があります。これには3つの基本的なステップが含まれています。

      1.Connect Bridgeの遊び場を作る
      2.Haskell環境の準備
      3.接続文字列の設定

Connect Bridgeの遊び場を作る

Dynamics CRM、SharePoint、Exchangeへのトライアルアクセスで無料のデモアカウントConnect Bridgeプレイグラウンドを取得する可能性があります。訪問する必要があります。 CBプレイグラウンドのページ と指示に従ってアクセスしてください。

ご依頼後、数分後にダウンロードリンクを記載したメールをお送りします。電子メールをよく読むか、Connect Bridgeソリューションの概要をよりよく知るために会社のページを訪問してください。

パッケージをダウンロードして解凍します。ルートフォルダ内のバッチファイルを使用してQueryAnalyzerツールを起動します。CRM、SharePoint、Exchangeとの接続があらかじめ設定されていることがわかります。QueryAnalyzerツールを使って、SQLクエリを使って対象システムを触ってみてください。

Haskell環境の準備

パッケージを設定する最も簡単な方法は、完全なHaskell Platformをダウンロードしてインストールすることです (https://www.haskell.org/platform/windows.html).

インストール後、追加設定が必要です - Haskell ODBCドライバをインストールする必要があります。コマンドラインで実行します。

キャベラルアップデート
cabal install HDBC-odbc

この後、Haskell環境は完全に準備されているはずです。

接続文字列の検索

このサンプルでは、Connect Bridgeサーバへの接続にODBCドライバを使用します。 このためには、あらかじめ設定されている接続文字列のターゲットシステムを知る必要があります。ダウンロードしたConnect Bridge PlaygroundのQueryAnalyzerツールを開きます。接続ブラウザで単一の接続を選択し、右クリックして接続の編集を選択します。詳細設定タブに移動し、接続文字列をコピーします。

提供されているCB_HaskellSample.hsファイルを開き、7行目にサンプル接続文字列の代わりに接続文字列を配置してください。

コード

Connect Bridge Serverを使用してConnect Bridge Serverにアクセスするには、パッケージをインポートする必要があります。

import Database.HDBC
import Database.HDBC.ODBC

Connect Bridgeサーバとのデータベース接続を確立するには、connectODBC機能を使用します。

conn <- connectODBC 'yourConnectionString'.

結果が出ないクエリを実行するには、呼び出すことができます。
 

run conn 'INSERT INTO account (name) VALUES ('Hello world from Haskell')'

結果をセットにしてクエリを実行するには、コールすることができます。
 

quickQuery conn 'SELECT accountid, name FROM account' [].

Haskellでデータを照会して結果を処理する方法を示すサンプル関数を作ってみました。

executeQuery :: IO ( )
executeQuery = do
{
    putStr 'Enter query.' ;
    query <- getLine .
    putStrLn 'Connecting to Connect Bridge Server ...' .
    conn <- connectODBC connectionString.
    putStrLn ( 'Executing query '' ++ query ++ ''' ) .
    vals <- quickQuery conn query [ ] .
    putStrLn ( '返却された行数 ' ++ show ( length vals ) ) .
    putStrLn ( convertResultSetToString vals )
}

 

コードを呼び出す

サンプルを実行するには、パッケージに付属しているWinGHCiなどのHaskellインタープリタを使用することができます。

提供されたファイルを開く CB_HaskellSample.hs で、既に変更されている接続文字列を使用します。

呼び出したい関数名を入力するだけです。入力パラメータの入力を求められます。

例1.

ここでは、Dynamics CRMで新規アカウントを作成する方法をHaskellで説明します。関数 executeQuery を呼び出して SQL クエリ 'INSERT INTO アカウント (名前) VALUES ('Haskellからのこんにちはの世界')をクエリとして使用します。これでDynamics CRMに新しいアカウントレコードが作成されます。

*Main> executeQuery

クエリを入力します。INSERT INTO account (name) VALUES ('Hello world from Haskell')

Connect Bridgeサーバーへの接続 ...

クエリ「INSERT INTO account (name) VALUES ('Hello world from Haskell')」を実行します。

返された行数 0

例2.

Dynamics CRMから最新の5つのアカウントを取得する例です。executeQuery関数を呼び出し、SQLクエリ「SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon」を渡します。オプションでcsvExportQuery関数を呼び出し、結果をCSVファイルに書き出すこともできます。

クエリを入力します。SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon DESC
Connect Bridgeサーバーへの接続 ...
クエリ「SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon DESC」を実行します。
返却された行数 5
account(e436e4d4-7d24-e411-a6b7-00155dc2040f),Haskell 5からのハローワールド,2014-08-15 13:12:39
account(168f7ecb-7d24-e411-a6b7-00155dc2040f),Haskell 4からのハローワールド,2014-08-15 13:12:29
account(158f7ecb-7d24-e411-a6b7-00155dc2040f),Haskell 3からのハローワールド,2014-08-15 13:12:24
account(a2079fc4-7d24-e411-a6b7-00155dc2040f),Haskell 2からのハローワールド,2014-08-15 13:12:18
account(a1079fc4-7d24-e411-a6b7-00155dc2040f),Haskell 1からのハローワールド,2014-08-15 13:12:12

結論
私はあなたが簡単にコードの数行でHaskellからDynamics CRMにアクセスする方法を実証しました。同じ小さな努力は、他のシステムにアクセスするために、例えばSharePoint、Exchange、AX、Navision、Salesforce ...(参照してください。(https://test.connecting-software.com/connect-bridge/).さらに、この記事で説明したのと同じように、どの言語からでもこれらのシステムにアクセスすることができます。

この投稿を楽しんでいただけたなら、無料でConnect Bridge環境を手に入れて、今日からプレイしてみましょう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です