Freigeben über


Übersicht über das WCF-Kanalmodell mit dem Oracle E-Business Suite-Adapter

Um Vorgänge für den Microsoft BizTalk-Adapter für Oracle E-Business Suite aufzurufen, fungiert Ihr Code als WCF-Client und sendet ausgehende Vorgänge an den Adapter. Im WCF-Kanalmodell ruft Ihr Code Vorgänge für den Adapter auf, indem eine Anforderungsnachricht über einen Kanal gesendet wird.

Um eingehende Vorgänge aufzurufen, z. B. das Empfangen von abrufbasierten datenveränderten Nachrichten mithilfe des vom Adapter bereitgestellten Abfragevorgangs , fungiert Ihr Code als WCF-Dienst und empfängt den eingehenden Vorgang vom Adapter. Anders ausgedrückt: Ihr Code empfängt eine Anforderungsnachricht vom Adapter über einen Kanal.

Die Themen in diesem Abschnitt bieten eine Übersicht über die Verwendung des Oracle E-Business-Adapters mit dem WCF-Kanalmodell.

Übersicht über das WCF-Kanalmodell

Clients und Dienste kommunizieren durch den Austausch von SOAP-Nachrichten. Das WCF-Kanalmodell ist eine Abstraktion dieses Nachrichtenaustauschs auf niedriger Ebene. Es bietet Schnittstellen und Typen, mit denen Sie Nachrichten mithilfe eines mehrschichtigen Protokollstapels namens Kanalstapel senden und empfangen können. Jede Schicht des Stapels besteht aus einem Kanal, und jeder Kanal wird aus einer WCF-Bindung erstellt. Auf der niedrigsten Ebene befindet sich der Transportkanal. Der Transportkanal implementiert den zugrunde liegenden Transportmechanismus zwischen einem Dienst und einem Client und stellt jede Nachricht den höheren Ebenen (und letztendlich der verbrauchenden Anwendung) als System.ServiceModel.Message dar. Die WCF Message-Klasse ist eine Abstraktion einer SOAP-Nachricht. WCF stellt mehrere Kanalschnittstellen bereit, die als Kanalformen bezeichnet werden und die die grundlegenden SOAP-Nachrichtenaustauschmuster modellieren, z. B. Anforderungsantwort oder Unidirektionale. Eine WCF-Transportbindung stellt eine Implementierung von mindestens einer Kanalform bereit, die höhere Ebenen zum Senden und Empfangen von Nachrichten verwenden können. Weitere Informationen zum WCF-Kanalmodell finden Sie unter "Übersicht über das Kanalmodell" unter https://go.microsoft.com/fwlink/?LinkId=82614.

Der Oracle E-Business-Adapter ist eine benutzerdefinierte WCF-Transportbindung, die ein Oracle E-Business Suite-Artefakt als WCF-Dienst verfügbar macht.

Unterstützte Kanalformen für den Oracle E-Business Suite-Adapter

