チュートリアル:CData BizTalk Adapter for BASE を使用して Updategram を実行する
CData BizTalk Adapter for BASE を使用すると、BizTalk でBASE のデータに対して SQL コマンド、Updategram、ストアドプロシージャを実行できます。この記事では、Updategram を使用してBASE のデータを挿入するアプリケーションの作成手順を説明します。
- One-Way File Receive Location が Updategram を含む XML ドキュメントを取得します。
- ドキュメントは、アダプター用に構成された Solicit-Response Send Port にルーティングされます。
- アダプターがコマンドを実行します。Insert の結果には、新しいレコードの Id と影響を受けた行数が含まれます。
- BASE からのレスポンスは One-Way File Send Port にルーティングされ、BizTalk メッセージがファイルに書き込まれます。
サンプルアプリケーションの作成
以下のセクションで、サンプルアプリケーションの作成手順を説明します:
- スキーマと Updategram インスタンスの生成
- Receive Port の構成
- File Receive Location の構成
- Solicit-Response Send Port でのアダプター構成
- File Send Port の構成
- BizTalk メッセージをアプリケーションにルーティングするフィルターの作成
- Location と Port を Enlist および Enable する
- アプリケーションログの表示
スキーマと Updategram インスタンスの生成
Visual Studio のウィザードを使用して、スキーマと Updategram インスタンスを生成できます:
アダプターをプロジェクトに追加する
Add Adapter ウィザードを使用して、プロジェクトにアダプターを追加します。アダプターを使用して、挿入したいテーブル(例:"Customers, Orders")に関するメタデータを BASE に問い合わせます。
- Solution Explorer でプロジェクトを右クリックし、Add -> Add Generated Items をクリックします。
- 表示されるダイアログボックスで Add Adapter Metadata を選択します。
- 表示される Add Adapter Wizard で、リストビューから CData BizTalk Adapter for BASE を選択します。
- Port メニューでは、選択を空白のままにします。または、既に構成済みのアダプターの接続文字列を使用する場合は、BizTalk アプリケーションから Send Port または Receive Location を選択します。
Insert スキーマを生成する
スキーマを使用して、BASE データを挿入する Updategram を作成するためのテンプレートとします。スキーマは XML リクエストとレスポンスを定義する .xsd ファイルです。例として、Insert Updategram の生成方法を示します。Update および Delete Updategram も同じプロセスで生成できます。
- Schema Wizard の Connection String ページで、認証情報やその他の接続プロパティを入力します。
- 次のステップで Send Port オプションを選択します。
- One-Way オプションをクリアします。One-Way オプションは、AffectedRows 値など、Updategram に対するアダプターからのレスポンスを無視します。新しく作成された行の Id も返されます。One-Way オプションを無効にすることで、Id の取得をサポートする Updategram スキーマを取得できます。
- Command Type メニューで Updategram を選択します。
-
Insert オプションを選択し、挿入するテーブルとカラムを選択します。このチュートリアルでは Customers.ContactName と Orders.OrderDate を使用します。
注:Updategram を作成する際、スキーマに含めたカラムのみを挿入できます。
- サマリーページで定義した設定を確認し、Finish をクリックしてウィザードを閉じます。
Updategram インスタンスを生成する
このステップでは、後のステップでアダプターに送信される XML メッセージを作成します。Updategram を作成するには、Solution Explorer で .xsd ファイルを右クリックし、Generate Instance をクリックします。Updategram が保存される場所は Output タブに表示されます。
Updategram は、BASE から期待するレスポンスを定義する構造になっています。Updategram の例と詳細については、アダプターのヘルプドキュメントを参照してください。
Receive Port の構成
アプリケーションに Receive Location を追加するには、まず Receive Port を追加する必要があります。Receive Port は複数の Receive Location からデータを受信できます。
- BizTalk Server Administration Console でアプリケーションを開きます。
- Receive Ports を右クリックし、New -> One-Way Receive Port をクリックします。Receive Port Properties ダイアログが表示されます。
- Receive Port の名前を入力します。
File Receive Location の構成
Static One-Way File Receive Location は、Updategram を含む BizTalk メッセージを作成します。
- Receive Locations を右クリックし、New -> One-Way Receive Location をクリックします。
- 新しい Receive Location がメンバーとなる Receive Port を選択します。Receive Location Properties ダイアログが表示されます。
- Receive Location の名前を入力します。
- Transport Type メニューで FILE を選択します。
- Configure をクリックします。File Transport Properties ダイアログが表示されます。
- Receive Folder ボックスに、フォルダのパス(例:DemoOutbound)を入力します。Receive Location は、このフォルダ内の File mask ボックスの条件に一致するファイルをスキャンします。
- Receive Location Properties ダイアログの Receive Pipeline メニューで、デフォルトオプションの PassThruReceive を選択します。
Solicit-Response Send Port での BASE アダプター構成
構成は以下の手順で行います:
Solicit-Response Send Port の作成と構成
Solicit-Response Send Port を使用して、Updategram コマンドの結果を取得します。このチュートリアルでは、新しく挿入されたレコードの Id が BizTalk で返されます。
- BizTalk Administration Console で BizTalk アプリケーションを開きます。
- Send Ports を右クリックし、New -> Static Solicit-Response Send Port を選択します。Send Port Properties ダイアログが表示されます。
- Send Port の名前を入力します。
- Transport Type メニューで CData.API を選択します。
CData BASE アダプターの構成
Adapter Transport Properties ダイアログで、アダプターが実行するコマンドを定義します。
- Send Port プロパティで Configure ボタンをクリックします。Adapter Transport Properties ダイアログが表示されます。
- CommandType プロパティで Updategram を選択します。
BASE への接続の構成
BASE への接続に必要な認証情報やその他のプロパティを構成します:
- Adapter Transport プロパティダイアログで、Connection String プロパティのボタンをクリックします。Connection String Options ダイアログが表示されます。
接続プロパティを入力します。
一般的な接続文字列は以下のとおりです:
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 を取得するプロセスを管理できます。
- Test Connection をクリックして、値を確認します。
File Send Port の構成
File Send Port は、Insert から返される Id をファイルに書き込みます。以下の手順で、受信メッセージをファイルに書き込む One-Way Send Port を構成します。
- Send Ports を右クリックし、Static One-Way Send Port をクリックします。
- Type メニューで、FILE を選択します。
- Configure をクリックします。
- Destination Folder ボックスに、メッセージが書き込まれるフォルダのパスを入力します(例:DemoInbound)。
BizTalk メッセージをアプリケーションにルーティングするフィルターの作成
以下の手順で、アプリケーション内で次の関連付けを定義するフィルタールールを作成します:
- Solicit-Response Send Port を Updategram を含む BizTalk メッセージに関連付けます。
- File Send Port を Updategram の実行結果から作成された BizTalk メッセージに関連付けます。
-
Solicit-Response Send Port プロパティで、Filters をクリックし、以下の値を設定します:
- Property:メニューから BTS.InboundTransportLocation を選択します。
- Value:One-Way Receive Location の URI を入力します(この例では "C:\DemoOutbound\*.xml")。
-
One-Way Send Port プロパティで、Filters をクリックし、以下の値を設定します:
- Property:メニューから BTS.SPName を選択します。
- Value:Solicit-Response Send Port の名前(URI ではない)を入力します。
Location と Port を Enlist および Enable する
Updategram が Receive Location によってピックアップされるようにするには、BizTalk アプリケーションを起動する際に以下の手順に従います:
- Solicit-Response Send Port を右クリックし、Start をクリックします。これにより Send Port が Enlist されます。
- One-Way Send Port を右クリックし、Start をクリックします。これにより Send Port が Enlist されます。
- 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 にお問い合わせください。