チュートリアル:CData BizTalk Adapter for BASE を使用して Updategram を実行する

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
BASE 用アダプターを使用して Updategram を実行し、BASE からのレスポンスをファイルに書き込むシンプルなアプリケーションを作成します。

CData BizTalk Adapter for BASE を使用すると、BizTalk でBASE のデータに対して SQL コマンド、Updategram、ストアドプロシージャを実行できます。この記事では、Updategram を使用してBASE のデータを挿入するアプリケーションの作成手順を説明します。

  1. One-Way File Receive Location が Updategram を含む XML ドキュメントを取得します。
  2. ドキュメントは、アダプター用に構成された Solicit-Response Send Port にルーティングされます。
  3. アダプターがコマンドを実行します。Insert の結果には、新しいレコードの Id と影響を受けた行数が含まれます。
  4. BASE からのレスポンスは One-Way File Send Port にルーティングされ、BizTalk メッセージがファイルに書き込まれます。

サンプルアプリケーションの作成

以下のセクションで、サンプルアプリケーションの作成手順を説明します:

  1. スキーマと Updategram インスタンスの生成
  2. Receive Port の構成
  3. File Receive Location の構成
  4. Solicit-Response Send Port でのアダプター構成
  5. File Send Port の構成
  6. BizTalk メッセージをアプリケーションにルーティングするフィルターの作成
  7. Location と Port を Enlist および Enable する
  8. アプリケーションログの表示

スキーマと Updategram インスタンスの生成

Visual Studio のウィザードを使用して、スキーマと Updategram インスタンスを生成できます:

  1. アダプターをプロジェクトに追加する
  2. Insert スキーマを生成する
  3. Updategram インスタンスを生成する

アダプターをプロジェクトに追加する

Add Adapter ウィザードを使用して、プロジェクトにアダプターを追加します。アダプターを使用して、挿入したいテーブル(例:"Customers, Orders")に関するメタデータを BASE に問い合わせます。

  1. Solution Explorer でプロジェクトを右クリックし、Add -> Add Generated Items をクリックします。
  2. 表示されるダイアログボックスで Add Adapter Metadata を選択します。
  3. 表示される Add Adapter Wizard で、リストビューから CData BizTalk Adapter for BASE を選択します。
  4. Port メニューでは、選択を空白のままにします。または、既に構成済みのアダプターの接続文字列を使用する場合は、BizTalk アプリケーションから Send Port または Receive Location を選択します。

Insert スキーマを生成する

スキーマを使用して、BASE データを挿入する Updategram を作成するためのテンプレートとします。スキーマは XML リクエストとレスポンスを定義する .xsd ファイルです。例として、Insert Updategram の生成方法を示します。Update および Delete Updategram も同じプロセスで生成できます。

  1. Schema Wizard の Connection String ページで、認証情報やその他の接続プロパティを入力します。
  2. 次のステップで Send Port オプションを選択します。
  3. One-Way オプションをクリアします。One-Way オプションは、AffectedRows 値など、Updategram に対するアダプターからのレスポンスを無視します。新しく作成された行の Id も返されます。One-Way オプションを無効にすることで、Id の取得をサポートする Updategram スキーマを取得できます。
  4. Command Type メニューで Updategram を選択します。
  5. Insert オプションを選択し、挿入するテーブルとカラムを選択します。このチュートリアルでは Customers.ContactName と Orders.OrderDate を使用します。

    :Updategram を作成する際、スキーマに含めたカラムのみを挿入できます。

  6. サマリーページで定義した設定を確認し、Finish をクリックしてウィザードを閉じます。

Updategram インスタンスを生成する

このステップでは、後のステップでアダプターに送信される XML メッセージを作成します。Updategram を作成するには、Solution Explorer で .xsd ファイルを右クリックし、Generate Instance をクリックします。Updategram が保存される場所は Output タブに表示されます。

Updategram は、BASE から期待するレスポンスを定義する構造になっています。Updategram の例と詳細については、アダプターのヘルプドキュメントを参照してください。

Receive Port の構成

アプリケーションに Receive Location を追加するには、まず Receive Port を追加する必要があります。Receive Port は複数の Receive Location からデータを受信できます。

  1. BizTalk Server Administration Console でアプリケーションを開きます。
  2. Receive Ports を右クリックし、New -> One-Way Receive Port をクリックします。Receive Port Properties ダイアログが表示されます。
  3. Receive Port の名前を入力します。

File Receive Location の構成

Static One-Way File Receive Location は、Updategram を含む BizTalk メッセージを作成します。

  1. Receive Locations を右クリックし、New -> One-Way Receive Location をクリックします。
  2. 新しい Receive Location がメンバーとなる Receive Port を選択します。Receive Location Properties ダイアログが表示されます。
  3. Receive Location の名前を入力します。
  4. Transport Type メニューで FILE を選択します。
  5. Configure をクリックします。File Transport Properties ダイアログが表示されます。
  6. Receive Folder ボックスに、フォルダのパス(例:DemoOutbound)を入力します。Receive Location は、このフォルダ内の File mask ボックスの条件に一致するファイルをスキャンします。
  7. Receive Location Properties ダイアログの Receive Pipeline メニューで、デフォルトオプションの PassThruReceive を選択します。

Solicit-Response Send Port での BASE アダプター構成

構成は以下の手順で行います:

  1. Solicit-Response Send Port の作成と構成
  2. アダプターの構成
  3. BASE への接続の構成

