チュートリアル: Salesforce BizTalk Adapter でアップデートグラムを作成・処理する
CData BizTalk Adapter for Salesforce を使用すると、BizTalk で Salesforce データに対して SQL コマンド、アップデートグラム、ストアドプロシージャを実行できます。この記事では、アップデートグラムを使用して Salesforce データを挿入するアプリケーションの作成手順を解説します。
- 一方向のファイル受信場所が、アップデートグラムを含む XML ドキュメントを取得します。
- ドキュメントは CData Adapter for Salesforce の送信請求-応答送信ポートにルーティングされます。
- アダプターがコマンドを実行します。insert の結果には、新規レコードの Id が含まれます。
- Salesforce からのレスポンスは一方向のファイル送信ポートにルーティングされ、BizTalk メッセージがファイルに書き込まれます。
サンプルアプリケーションの作成
以下のセクションでは、サンプルアプリケーションの作成手順を説明します。
- スキーマとアップデートグラムインスタンスの生成
- 受信ポートの構成
- ファイル受信場所の構成
- 送信請求-応答送信ポートでの Salesforce アダプターの構成
- ファイル送信ポートの構成
- アプリケーション内で BizTalk メッセージをルーティングするフィルターの作成
- 場所とポートの参加と有効化
- アプリケーションログの確認
スキーマとアップデートグラムインスタンスの生成
Visual Studio のウィザードを使用して、スキーマとアップデートグラムインスタンスを生成できます。
プロジェクトに Salesforce アダプターを追加する
アダプターの追加ウィザードを使用して、プロジェクトに Salesforce アダプターを追加します。このアダプターを使用して、挿入先のテーブル(例: Account)に関するメタデータを Salesforce にクエリします。
- ソリューションエクスプローラーでプロジェクトを右クリックし、[Add] -> [Add Generated Items] をクリックします。
- 表示されたダイアログボックスで [Add Adapter Metadata] を選択します。
- 表示された Add Adapter Wizard で、リストビューから CData BizTalk Adapter for Salesforce を選択します。
- [Port] メニューでは、選択を空白のままにします。または、既に構成済みのアダプターの接続文字列を使用する場合は、BizTalk アプリケーションから送信ポートまたは受信場所を選択します。

Account テーブルへの挿入用スキーマの生成
このスキーマは、Salesforce データを挿入するアップデートグラムを作成するためのテンプレートとして使用します。スキーマは XML リクエストとレスポンスを定義する .xsd ファイルです。ここでは例として、insert アップデートグラムを生成します。同じ手順で update や delete のアップデートグラムも作成できます。
- Schema Wizard の [Connection String] ページで、認証情報やその他の接続プロパティを入力します(BizTalk アプリケーションでまだ構成していない場合)。

- [Send Port] オプションを選択します。
- [One-Way] オプションを無効にします。One-Way オプションを有効にすると、アップデートグラムからのレスポンス(AffectedRows の値など)が無視されます。新規作成された行の Id も返されます。One-Way オプションを無効にすることで、Id を取得できるアップデートグラムスキーマを取得できます。
- [Command Type] メニューで、[Updategram] を選択します。

-
[Insert] オプションを選択し、挿入先のテーブルとカラムを選択します。このチュートリアルでは Name と AnnualRevenue を使用します。
注意: アップデートグラムを作成する際、選択できるカラムはスキーマに含めたカラムに限定されます。Id は update と delete には必須ですが、insert には必要ありません。

- サマリーページで、定義した設定を確認し、[Finish] をクリックしてウィザードを閉じます。
アップデートグラムインスタンスの生成
このステップでは、後のステップで Salesforce アダプターに送信される XML メッセージを作成します。アップデートグラムを作成するには、ソリューションエクスプローラーで .xsd ファイルを右クリックし、[Generate Instance] をクリックします。アップデートグラムの保存場所は [Output] タブに表示されます。
アップデートグラムは、Salesforce から必要なレスポンスを定義する構造になっています。アップデートグラムの例と詳細については、CData BizTalk Adapter for Salesforce でアップデートグラムを生成する方法を参照してください。

受信ポートの構成
アプリケーションに受信場所を追加するには、まず受信ポートを追加する必要があります。受信ポートは複数の受信場所からデータを受信できます。
- まだ行っていない場合は、BizTalk Server Administration Console でアプリケーションを開きます。
- アプリケーション内で [Receive Ports] を右クリックし、[New] -> [One-Way Receive Port] をクリックします。[Receive Port Properties] ダイアログが表示されます。
- [Name] メニューで、受信ポートの名前を入力します。

ファイル受信場所の構成
静的な一方向のファイル受信場所を使用すると、BizTalk でアップデートグラムを使用できるようになります。ファイル受信場所は、アップデートグラムを含む BizTalk メッセージを作成します。
- [Receive Locations] を右クリックし、[New] -> [One-Way Receive Location] をクリックします。
- 新しい受信場所が所属する受信ポートを選択します。[Receive Location Properties] ダイアログが表示されます。
- [Name] メニューで、受信場所の名前を入力します。
- 受信場所のプロパティで、[Transport Type] メニューから [FILE] を選択します。
- [Configure] をクリックします。[File Transport Properties] ダイアログが表示されます。
- [Receive Folder] ボックスに、フォルダーのパスを入力します(例: DemoOutbound)。受信場所は、このフォルダーで [File mask] ボックスの条件に一致するファイルをスキャンします。
- [Receive pipeline] メニューで、デフォルトオプションの [PassThruReceive] を選択します。

