Condividi tramite


Panoramica del modello di canale WCF con l'adapter Oracle E-Business Suite

Per richiamare le operazioni nell'adapter Microsoft BizTalk per Oracle E-Business Suite, il codice funge da client WCF e invia operazioni in uscita all'adapter. Nel modello di canale WCF il codice richiama le operazioni sull'adapter inviando un messaggio di richiesta su un canale.

Per richiamare operazioni in ingresso, ad esempio la ricezione di messaggi modificati sui dati basati sul polling usando l'operazione polling fornita dall'adapter, il codice funge da servizio WCF e riceve l'operazione in ingresso dall'adapter. In altre parole, il codice riceve un messaggio di richiesta dall'adapter tramite un canale.

Gli argomenti di questa sezione forniscono una panoramica dell'uso dell'adapter Oracle E-Business con il modello di canale WCF.

Panoramica del modello di canale WCF

I client e i servizi comunicano scambiando messaggi SOAP. Il modello di canale WCF è un'astrazione di basso livello di questo scambio di messaggi. Fornisce interfacce e tipi che consentono di inviare e ricevere messaggi usando uno stack di protocolli a livelli denominato stack di canali. Ogni livello dello stack è costituito da un canale e ogni canale viene creato da un'associazione WCF. Al livello più basso è il canale di trasporto. Il canale di trasporto implementa il meccanismo di trasporto sottostante tra un servizio e un client e presenta ogni messaggio ai livelli superiori (e infine l'applicazione che usa) come System.ServiceModel.Message. La classe WCF Message è un'astrazione di un messaggio SOAP. WCF offre diverse interfacce di canale, denominate forme di canale, che modellano i modelli di scambio di messaggi SOAP di base, ad esempio request-reply o one-way. Un'associazione di trasporto WCF fornisce un'implementazione di una o più forme di canale che possono essere usate da livelli superiori per inviare e ricevere messaggi. Per altre informazioni sul modello di canale WCF, vedere "Panoramica del modello di canale" in https://go.microsoft.com/fwlink/?LinkId=82614.

L'adapter Oracle E-Business è un'associazione di trasporto personalizzata WCF che espone un artefatto oracle E-Business Suite come servizio WCF.

Forme di canale supportate per l'adapter Oracle E-Business Suite

L'adapter implementa le forme del canale WCF seguenti:

  • IRequestChannel (System.ServiceModel.Channels.IRequestChannel). L'interfaccia IRequestChannel implementa il lato client di uno scambio di messaggi di risposta richiesta. È possibile usare un IRequestChannel per eseguire operazioni per cui si vuole usare una risposta, ad esempio per eseguire una query SELECT in una tabella di interfaccia.

  • IOutputChannel (System.ServiceModel.Channels.IOutputChannel). Questa forma implementa il lato client di uno scambio di messaggi unidirezionale. È possibile usare un IOutputChannel per richiamare un'operazione per cui non è necessario utilizzare una risposta, ad esempio per chiamare una routine senza parametri OUT.

    Importante

    Tutte le chiamate sottostanti dalla scheda al client Oracle sono sincrone. Ciò include chiamate al client Oracle che sono il risultato delle operazioni richiamate su un IOutputChannel. Quando si usa un IOutputChannel, l'adapter ignora la risposta ricevuta dal client Oracle.

  • IInputChannel (System.ServiceModel.Channels.IInputChannel). Questa forma implementa il lato servizio di uno scambio di messaggi unidirezionale. Si usa un IInputChannel per ricevere messaggi in ingresso dall'adapter.

    Analogamente a qualsiasi associazione WCF, l'adapter Oracle E-Business usa un modello di factory per fornire canali al codice dell'applicazione. Si usa un oggetto Microsoft.Adapters.OracleEBSBinding per creare istanze di:

  • System.ServiceModel.ChannelFactory<IRequestChannel per fornire canali IRequestChannel> che è possibile usare per richiamare operazioni di richiesta-risposta nella scheda.

  • System.ServiceModel.ChannelFactory<IOutputChannel per fornire canali IOutputChannel> che è possibile usare per richiamare operazioni unidirezionali sulla scheda.

  • System.ServiceModel.IChannelListener<IInputChannel per fornire canali IInputChannel> che è possibile usare per ricevere messaggi in ingresso dalla scheda.

Creazione di messaggi per la soluzione Oracle Enterprise Business nel modello di canale WCF

In WCF la classe System.ServiceModel.Channel.Message fornisce una rappresentazione in memoria di un messaggio SOAP. Si crea un'istanza di Message richiamando il metodo static Message.Create .

Esistono due parti importanti per il messaggio SOAP che è necessario specificare quando si crea un'istanza di messaggio da inviare all'adapter Oracle E-Business.

  • L'azione del messaggio è una stringa che fa parte dell'intestazione del messaggio SOAP. L'azione del messaggio identifica l'operazione che deve essere richiamata in Oracle E-Business Suite. Di seguito viene illustrata l'azione del messaggio specificata per richiamare il programma simultaneo dell'interfaccia cliente nell'applicazione Receivables in Oracle E-Business Suite: ConcurrentPrograms/AR/RACUST.

  • Il corpo del messaggio contiene i dati dei parametri per l'operazione. Il corpo del messaggio è costituito da XML ben formato che corrisponde allo schema del messaggio previsto dall'adapter Oracle E-Business per l'operazione richiesta. Il corpo del messaggio seguente specifica un messaggio di richiesta per richiamare il programma simultaneo dell'interfaccia cliente .

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

    Per informazioni sugli schemi e le azioni dei messaggi dell'adapter Oracle E-Business per le operazioni, vedere Messaggi e schemi di messaggi per l'adapter BizTalk per Oracle E-Business Suite.

    Il metodo Create viene sovraccaricato e offre molte opzioni diverse per fornire il corpo del messaggio. Il codice seguente illustra come creare un'istanza di messaggio usando un xmlReader per fornire il corpo del messaggio. In questo codice il corpo del messaggio viene letto da un file.

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

dove, ConProgRequest.xml contiene il messaggio di richiesta.

Importante

È necessario fornire un'azione di messaggio nell'istanza del messaggio. Questa operazione viene in genere eseguita quando viene creata l'istanza del messaggio .

Vedere anche

Sviluppare applicazioni Oracle E-Business Suite usando il modello di canale WCF