Der Adapter implementiert die folgenden WCF-Kanalformen:

  • IRequestChannel (System.ServiceModel.Channels.IRequestChannel). Die IRequestChannel-Schnittstelle implementiert die Clientseite eines Nachrichtenaustauschs zwischen Anforderung und Antwort. Sie können einen IRequestChannel verwenden, um Vorgänge auszuführen, für die Sie eine Antwort nutzen möchten, z. B. zum Ausführen einer SELECT-Abfrage für eine Schnittstellentabelle.

  • IOutputChannel (System.ServiceModel.Channels.IOutputChannel). Dieses Shape implementiert die Clientseite eines unidirektionalen Nachrichtenaustauschs. Sie können einen IOutputChannel verwenden, um einen Vorgang aufzurufen, für den Sie keine Antwort verwenden müssen, z. B. um eine Prozedur ohne OUT-Parameter aufzurufen.

    Wichtig

    Alle zugrunde liegenden Aufrufe des Adapters für den Oracle-Client sind synchron. Dies umfasst Aufrufe des Oracle-Clients, die das Ergebnis von Vorgängen sind, die über einen IOutputChannel aufgerufen werden. Wenn Sie einen IOutputChannel verwenden, verwirft der Adapter die vom Oracle-Client empfangene Antwort.

  • IInputChannel (System.ServiceModel.Channels.IInputChannel). Dieses Shape implementiert die Dienstseite eines unidirektionalen Nachrichtenaustauschs. Sie verwenden einen IInputChannel , um eingehende Nachrichten vom Adapter zu empfangen.

    Wie jede WCF-Bindung verwendet auch der Oracle E-Business-Adapter ein Factorymuster, um Kanäle für Anwendungscode bereitzustellen. Sie verwenden ein Microsoft.Adapters.OracleEBSBinding-Objekt , um Instanzen von zu erstellen:

  • System.ServiceModel.ChannelFactory<IRequestChannel> zum Bereitstellen von IRequestChannel-Kanälen , die Sie zum Aufrufen von Anforderungsantwortvorgängen auf dem Adapter verwenden können.

  • System.ServiceModel.ChannelFactory<IOutputChannel> zum Bereitstellen von IOutputChannel-Kanälen , mit denen Sie unidirektionale Vorgänge für den Adapter aufrufen können.

  • System.ServiceModel.IChannelListener<IInputChannel> zum Bereitstellen von IInputChannel-Kanälen , mit denen Sie eingehende Nachrichten vom Adapter empfangen können.

Erstellen von Nachrichten für die Oracle Enterprise Business Solution im WCF-Kanalmodell

In WCF stellt die System.ServiceModel.Channels.Message-Klasse eine Im-Arbeitsspeicher-Darstellung einer SOAP-Nachricht bereit. Sie erstellen eine Nachricht instance, indem Sie die statische Message.Create-Methode aufrufen.

Es gibt zwei wichtige Teile der SOAP-Nachricht, die Sie angeben müssen, wenn Sie eine Nachricht erstellen, instance an den Oracle E-Business-Adapter gesendet werden soll.

  • Die Nachrichtenaktion ist eine Zeichenfolge, die Teil des SOAP-Nachrichtenheaders ist. Die Nachrichtenaktion identifiziert den Vorgang, der für Oracle E-Business Suite aufgerufen werden soll. Im Folgenden wird die Meldungsaktion veranschaulicht, die angegeben ist, um das gleichzeitige Programm Customer Interface unter der Debitorenanwendung in Oracle E-Business Suite aufzurufen: ConcurrentPrograms/AR/RACUST.

  • Der Nachrichtentext enthält die Parameterdaten für den Vorgang. Der Nachrichtentext besteht aus wohlgeformten XML-Daten, die dem Vom Oracle E-Business-Adapter für den angeforderten Vorgang erwarteten Nachrichtenschema entsprechen. Der folgende Nachrichtentext gibt eine Anforderungsnachricht an, um das gleichzeitige Programm "Customer Interface " aufzurufen.

    <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>
    
    

    Informationen zu den Nachrichtenschemas und Nachrichtenaktionen für Vorgänge des Oracle E-Business-Adapters finden Sie unter Nachrichten und Nachrichtenschemas für BizTalk-Adapter für Oracle E-Business Suite.

    Die Create-Methode ist überladen und bietet viele verschiedene Optionen zum Bereitstellen des Nachrichtentexts. Der folgende Code zeigt, wie Sie eine Nachricht instance erstellen, indem Sie einen XmlReader verwenden, um den Nachrichtentext anzugeben. In diesem Code wird der Nachrichtentext aus einer Datei gelesen.

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

wobei ConProgRequest.xml die Anforderungsnachricht enthält.

Wichtig

Sie müssen eine Nachrichtenaktion in Ihrer Nachricht instance bereitstellen. Dies geschieht in der Regel, wenn die nachricht instance erstellt wird.

Weitere Informationen

Entwickeln von Oracle E-Business Suite-Anwendungen mithilfe des WCF-Kanalmodells