Solicit-Response Send Port の作成と構成

Solicit-Response Send Port を使用して、Updategram コマンドの結果を取得します。このチュートリアルでは、新しく挿入されたレコードの Id が BizTalk で返されます。

  1. BizTalk Administration Console で BizTalk アプリケーションを開きます。
  2. Send Ports を右クリックし、New -> Static Solicit-Response Send Port を選択します。Send Port Properties ダイアログが表示されます。
  3. Send Port の名前を入力します。
  4. Transport Type メニューで CData.API を選択します。

CData BASE アダプターの構成

Adapter Transport Properties ダイアログで、アダプターが実行するコマンドを定義します。

  1. Send Port プロパティで Configure ボタンをクリックします。Adapter Transport Properties ダイアログが表示されます。
  2. CommandType プロパティで Updategram を選択します。
各種アダプタープロパティとその機能の説明については、ヘルプドキュメントの Adapter Configuration セクションを参照してください。

BASE への接続の構成

BASE への接続に必要な認証情報やその他のプロパティを構成します:

  1. Adapter Transport プロパティダイアログで、Connection String プロパティのボタンをクリックします。Connection String Options ダイアログが表示されます。
  2. 接続プロパティを入力します。

    一般的な接続文字列は以下のとおりです:

    Profile=Base.apip;Authscheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackUrl=your_callback_url;
    

    最初に、BASE のOAuth アプリを作成する必要があります。作成するには、https://developers.thebase.in/dashboardにアクセスし、「Create New Application」ボタンをクリックします。アプリ名を入力し、リダイレクトURLを指定して「Register」をクリックします。これで、クライアントIDとクライアントシークレットが表示されます。

    次に、プロファイルをダウンロードしてドライバーがアクセス可能な場所に配置します。こちらからプロファイルをダウンロードして、「C:/profiles/」 などに設置してください。

    以下の接続プロパティを設定すると、接続できるようになります。

    • AuthScheme: OAuth に設定します。
    • OAuthClientID: アプリ設定で指定したOAuth クライアントID を設定します。
    • OAuthClientSecret: アプリ設定で指定したOAuth クライアントシークレットを設定します。
    • CallbackURL: アプリ設定で指定したリダイレクトURI を設定します。
    • InitiateOAuth: GETANDREFRESH に設定します。この設定を使って、OAuthAccessToken を取得するプロセスを管理できます。
  3. Test Connection をクリックして、値を確認します。
各種接続プロパティとその機能の説明については、ヘルプドキュメントの Connection String Options の章を参照してください。

File Send Port の構成

File Send Port は、Insert から返される Id をファイルに書き込みます。以下の手順で、受信メッセージをファイルに書き込む One-Way Send Port を構成します。

  1. Send Ports を右クリックし、Static One-Way Send Port をクリックします。
  2. Type メニューで、FILE を選択します。
  3. Configure をクリックします。
  4. Destination Folder ボックスに、メッセージが書き込まれるフォルダのパスを入力します(例:DemoInbound)。

BizTalk メッセージをアプリケーションにルーティングするフィルターの作成

以下の手順で、アプリケーション内で次の関連付けを定義するフィルタールールを作成します:

  • Solicit-Response Send Port を Updategram を含む BizTalk メッセージに関連付けます。
  • File Send Port を Updategram の実行結果から作成された BizTalk メッセージに関連付けます。
  1. Solicit-Response Send Port プロパティで、Filters をクリックし、以下の値を設定します:

    • Property:メニューから BTS.InboundTransportLocation を選択します。
    • Value:One-Way Receive Location の URI を入力します(この例では "C:\DemoOutbound\*.xml")。
  2. One-Way Send Port プロパティで、Filters をクリックし、以下の値を設定します:

    • Property:メニューから BTS.SPName を選択します。
    • Value:Solicit-Response Send Port の名前(URI ではない)を入力します。

Location と Port を Enlist および Enable する

Updategram が Receive Location によってピックアップされるようにするには、BizTalk アプリケーションを起動する際に以下の手順に従います:

  1. Solicit-Response Send Port を右クリックし、Start をクリックします。これにより Send Port が Enlist されます。
  2. One-Way Send Port を右クリックし、Start をクリックします。これにより Send Port が Enlist されます。
  3. Receive Location を右クリックし、Enable をクリックします。

これで、Receive Location 用に構成したフォルダに Updategram をコピーできます。

One-Way Send Port 用に構成したフォルダを開きます。このフォルダには、新しい Id が XML ファイルとして含まれています。メッセージは以下の例のようになります:


<table xmlns="http://www.cdata.com/APIProvider" AffectedRows="1">

  <row>
    <Id>0014000001XERBUAA5</Id>
  </row>
</table>

アプリケーションログの表示

アプリケーションログでエラーメッセージを確認し、アプリケーションが正常に初期化されたことを素早くチェックできます。ログを開くには、Administration Console のナビゲーションツリーで Event Viewer (Local) ノードを展開します。Windows Logs を展開し、Application を選択します。

ここに発生したエラーの一覧が表示されます。これにはシステム上のすべてのアプリケーションのエラーメッセージが含まれるため、エラーメッセージのソースを確認することが重要です。Receive Location の場合、ソースは "CData BizTalk API Receive Adapter" である必要があります。エラーメッセージの詳細から、エラーが発生している理由がわかります。

エラーの解決方法については、[email protected]/jp にお問い合わせください。

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

詳細:

BASE 連携ソリューション