Condividi tramite


Eseguire un'operazione di inserimento in una tabella di interfaccia in Oracle E-Business Suite usando il modello di canale WCF

L'adapter Oracle E-Business individua un set di operazioni Di inserimento, selezione, aggiornamento ed eliminazione nelle tabelle dell'interfaccia oracle E-Business Suite. Usando queste operazioni, è possibile eseguire semplici istruzioni Insert, Select, Update ed Delete qualificate da una clausola Where in una tabella dell'interfaccia di destinazione. In questo argomento vengono fornite istruzioni su come eseguire un'operazione di inserimento in una tabella di interfaccia usando il modello di canale WCF.

Per altre informazioni su come la scheda supporta queste operazioni, vedere Operazioni su tabelle di interfaccia e viste dell'interfaccia. Per altre informazioni su come eseguire operazioni in Oracle E-Business Suite usando il modello di canale WCF, vedere Panoramica del modello di canale WCF con l'adapter Oracle E-Business Suite.

Informazioni sugli esempi usati in questo argomento

L'esempio in questo argomento esegue operazioni sulla tabella dell'interfaccia MS_SAMPLE_EMPLOYEE. La tabella viene creata eseguendo lo script fornito con gli esempi. Per altre informazioni sugli esempi, vedere Esempi per l'adapter Oracle EBS. Un esempio , InsertOperation, basato su questo argomento, viene fornito anche con gli esempi di adapter Oracle E-Business.

Messaggio di inserimento

Per eseguire operazioni su Oracle E-Business Suite usando il modello di canale WCF, è necessario disporre del messaggio di richiesta specifico per l'operazione. Il messaggio di richiesta per eseguire un'operazione di inserimento nella tabella dell'interfaccia MS_SAMPLE_EMPLOYEE è simile alla seguente:

<Insert xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">  
  <RECORDSET>  
    <InsertRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE">  
      <EMP_NO>10050</EMP_NO>  
      <NAME>John Smith</NAME>  
      <DESIGNATION>Manager</DESIGNATION>  
      <SALARY>500000</SALARY>  
      <JOIN_DATE>1999-05-31</JOIN_DATE>  
    </InsertRecord>  
  </RECORDSET>  
</Insert>  

Questo messaggio di richiesta inserisce un record con i dettagli seguenti:

Employee Number = 10050  
Name = Tom Smith  
Designation = Manager  
Salary = 500000  

È necessario copiare il messaggio in un file, ad esempio InsertRequest.xml. Questo file viene usato in questo esempio per inviare il messaggio di richiesta a Oracle E-Business Suite usando l'adapter Oracle E-Business. Per altre informazioni sullo schema dei messaggi per le operazioni sulla tabella, vedere Schemi dei messaggi per Inserimento, Aggiornamento, Eliminazione e Selezione operazioni.

Creazione di un'applicazione canale WCF

Questa sezione fornisce istruzioni su come creare un'applicazione canale WCF per eseguire un'operazione di inserimento nella tabella dell'interfaccia MS_SAMPLE_EMPLOYEE.

Per creare un'applicazione canale WCF per l'inserimento di record nella tabella

  1. Creare un progetto Visual C# in Visual Studio. Per questo argomento, creare un'applicazione console.

  2. Nella Esplora soluzioni aggiungere riferimento a Microsoft.Adapters.OracleEBS, Microsoft.ServiceModel.Channels, System.ServiceModele System.Runtime.Serialization.

  3. Aprire il file Program.cs e aggiungere gli spazi dei nomi seguenti:

    • Microsoft.Adapters.OracleEBS

    • Microsoft.ServiceModel.Channels

    • System.ServiceModel

    • System.ServiceModel.Channels

    • System.Xml

  4. Creare l'associazione e l'endpoint.

    OracleEBSBinding binding = new OracleEBSBinding();  
    EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");  
    
    
  5. Poiché si esegue un'operazione in una tabella di interfaccia, è necessario impostare il contesto dell'applicazione. In questo esempio, per impostare il contesto dell'applicazione, specificare le proprietà di associazione OracleUserName, OraclePassword e OracleEBSResponsibilityName . Per altre informazioni sul contesto dell'applicazione, vedere Impostare il contesto dell'applicazione.

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  6. Creare e aprire la channel factory. Questa applicazione invia un messaggio di richiesta a Oracle E-Business Suite e riceve una risposta, pertanto è necessario implementare l'interfaccia IRequestChannel.

    ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);  
    factory.Credentials.UserName.UserName = "<Enter user name here>";  
    factory.Credentials.UserName.Password = "<Enter password here>";  
    factory.Open();  
    
  7. Creare e aprire il canale.

    IRequestChannel channel;  
    try  
    {  
       channel = factory.CreateChannel();  
       channel.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception :" + ex.Message);  
       throw;  
    }  
    
  8. Creare e inviare il messaggio di richiesta.

    XmlReader readerIn;  
    try  
    {  
       readerIn = XmlReader.Create("InsertRequest.xml");  
       Console.WriteLine("Reader created");  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    Message messageIn;  
    Message messageOut;  
    try  
    {  
       messageIn = Message.CreateMessage(MessageVersion.Default, "InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE", readerIn);  
       messageOut = channel.Request(messageIn);  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    
    

    Durante la creazione del messaggio di richiesta, è necessario specificare l'azione del messaggio che indica l'azione eseguita dall'adapter nella tabella dell'interfaccia. Per eseguire un'operazione Di inserimento nella tabella MS_SAMPLE_EMPLOYEE, l'azione del messaggio è InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE. Per informazioni su come determinare l'azione del messaggio per varie operazioni sulle tabelle, vedere Schemi messaggi per Inserimento, Aggiornamento, Eliminazione e Selezione operazioni.

  9. Ottenere il messaggio di risposta.

    XmlReader readerOut = messageOut.GetReaderAtBodyContents();  
    XmlDocument doc = new XmlDocument();  
    doc.Load(readerOut);  
    doc.Save("C:\\Response.xml");  
    
  10. Chiudere il messaggio, il canale e la channel factory.

    messageOut.Close();  
    channel.Close();  
    factory.Close();  
    
  11. Compilare il progetto. Dopo aver compilato il progetto, è necessario copiare il messaggio di richiesta, InsertRequest.xml, nello stesso percorso dell'eseguibile del progetto. In genere, questo percorso è \bin\Debug\ nella directory del progetto.

  12. Eseguire l'applicazione. Il messaggio di risposta, Response.xml, viene salvato nel percorso specificato nell'applicazione. Il messaggio di risposta contiene il numero o i record inseriti e è simile al seguente:

    <InsertResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">  
      <InsertResult>1</InsertResult>  
    </InsertResponse>  
    

    Il valore "1" indica che un singolo record viene inserito nella tabella MS_SAMPLE_EMPLOYEE.

Vedere anche

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