次の方法で共有


Oracle E-Business Suite アダプターを使用した WCF チャネル モデルの概要

Microsoft BizTalk Adapter for Oracle E-Business Suite で操作を呼び出すために、コードは WCF クライアントとして機能し、送信操作をアダプターに送信します。 WCF チャネル モデルでは、チャネル経由で要求メッセージを送信することで、コードによってアダプターに対する操作が呼び出されます。

アダプターによって提供される ポーリング 操作を使用してポーリング ベースのデータ変更メッセージを受信するなど、受信操作を呼び出すには、コードが WCF サービスとして機能し、アダプターから受信操作を受信します。 つまり、コードはチャネル経由でアダプターから要求メッセージを受信します。

このセクションのトピックでは、ORACLE E-Business アダプターと WCF チャネル モデルの使用の概要について説明します。

WCF チャネル モデルの概要

クライアントとサービスは、SOAP メッセージを交換して通信します。 WCF チャネル モデルは、このメッセージ交換の低レベルの抽象化です。 チャネル スタックと呼ばれる階層化されたプロトコル スタックを使用してメッセージを送受信できるようにするインターフェイスと型が提供されます。 スタックの各レイヤーはチャネルで構成され、各チャネルは WCF バインディングから作成されます。 最も低いレイヤーはトランスポート チャネルです。 トランスポート チャネルは、サービスとクライアントの間の基になるトランスポート メカニズムを実装し、各メッセージを上位のレイヤー (および最終的には使用するアプリケーション) に System.ServiceModel.Message として表示します。 WCF Message クラスは、SOAP メッセージの抽象化です。 WCF には、要求/応答や一方向などの基本的な SOAP メッセージ交換パターンをモデル化するチャネル 図形と呼ばれるいくつかのチャネル インターフェイスが用意されています。 WCF トランスポート バインドは、上位レイヤーがメッセージの送受信に使用できる 1 つ以上のチャネル図形の実装を提供します。 WCF チャネル モデルの詳細については、「チャネル モデルの概要」 https://go.microsoft.com/fwlink/?LinkId=82614を参照してください。

Oracle E-Business アダプターは、Oracle E-Business Suite 成果物を WCF サービスとして公開する WCF カスタム トランスポート バインディングです。

Oracle E-Business Suite アダプターでサポートされているチャネル図形

アダプターは、次の WCF チャネル図形を実装します。

  • IRequestChannel (System.ServiceModel.Channels.IRequestChannel)。 IRequestChannel インターフェイスは、要求/応答メッセージ交換のクライアント側を実装します。 IRequestChannel を使用して、応答を使用する操作 (インターフェイス テーブルに対して SELECT クエリを実行するなど) を実行できます。

  • IOutputChannel (System.ServiceModel.Channels.IOutputChannel)。 この図形は、一方向メッセージ交換のクライアント側を実装します。 IOutputChannel を使用して、応答を使用する必要のない操作を呼び出すことができます。たとえば、OUT パラメーターのないプロシージャを呼び出す場合などです。

    重要

    Oracle クライアントに対するアダプターによる基になる呼び出しはすべて同期です。 これには、 IOutputChannel を介して呼び出された操作の結果である Oracle クライアントへの呼び出しが含まれます。 IOutputChannel を使用すると、アダプターは Oracle クライアントから受信した応答を破棄します。

  • IInputChannel (System.ServiceModel.Channels.IInputChannel)。 この図形は、一方向メッセージ交換のサービス側を実装します。 IInputChannel を使用して、アダプターからの受信メッセージを受信します。

    WCF バインドと同様に、Oracle E-Business アダプターはファクトリ パターンを使用して、アプリケーション コードにチャネルを提供します。 Microsoft.Adapters.OracleEBSBinding オブジェクトを使用して、次のインスタンスを作成します。

  • System.ServiceModel.ChannelFactory<アダプターで要求/応答操作を呼び出すために使用できる IRequestChannel チャネルを提供する IRequestChannel>

  • System.ServiceModel.ChannelFactory<IOutputChannel> アダプターで一方向操作を呼び出すために使用できる IOutputChannel チャネルを提供します。

  • System.ServiceModel.IChannelListener<アダプターからの受信メッセージを受信するために使用できる IInputChannel チャネルを提供する IInputChannel>

WCF チャネル モデルでの Oracle Enterprise Business ソリューションのメッセージの作成

WCF では、 System.ServiceModel.Channels.Message クラスは、SOAP メッセージのメモリ内表現を提供します。 Message インスタンスを作成するには、静的な Message.Create メソッドを呼び出します。

SOAP メッセージには、Oracle E-Business アダプターに送信する メッセージ インスタンスを作成するときに指定する必要がある重要な部分が 2 つあります。

  • メッセージ アクションは、SOAP メッセージ ヘッダーの一部である文字列です。 メッセージ アクションは、Oracle E-Business Suite で呼び出す必要がある操作を識別します。 Oracle E-Business Suite の売掛金アプリケーションで Customer Interface 同時実行プログラムを呼び出すために指定されたメッセージ アクションを次に示します。 ConcurrentPrograms/AR/RACUST

  • メッセージ本文には、操作のパラメーター データが含まれています。 メッセージ本文は、要求された操作に対して Oracle E-Business アダプターによって予期されるメッセージ スキーマに対応する整形式の XML で構成されます。 次のメッセージ本文では、 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>
    
    

    操作に対する Oracle E-Business アダプターのメッセージ スキーマとメッセージ アクションの詳細については、「 BizTalk Adapter for Oracle E-Business Suite のメッセージとメッセージ スキーマ」を参照してください。

    Create メソッドはオーバーロードされ、メッセージ本文を提供するためのさまざまなオプションを提供します。 次のコードは、XmlReader を使用してメッセージ本文を指定して Message インスタンスを作成する方法を示しています。 このコードでは、メッセージ本文がファイルから読み取られます。

XmlReader readerIn = XmlReader.Create("ConcProgRequest.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default,
    "ConcurrentPrograms/AR/RACUST",
    readerIn);

ここで、ConProgRequest.xml には要求メッセージが含まれます。

重要

Message インスタンスにメッセージ アクションを指定する必要があります。 これは通常、 Message インスタンスの作成時に行われます。

参照

WCF チャネル モデルを使用して Oracle E-Business Suite アプリケーションを開発する