PostgreSQL のデータで Updategram を使用する
この記事では、CData BizTalk Adapter for PostgreSQL で実行できる Updategram を作成します。スキーマを設計し、それをテンプレートとして挿入、更新、削除の Updategram を生成します。
PostgreSQL 用アダプターをプロジェクトに追加する
Add Adapter ウィザードを使用して、Visual Studio の BizTalk Server プロジェクトにアダプターを追加します。アダプターを使用して、変更したいテーブルに関するメタデータを PostgreSQL に問い合わせます。
- Solution Explorer でプロジェクトを右クリックし、Add -> Add Generated Items をクリックします。
- 表示されるダイアログボックスで Add Adapter Metadata を選択します。
- 表示される Add Adapter Wizard で、リストビューから CData BizTalk Adapter for PostgreSQL を選択します。
- Port メニューでは、選択を空白のままにします。または、アダプターを使用するよう構成された Receive Location か Send Port を選択します。
- Next をクリックすると、Schema Wizard が表示されます。
Updategram 用のスキーマを生成する
以下の手順で、Visual Studio の BizTalk Server プロジェクトでスキーマを作成します。
- まだ行っていない場合は、PostgreSQL アダプターをプロジェクトに追加します。
- Add Adapter ウィザードの Connection String ページで、Send Port または Receive Location で構成されていない場合は、認証情報やその他の接続プロパティを入力します。一般的な接続文字列は以下のとおりです:
User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;
PostgreSQL への接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
必要な接続プロパティの詳細については、ヘルプドキュメントの "BizTalk Configuration" の章を参照してください。
- Schema Information ページで、General Options セクションの Send Port をクリックします。CommandType メニューから Updategram を選択します。Solicit-Response Send Port でアダプターを使用している場合は、One-Way オプションを無効にします。
次のページ(Statement Information)で、Updategram のタイプ(Insert、Update、Delete)を選択します。テーブル名とスキーマに含めるカラムを選択します。Update または Delete を行う場合は、Id カラムが必要です。
注:Updategram を作成する際、スキーマに含めたカラムのみを変更できます。
- Next をクリックしてスキーマのサマリーを表示し、ウィザードを終了してスキーマを作成します。生成された .xsd ファイルがプロジェクトに追加されます。
Insert、Update、Delete のインスタンスメッセージを生成する
Updategram スキーマを作成したら、.xsd ファイルを使用して Updategram を生成できます。Solution Explorer で .xsd ファイルを右クリックし、Generate Instance を選択します。このファイルをテンプレートとして、手動で Updategram を作成することもできます。以下は、Insert、Update、Delete 用に生成された Updategram インスタンスの例です:
Insert
INSERT の例を以下に示します。このインスタンスでは、データがどのように変更されるかを指定する after ブロックのみがあります。
<ns0:parameters xmlns:ns0="http://www.cdata.com/jp/PostgreSQLProvider">
<ns0:sync>
<ns0:before></ns0:before>
<ns0:after>
<ns0:Orders ShipName="ShipName_0" ShipCity="ShipCity_1" />
</ns0:after>
</ns0:sync>
</ns0:parameters>
Update
UPDATE の例を以下に示します。このインスタンスでは、before ブロック(テーブルの現在のデータ)と after ブロック(データがどのように変更されるか)の両方があります。
<ns0:parameters xmlns:ns0="http://www.cdata.com/jp/PostgreSQLProvider">
<ns0:sync>
<ns0:before>
<ns0:Orders Id=001d000000YBRseAAH></ns0:Orders>
</ns0:before>
<ns0:after>
<ns0:Orders ShipName="ShipName_0" ShipCity="ShipCity_1" ></ns0:Orders>
</ns0:after>
</ns0:sync>
</ns0:parameters>
Delete
DELETE の例を以下に示します。after ブロックは空になり、アイテムが削除されることを示します。
<ns0:parameters xmlns:ns0="http://www.cdata.com/jp/PostgreSQLProvider">
<ns0:sync>
<ns0:before>
<ns0:Orders Id=001d000000YBRseAAH></ns0:Orders>
</ns0:before>
<ns0:after></ns0:after>
</ns0:sync>
</ns0:parameters>
スキーマの処理
Updategram を使用して PostgreSQL レコードの挿入、更新、削除を行う方法については、チュートリアルを参照してください。