Oracle E-Business Suite で同時実行プログラムを呼び出す
Oracle E-Business Suite は、Oracle アプリケーションに対して特定の操作を実行するために実行できる同時実行プログラムを公開します。 各 Oracle アプリケーションには、一連の標準同時実行プログラム (すべての操作で同じ) と、Oracle アプリケーションに固有の特定の同時実行プログラムがあります。 Oracle E-Business アダプターは、アダプター クライアントが呼び出すことができる操作として、すべての同時実行プログラムを公開します。 アダプターが同時実行プログラムをサポートする方法の詳細については、「 同時実行プログラムに対する操作」を参照してください。 同時実行プログラムを呼び出すための SOAP メッセージの構造については、「同時実行プログラムの メッセージ スキーマ」を参照してください。
Note
メタデータを公開しない同時実行プログラムの場合、Oracle E-Business アダプターは、これらの同時実行プログラムごとに 100 個の省略可能なパラメーターを公開します。 これらの同時実行プログラムを正常に呼び出すには、Oracle E-Business Suite のドキュメントを参照して、値を必要とする同時実行プログラムのパラメーターを調べ、それらを指定する必要があります。 このような同時プログラムの例として、総勘定元帳アプリケーションの履歴インポート (実際の名前: GLLEZL) があります。
前提条件
Oracle E-Business Suite アプリケーションを作成するための前提条件に関するページの手順を完了している必要があります。
Oracle アプリケーションで同時実行プログラムを呼び出す方法
BizTalk Serverを使用して Oracle E-Business アダプターを使用して Oracle E-Business Suite で操作を実行するには、「Oracle E-Business Suite アプリケーションを作成するための構成要素」で説明されている手続き型タスクが含まれます。 同時実行プログラムを呼び出すには、次のタスクを実行します。
BizTalk プロジェクトを作成し、呼び出す同時実行プログラムのスキーマを生成します。
Oracle E-Business Suite との間でメッセージを送受信するためのメッセージを BizTalk プロジェクトに作成します。
同時実行プログラムを呼び出すオーケストレーションを作成します。
BizTalk プロジェクトをビルドして展開します。
物理送受信ポートを作成して BizTalk アプリケーションを構成します。
BizTalk アプリケーションを起動します。
このトピックでは、これらのタスクを実行する手順について説明します。
スキーマの生成
このトピックでは、売掛金アプリケーションから Customer Interface 同時実行プログラムを呼び出す方法について説明します。 このアプリケーションは、既定の Oracle E-Business Suite アプリケーションで使用できます。 この同時実行プログラムは、要求 ID を返します。 同時実行プログラムの状態をチェックするために、Customer Interface 同時実行プログラムの応答で受信した要求 ID を渡すことによって、Get_Status同時実行プログラムを実行します。
このトピックでは、 Customer Interface と Get_Status 同時実行プログラムの両方のスキーマを生成します。 スキーマを生成する方法の詳細については、「 Visual Studio での Oracle E-Business Suite 操作のメタデータの取得」を参照してください。
メッセージとメッセージの種類の定義
先に生成したスキーマは、オーケストレーションのメッセージに求められる "型" を記述します。 通常、メッセージは変数であり、対応するスキーマによって定義される型です。 オーケストレーションのメッセージを作成し、前の手順で生成したスキーマにリンクする必要があります。
このオーケストレーションでは、4 つのメッセージを作成する必要があります。1 つは Customer Interface 同時実行プログラムを呼び出すための受信応答セット、もう 1 つは 同時プログラムを 呼び出すために設定Get_Status受信応答セットです。
メッセージを作成し、スキーマにリンクするには
BizTalk プロジェクトにオーケストレーションを追加します。 ソリューション エクスプローラーから BizTalk プロジェクト名を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。 BizTalk オーケストレーションの名前を入力し、[ 追加] をクリックします。
BizTalk プロジェクトの [オーケストレーションの種類] ウィンドウを開きます (まだ表示されていない場合)。 これを行うには、[ 表示] をクリックし、[ その他のウィンドウ] をポイントして、[ オーケストレーション ビュー] をクリックします。
オーケストレーション ビューで、[ メッセージ] を右クリックし、[ 新しいメッセージ] をクリックします。
新しく作成したメッセージを右クリックし、[ プロパティ ウィンドウ] を選択します。
Message_1の [プロパティ] ウィンドウで、次の操作を行います。
プロパティ 目的 識別子 「 Request
」と入力しますメッセージ型 ドロップダウン リストから [ スキーマ] を展開し、[ ConcurrentProgram.OracleEBSBindingSchema.RACUST] を選択します。ConcurrentProgram は BizTalk プロジェクトの名前です。 OracleEBSBindingSchema は、 Customer Interface 同時実行プログラムを呼び出すためのスキーマです。 メモ: RACUST は、 Customer Interface 同時実行プログラムの実際の名前です。 アダプター サービスアドインを使用するとフレンドリ名 (カスタマー インターフェイス) が表示されますが、スキーマには同時実行プログラムの実際の名前が含まれます。 手順 3 を繰り返して、3 つの新しいメッセージを作成します。 新しいメッセージの [プロパティ ] ウィンドウで、次の操作を行います。
識別子を に設定する メッセージの種類を に設定する Response ConcurrentProgram.OracleEBSBindingSchema.RACUSTResponse Get_StatusRequest ConcurrentProgram.OracleEBSBindingSchema1.GetStatusForConcurrentProgram Get_StatusResponse ConcurrentProgram.OracleEBSBindingSchema1.GetStatusForConcurrentProgramResponse
オーケストレーションの設定
Oracle E-Business Suite で同時実行プログラムを呼び出すためにBizTalk Serverを使用するには、BizTalk オーケストレーションを作成する必要があります。 このオーケストレーションでは、定義された受信場所に要求メッセージをドロップします。 オーケストレーションはこのメッセージを使用し、それを Oracle E-Business Suite に渡して 、Customer Interface 同時実行プログラムを呼び出します。 同時実行プログラムの応答は Oracle から受信され、別の場所に保存されます。 応答メッセージには要求 ID が含まれています。 オーケストレーションには、応答から要求 ID を抽出し、Get_Status同時実行プログラムのスキーマに準拠するメッセージを構築するメッセージの 構築 図形 が 含まれています。 Get_Status同時実行プログラムを呼び出すメッセージは、要求 ID をパラメーターとして使用して Oracle E-Business Suite に送信されます。 Oracle にメッセージを送信して応答を受信するには、送受信図形、メッセージ構築図形、ポートを含める必要があります。
通常、 Customer Interface 同時実行プログラムの実行には時間がかかるため、 Get_Status 同時実行を実行する前に待機する必要があります。 これを自動化する場合は、 Delay 図形を追加します。
サンプル オーケストレーションは次のようになります。
メッセージ図形の追加
メッセージ図形ごとに次のプロパティを指定します。 [図形] 列に表示される名前は、前のオーケストレーションに表示されているメッセージ図形に対応します。
図形 | 図形の種類 | プロパティ |
---|---|---|
ReceiveMessage | 受信 | - 名前を ReceiveMessage に設定する - Activate をTrue に設定する |
SendMessage | Send | - 名前を SendMessage に設定する |
ReceiveResponse | 受信 | - 名前を ReceiveResponse に設定する - Activate をFalse に設定する |
SendResponse | Send | - 名前を SendResponse に設定する |
SendGetStatus | Send | - 名前を SendGetStatus に設定する |
ReceiveStatusResponse | 受信 | - 名前を ReceiveStatusResponse に設定する - アクティブ化を False に設定する |
SaveStatusResponse | Send | - 名前を SaveStatusResponse に設定する |
遅延図形の追加
Customer Interface の呼び出しと同時実行プログラムのGet_Statusの間にオーケストレーションを待機する場合は、オーケストレーションに遅延図形を追加する必要があります。 オーケストレーションが Customer Interface 同時実行プログラムの応答を FILE 送信ポートにコピーした後に、Delay 図形を追加する必要があります。 そのため、SendResponse 図形の後に Delay 図形を追加する必要があります。
[遅延] 図形内で、遅延図形の式エディターに次のコードを追加することで、オーケストレーションが続行する前に待機する必要がある時間間隔を指定できます。
new System.TimeSpan(0,2,0)
このコードを追加すると、オーケストレーションは続行する前に 2 分間待機します。 遅延図形を構成する方法の詳細については、「 遅延 図形 を構成する方法」を参照してください。
メッセージの構築図形の追加
Customer Interface 同時実行プログラムの Oracle E-Business Suite からの応答には、要求 ID が含まれています。 同時実行プログラムの状態を取得するには、パラメーターと同じ要求 ID を Get_Status 同時実行プログラムに渡す必要があります。 これを行うには、オーケストレーションにメッセージ の構築 図形を含め、その中に メッセージ割り当て 図形を含める必要があります。 メッセージの構築図形の目的は次のとおりです。
Customer Interface 同時実行プログラムに対して受信した応答から要求 ID を抽出します。
Get_Status同時実行プログラムのメッセージ スキーマに準拠するメッセージを作成します。
[ メッセージの構築] 図形で、 Message Constructed プロパティを Get_StatusRequest に設定します。
[メッセージの割り当て] 図形に、以下を追加します。 コードを追加する前に、次の情報が必要です。
XmlDoc = new System.Xml.XmlDocument();
XmlDoc.LoadXml("<GetStatusForConcurrentProgram xmlns='http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR'><RequestId /></GetStatusForConcurrentProgram>");
Get_StatusRequest = XmlDoc;
Get_StatusRequest.RequestId = xpath(Response,"string(/*[local-name()='RACUSTResponse']/*[local-name()='RACUSTResult']/text())");
ポートの追加
ポートを構成するには、次の表に示す各論理ポートのプロパティを指定します。 [ ポート ] 列に表示される名前は、オーケストレーションに表示されるポートの名前に対応します。
Port | プロパティ |
---|---|
MessageIn | - 識別子を MessageIn に設定する - Type を MessageInType に設定する - 通信パターンを一方向に設定する - 通信方向を受信に設定する |
LOBPort | - 識別子を LOBPort に設定する - 型を LOBPortType に設定する - 通信パターンを Request-Response に設定する - [通信の方向] を [送受信] に設定する |
ResponseOut | - 識別子を ResponseOut に設定する - Type を ResponseOutType に設定する - 通信パターンを一方向に設定する - [通信の方向] を [送信] に設定する - 操作 Cust_Interfaceを作成します。 この操作は、 Customer Interface 同時実行プログラムに使用されます。 - 操作 Get_Statusを作成します。 この操作は、 Get_Status 同時実行プログラムに使用されます。 |
LOBPort_GetStatus | - 識別子を LOBPort_GetStatus に設定する - [種類] を [LOBPort_GetStatusType] に設定する - 通信パターンを Request-Response に設定する - [通信の方向] を [送受信] に設定する |
アクション 図形のメッセージを指定し、ポートに接続する
次の表は、アクション図形のメッセージを指定し、ポートにリンクするためのプロパティ値を指定します。 [図形] 列に表示される名前は、オーケストレーション図に表示されるメッセージ図形の名前に対応します。
これらのプロパティを指定すると、メッセージの図形とポートが接続され、オーケストレーションが完了します。
BizTalk ソリューションをビルドし、BizTalk Serverに展開する必要があります。 詳細については、「オーケストレーションの ビルドと実行」を参照してください。
図形 | プロパティ |
---|---|
ReceiveMessage | - メッセージを要求に設定する - 操作を MessageIn.Cust_Interface.Request に設定する |
SendMessage | - メッセージを要求に設定する - 操作を LOBport.Cust_Interface.Request に設定する |
ReceiveResponse | - メッセージを応答に設定する - 操作を LOBport.Cust_Interface.Response に設定する |
SendResponse | - メッセージを応答に設定する - 操作を ResponseOut.Cust_Interface.Request に設定する |
SendGetStatus | - [メッセージ] を [Get_StatusRequest] に設定します - 操作を LOBPort_GetStatus.Get_Status.Request に設定する |
ReceiveStatusResponse | - [メッセージ] を [Get_StatusResponse] に設定する - 操作を LOBPort_GetStatus.Get_Status.Response に設定する |
SaveStatusResponse | - [メッセージ] を [Get_StatusResponse] に設定する - 操作を ResponseOut.Get_Status.Request に設定する |
これらのプロパティを指定すると、メッセージの図形とポートが接続され、オーケストレーションが完了します。
BizTalk ソリューションをビルドし、BizTalk Serverに展開する必要があります。 詳細については、「オーケストレーションの ビルドと実行」を参照してください。
BizTalk アプリケーションの構成
BizTalk プロジェクトを展開すると、先ほど作成したオーケストレーションが、BizTalk Server管理コンソールの [オーケストレーション] ウィンドウの下に一覧表示されます。 アプリケーションを構成するには、BizTalk Server管理コンソールを使用する必要があります。 チュートリアルについては、「 チュートリアル: 基本的な BizTalk アプリケーションの展開」を参照してください。
アプリケーションの構成には、次の作業が含まれます。
アプリケーションのホストの選択。
オーケストレーションで作成したポートを、BizTalk Server管理コンソールの物理ポートにマッピングします。 このオーケストレーションでは、次の操作を行う必要があります。
ハード ディスク上の場所と、要求メッセージをドロップする対応するファイル ポートを定義します。 BizTalk オーケストレーションは要求メッセージを使用し、Oracle E-Business Suite に送信します。
ハード ディスク上の場所と、BizTalk オーケストレーションが Oracle E-Business Suite からの応答を含む応答メッセージをドロップする対応するファイル ポートを定義します。
2 つの物理 WCF-Custom または WCF-OracleEBS 送信ポートを定義します。1 つは Oracle E-Business Suite にメッセージを送信して Customer Interface 同時実行プログラムを実行し、もう 1 つは Get_Status 同時実行プログラムを実行します。 また、送信ポートでアクションを指定する必要があります。 ポートを作成する方法については、「 Oracle E-Business Adapter への物理ポート バインディングの手動構成」を参照してください。
Oracle E-Business アダプターを使用して同時実行プログラムを呼び出すには、操作が呼び出される適切なアプリケーション コンテキストを設定する必要があります。 Oracle E-Business アダプターには、任意の操作のアプリケーション コンテキストを指定するための特定のバインド プロパティが用意されています。 これらのバインド プロパティは、同時実行プログラムの呼び出しに使用される WCF-Custom または WCF-OracleEBS ポートに設定する必要があります。
ClientCredentialType バインド プロパティが Database に設定されている場合は、次のバインド プロパティを指定してアプリケーション コンテキストを設定する必要があります。
Binding プロパティ 値 OracleUserName Oracle E-Business Suite ユーザーの名前を指定します。 Oracle E-Business アダプターは、Oracle E-Business Suite に接続するときに OracleUserName バインディング プロパティに入力した値の大文字と小文字は保持されません。 ユーザー名は、SQL*Plus の標準規則を使用して Oracle E-Business Suite に渡されます。 ただし、ユーザー名の大文字と小文字を保持する場合、または特殊文字を含むユーザー名を入力する場合は、値を二重引用符で囲んで指定する必要があります。 OraclePassword Oracle E-Business Suite ユーザーのパスワード。 Oracle E-Business アダプターは、Oracle E-Business Suite に接続するときに OraclePassword バインディング プロパティに入力した値の大文字と小文字は保持されません。 パスワードは、SQL*Plus の標準規則を使用して Oracle E-Business Suite に渡されます。 ただし、パスワードの大文字と小文字を保持する場合、または特殊文字を含むパスワードを入力する場合は、値を二重引用符で囲んで指定する必要があります。 OracleEBSResponsibilityName Oracle E-Business Suite ユーザーに関連する責任。 ClientCredentialType バインド プロパティが EBusiness に設定されている場合は、接続の確立時に Oracle E-Business 資格情報を既に指定している必要があります。 このような場合は、 OracleEBSResponsibilityName バインディング プロパティの値のみを指定する必要があります。
さまざまなバインド プロパティの詳細については、「 BizTalk Adapter for Oracle E-Business Suite のバインド プロパティ」を参照してください。 アダプターがアプリケーション コンテキストの設定をサポートする方法の詳細については、「アプリケーション コンテキストの 設定」を参照してください。
Note
アプリケーション コンテキストは、バインド プロパティを指定するか、Oracle E-Business アダプターによって公開されるメッセージ コンテキスト プロパティを設定することによって設定できます。 バインド プロパティを設定する方法については、「 Oracle E-Business Suite のバインド プロパティを構成する」を参照してください。 メッセージ コンテキスト プロパティを使用してアプリケーション コンテキストを設定する方法については、「 Oracle E-Business Suite でメッセージ コンテキスト プロパティを使用してアプリケーション コンテキストを構成する」を参照してください。
Note
アダプター サービス BizTalk プロジェクト アドインを使用してスキーマを生成すると、ポートとそれらのポートに設定するアクションに関する情報を含むバインド ファイルも作成されます。 このバインド ファイルをBizTalk Server管理コンソールからインポートして、送信ポート (送信呼び出しの場合) または受信ポート (受信呼び出し用) を作成できます。 詳細については、「 Oracle E-Business Suite へのポート バインド ファイルを使用して物理ポート バインドを構成する」を参照してください。
アプリケーションの起動
同時実行プログラムを呼び出す前に、BizTalk アプリケーションを起動する必要があります。 BizTalk アプリケーションを起動する手順については、「オーケストレーションを 開始する方法」を参照してください。
この段階で、次のことを確認します。
オーケストレーションの要求メッセージを受信する FILE 受信ポートが実行されています。
オーケストレーションから応答メッセージを受信する FILE 送信ポートが実行されています。
Customer Interface 同時実行プログラムを呼び出す WCF-Custom または WCF-OracleEBS 送信ポートが実行されています。
同時実行プログラムが実行されているGet_Statusを呼び出す WCF-Custom または送信ポート WCF-OracleEBS 。
操作の BizTalk オーケストレーションが実行されています。
操作の実行
アプリケーションを実行した後、 Customer Interface 同時実行プログラムを呼び出すためのスキーマに準拠する要求メッセージを削除する必要があります。 たとえば、 Customer Interface 同時実行プログラムを呼び出す要求メッセージは次のとおりです。
<RACUST xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
<Description>Customer Interface Program</Description>
<StartTime></StartTime>
<CREATE_RECIPROCAL_CUSTOMER>Yes</CREATE_RECIPROCAL_CUSTOMER>
<ORG_ID>203</ORG_ID>
</RACUST>
Note
同時実行プログラムを呼び出すための要求メッセージには、SetOptions、SetPrintOptions、SetRepeatOptions などの省略可能なパラメーターが必要です。 ここで提供される要求メッセージには、これらの省略可能なパラメーターは含まれていません。 省略可能なパラメーターを含む完全な要求メッセージの詳細については、「 同時実行プログラムのメッセージ スキーマ」を参照してください。
オーケストレーションによってメッセージが使用され、Oracle E-Business Suite に渡され、応答が受信されます。 応答メッセージは、オーケストレーションの一部として指定された他のファイルの場所に保存されます。 Customer Interface 同時実行プログラムの応答は、次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<RACUSTResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
<RACUSTResult>2794708</RACUSTResult>
</RACUSTResponse>
Oracle E-Business Suite からの応答には、要求 ID が含まれています。 オーケストレーションは、応答メッセージから要求 ID を抽出し、 Get_Status 同時実行プログラムを呼び出すメッセージを作成し、それを Oracle E-Business Suite に渡して 、Get_Status 同時実行プログラムを実行します。 同時実行プログラムの応答Get_Status受信すると、最初の応答と同じファイルの場所にコピーされます。 Get_Status同時実行プログラムの応答は次のようになります。
<?xml version="1.0" encoding="utf-8" ?>
<GetStatusForConcurrentProgramResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
<GetStatusForConcurrentProgramResult>true</GetStatusForConcurrentProgramResult>
<Phase>Pending</Phase>
<Status>Standby</Status>
<DevPhase>PENDING</DevPhase>
<DevStatus>STANDBY</DevStatus>
<Message>null</Message>
</GetStatusForConcurrentProgramResponse>
ベスト プラクティス
BizTalk プロジェクトを展開して構成したら、構成設定をバインド ファイルと呼ばれる XML ファイルにエクスポートできます。 バインド ファイルを生成したら、ファイルから構成設定をインポートして、同じオーケストレーションの送信ポートや受信ポートなどの項目を作成する必要がないようにすることができます。 バインド ファイルの詳細については、「 Oracle E-Business Suite でアダプター バインドを再利用する」を参照してください。