Siebel アダプターを使用して統合オブジェクトを使用して Business Service メソッドを呼び出す
Siebel アダプターを使用すると、アダプター クライアントは統合オブジェクトを操作するビジネス サービス メソッドを呼び出すことができます。 通常、これらのビジネス サービスには、統合オブジェクト データを送受信するための "階層" データ型の IN、OUT、または IN OUT パラメーターがあります。
Siebel アダプターは、これらの階層型を文字列として公開します。 これらの文字列値は、基本的に XML CDATA セクションにカプセル化された XML 文字列です。 XML 文字列は、アダプター クライアントが送受信しようとしている統合オブジェクトの XML スキーマと互換性があります。
このトピックに基づくサンプル
このトピックに基づくサンプル SiebelAdapterIntegrationObjects は、BizTalk アダプター パックでも提供されています。 詳細については、「 Siebel アダプターのサンプル」を参照してください。
統合オブジェクトを使用してビジネス サービス メソッドを呼び出すオーケストレーションの作成
統合オブジェクト パラメーターを受け取るビジネス サービス メソッドを呼び出すオーケストレーションの作成は、「BizTalk Serverと Siebel アダプターを使用してビジネス サービス メソッドを呼び出す」で説明されているように、他のビジネス サービスを呼び出すオーケストレーションと似ています。
違いは、オーケストレーションに対してドロップする要求メッセージにあります。 この違いは、次の原因です。
要求メッセージのスキーマは、別のビジネス サービスを呼び出すので異なります。
要求メッセージには、統合オブジェクトの XML 文字列が含まれています。 この XML は CDATA セクションにカプセル化されます。 最初に統合オブジェクトのスキーマを生成してから、スキーマに準拠する XML を作成する必要があります。 この XML は、アダプターに送信される要求メッセージの CDATA セクション内で渡す必要があります。
統合オブジェクト スキーマに準拠する XML を生成し、それを要求メッセージに含めたら、他のオーケストレーションの場合と同様に、要求メッセージを FILE の場所にドロップする必要があります。 他の FILE の場所で応答メッセージを探します。
統合オブジェクトを使用してビジネス サービスを呼び出すための要求メッセージと応答メッセージ
前述のように、統合オブジェクト パラメーターを受け取るビジネス サービスを呼び出す唯一の違いは、アダプターに送信される要求メッセージです。 このセクションでは、要求メッセージを作成するために実行する必要がある手順について説明します。
理解を深めるには、例として Siebel ビジネス サービス "EAI Siebel Adapter" を使用します。 "EAI Siebel Adapter" ビジネス サービスは、Siebel 統合オブジェクト "Sample Account" で動作します。 'EAI Siebel Adapter' ビジネス サービスによって公開されるメソッドを呼び出す要求メッセージを作成するには、次のタスクを実行する必要があります。
EAI Siebel Adapter ビジネス サービスのスキーマを生成します。 アダプター サービス アドインを使用してスキーマを生成する必要があります。 スキーマを生成したら、スキーマに準拠する XML を生成します。
統合オブジェクトのスキーマを生成します。 統合オブジェクトのスキーマを生成するには、Siebel Tools を使用します。 Siebel Tools インターフェイスから、統合オブジェクト (サンプル アカウントなど) を選択し、[ スキーマの生成] をクリックします。 スキーマの生成中に、次のことを確認します。
[一覧からビジネス サービスを選択する] ドロップダウンには、"EAI XML XSD ジェネレーター" という値があります。
[ 一覧から封筒の種類を選択する ] ドロップダウンには、"Siebel Message Envelope" という値があります。
詳細については、Siebel のドキュメントを参照してください。
統合オブジェクトのスキーマに準拠する XML メッセージを作成します。 "サンプル アカウント" 統合オブジェクトに対して生成されるサンプル XML メッセージは次のようになります。
<?xml version="1.0" encoding="UTF-16"?> <SiebelMessage MessageId="" IntObjectName="Sample Account" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <ListOfSampleAccount> <Account> <CurrencyCode>USD</CurrencyCode> <Location>Redmond</Location> <Name>IntegrationObjectTest</Name> </Account> </ListOfSampleAccount> </SiebelMessage>
この XML メッセージを、ビジネス サービス メソッドの要求メッセージの CDATA 要素の値として渡します。 CDATA 要素内の上記の XML メッセージを含むサンプル要求メッセージは、次のようになります。 このサンプル要求では、'EAI Siebel Adapter' ビジネス サービスの Insert メソッドを呼び出します。
<Insert xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter/Operation"> <InsertRequestRecord /> <InsertInOutRecord> <SiebelMessage xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter"> <![CDATA[ <?xml version="1.0" encoding="UTF-16"?> <SiebelMessage MessageId="" IntObjectName="Sample Account" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <ListOfSampleAccount> <Account> <CurrencyCode>USD</CurrencyCode> <Location>Redmond</Location> <Name>IntegrationObjectTest</Name> </Account> </ListOfSampleAccount> </SiebelMessage> ]]> </SiebelMessage> </InsertInOutRecord> </Insert>
上記の要求メッセージに対する Siebel からの応答は、次のようになります。
<?xml version="1.0" encoding="utf-8" ?> <InsertResponse xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter/Operation"> <InsertResult> <ErrorCode xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter">0x0</ErrorCode> <ErrorContextIntComp xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter" /> <ErrorContextSearchSpec xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter" /> <ErrorSymbol xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter" /> <OMErrorCode xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter" /> <OMErrorSymbol xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter" /> <PrimaryRowId xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter">1-6SPSJ</PrimaryRowId> </InsertResult> <InsertInOutRecord> <SiebelMessage xmlns="http://Microsoft.LobServices.Siebel/2007/03/BusinessServices/EAI_x0020_Siebel_x0020_Adapter"> <![CDATA[ <?xml version="1.0" encoding="UTF-16"?> <SiebelMessage MessageId="" IntObjectName="Sample Account" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <ListOfSampleAccount> <Account> <CurrencyCode>USD</CurrencyCode> <Location>Redmond</Location> <Name>IntegrationObjectTest</Name> </Account> </ListOfSampleAccount> </SiebelMessage> ]]> </SiebelMessage> </InsertInOutRecord> </InsertResponse>
BizTalk 機能を使用すると、アダプター クライアントは、統合オブジェクト スキーマ (Siebel Tools から取得) に対して統合オブジェクト IN および OUT パラメーターの追加の検証を実行することもできます。