送信請求-応答送信ポートでの Salesforce アダプターの構成
構成は以下のステップで行います。
送信請求-応答送信ポートの作成と構成
送信請求-応答送信ポートを使用して、アップデートグラムコマンドの結果を取得します。このチュートリアルでは、新規に挿入されたレコードの Id が BizTalk に返されます。
- まだ行っていない場合は、BizTalk Administration Console で BizTalk アプリケーションを開きます。
- BizTalk アプリケーションのノードで [Send Ports] を右クリックし、[New] -> [Static Solicit-Response Send Port] を選択します。[Send Port Properties] ダイアログが表示されます。
- 送信ポートのプロパティで、送信ポートの名前を入力します。
- [Transport Type] メニューで、[CData.Salesforce] を選択します。

CData Adapter for Salesforce の構成
[Adapter Transport Properties] ダイアログで、アダプターが実行するコマンドを定義します。
- 送信ポートのプロパティで、[Configure] ボタンをクリックします。[Adapter Transport Properties] ダイアログが表示されます。
- [CommandType] プロパティで、[Updategram] を選択します。

Salesforce への接続の構成
[Connection String Options] ダイアログで、Salesforce に接続するために必要な資格情報やその他のプロパティを構成します。
- まだ開いていない場合は、[Adapter Transport properties] ダイアログを開きます: 送信ポートのプロパティで、[Configure] をクリックします。
- [Connection String] プロパティのボタンをクリックします。[Connection String Options] ダイアログが表示されます。
- 接続プロパティを入力します。必須の接続プロパティは User、Password、AccessToken です。
- [Test Connection] をクリックして値を検証します。

ファイル送信ポートの構成
ファイル送信ポートは、insert から返された Id をファイルに書き込みます。以下の手順に従って、受信メッセージをファイルに書き込む一方向送信ポートを構成します。
- [Send Ports] を右クリックし、[Static One-Way Send Port] をクリックします。
- [Type] メニューで、[FILE] を選択します。
- [Configure] をクリックします。
- [Destination folder] ボックスに、メッセージが書き込まれるフォルダーのパスを入力します(例: DemoInbound)。

アプリケーション内で BizTalk メッセージをルーティングするフィルターの作成
以下の手順に従って、アプリケーション内で次の関連付けを定義するフィルタールールを作成します。
- 送信請求-応答送信ポートを、アップデートグラムを含む BizTalk メッセージに関連付けます。
- ファイル送信ポートを、アップデートグラムの実行結果によって作成された BizTalk メッセージに関連付けます。
-
送信請求-応答送信ポートのプロパティで、[Filters] をクリックし、以下の値を設定します。
- Property: メニューから [BTS.InboundTransportLocation] を選択します。
- Value: 一方向受信場所の URI を入力します(この例では「C:\DemoOutbound\*.xml」)。

-
一方向送信ポートのプロパティで、[Filters] をクリックし、以下の値を設定します。
- Property: メニューから [BTS.SPName] を選択します。
- Value: 送信請求-応答送信ポートの名前(URI ではない)を入力します。

場所とポートの参加と有効化
アップデートグラムが受信場所で取得されるようにするには、BizTalk アプリケーションを起動する際に以下の手順に従います。
- 送信請求-応答送信ポートを右クリックし、[Start] をクリックします。これにより、送信ポートも参加します。
- 一方向送信ポートを右クリックし、[Start] をクリックします。これにより、送信ポートも参加します。
- 受信場所を右クリックし、[Enable] をクリックします。
これで、受信場所用に構成したフォルダーにアップデートグラムをコピーできます。
一方向送信ポート用に構成したフォルダーを開きます。このフォルダーには、新しい Id が XML ファイルに含まれています。メッセージは以下の例のようになります。
<table xmlns="https://jp.cdata.com/SalesforceProvider" AffectedRows="1"> <row><Id>0014000001XERBUAA5</Id></row> </table>
アプリケーションログの確認
アプリケーションログでは、エラーメッセージを確認したり、アプリケーションが正常に初期化されたかどうかを素早くチェックしたりできます。ログを開くには、Administration Console のナビゲーションツリーで [Event Viewer (Local)] を展開します。[Windows Logs] を展開し、[Application] を選択します。
ここで発生したエラーの一覧を確認できます。システム上のすべてのアプリケーションのエラーメッセージが含まれるため、エラーメッセージのソースを確認することが重要です。受信場所の場合、ソースは CData BizTalk Adapter for Salesforce になります。エラーメッセージの詳細から、エラーが発生している原因についての情報を得ることができます。
エラーの解決に関するサポートが必要な場合は、support@cdata.co.jp までお問い合わせください。