Freigeben über


Ausführen eines Einfügevorgangs für eine Schnittstellentabelle in Oracle E-Business Suite mithilfe des WCF-Kanalmodells

Der Oracle E-Business-Adapter ermittelt eine Reihe von Insert-, Select-, Update- und Delete-Vorgängen in Oracle E-Business Suite-Schnittstellentabellen. Mithilfe dieser Vorgänge können Sie einfache Insert-, Select-, Update- und Delete-Anweisungen ausführen, die durch eine Where-Klausel für eine Zielschnittstellentabelle qualifiziert sind. Dieses Thema enthält Anweisungen zum Ausführen eines Einfügevorgangs für eine Schnittstellentabelle mithilfe des WCF-Kanalmodells.

Weitere Informationen dazu, wie der Adapter diese Vorgänge unterstützt, finden Sie unter Vorgänge für Schnittstellentabellen und Schnittstellensichten. Weitere Informationen zum Ausführen von Vorgängen in Oracle E-Business Suite mithilfe des WCF-Kanalmodells finden Sie unter Übersicht über das WCF-Kanalmodell mit dem Oracle E-Business Suite-Adapter.

Informationen zu den in diesem Thema verwendeten Beispielen

Im Beispiel in diesem Thema werden Vorgänge für die MS_SAMPLE_EMPLOYEE-Schnittstellentabelle ausgeführt. Die Tabelle wird erstellt, indem das mit den Beispielen bereitgestellte Skript ausgeführt wird. Weitere Informationen zu Beispielen finden Sie unter Beispiele für den Oracle EBS-Adapter. Das Beispiel InsertOperation, das auf diesem Thema basiert, wird auch mit den Oracle E-Business-Adapterbeispielen bereitgestellt.

Die Einfügenachricht

Um Vorgänge in der Oracle E-Business Suite mithilfe des WCF-Kanalmodells auszuführen, müssen Sie über die für den Vorgang spezifische Anforderungsnachricht verfügen. Die Anforderungsmeldung zum Ausführen eines Insert-Vorgangs für die MS_SAMPLE_EMPLOYEE-Schnittstellentabelle sieht wie folgt aus:

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

Diese Anforderungsnachricht fügt einen Datensatz mit den folgenden Details ein:

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

Sie müssen die Nachricht in eine Datei kopieren, z. B. InsertRequest.xml. Diese Datei wird in diesem Beispiel verwendet, um die Anforderungsnachricht mithilfe des Oracle E-Business-Adapters an Oracle E-Business Suite zu senden. Weitere Informationen zum Nachrichtenschema für Vorgänge in der Tabelle finden Sie unter Nachrichtenschemas für Insert-, Update-, Delete- und Select-Vorgänge.

Erstellen einer WCF-Kanalanwendung

Dieser Abschnitt enthält Anweisungen zum Erstellen einer WCF-Kanalanwendung zum Ausführen eines Einfügevorgangs für die MS_SAMPLE_EMPLOYEE-Schnittstellentabelle.

So erstellen Sie eine WCF-Kanalanwendung zum Einfügen von Datensätzen in die Tabelle

  1. Erstellen Sie ein Visual C#-Projekt in Visual Studio. Erstellen Sie für dieses Thema eine Konsolenanwendung.

  2. Fügen Sie im Projektmappen-Explorer Verweis auf Microsoft.Adapters.OracleEBS, Microsoft.ServiceModel.Channels, System.ServiceModelund System.Runtime.Serializationhinzu.

  3. Öffnen Sie die Datei Program.cs, und fügen Sie die folgenden Namespaces hinzu:

    • Microsoft.Adapters.OracleEBS

    • Microsoft.ServiceModel.Channels

    • System.ServiceModel

    • System.ServiceModel.Channels

    • System.Xml

  4. Erstellen Sie die Bindung und den Endpunkt.

    OracleEBSBinding binding = new OracleEBSBinding();  
    EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");  
    
    
  5. Da Sie einen Vorgang für eine Schnittstellentabelle ausführen, müssen Sie den Anwendungskontext festlegen. In diesem Beispiel geben Sie zum Festlegen des Anwendungskontexts die Bindungseigenschaften OracleUserName, OraclePassword und OracleEBSResponsibilityName an. Weitere Informationen zum Anwendungskontext finden Sie unter Festlegen des Anwendungskontexts.

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  6. Erstellen und öffnen Sie die Kanalfactory. Diese Anwendung sendet eine Anforderungsnachricht an Oracle E-Business Suite und empfängt eine Antwort. Daher müssen Sie die IRequestChannel-Schnittstelle implementieren.

    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. Erstellen und öffnen Sie den Kanal.

    IRequestChannel channel;  
    try  
    {  
       channel = factory.CreateChannel();  
       channel.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception :" + ex.Message);  
       throw;  
    }  
    
  8. Erstellen und senden Sie die Anforderungsnachricht.

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

    Beim Erstellen der Anforderungsnachricht müssen Sie die Meldungsaktion angeben, die die Aktion angibt, die der Adapter für die Schnittstellentabelle ausführt. Um einen Einfügevorgang für die MS_SAMPLE_EMPLOYEE Tabelle auszuführen, lautet InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEEdie Meldungsaktion . Informationen dazu, wie Sie die Nachrichtenaktion für verschiedene Vorgänge in Tabellen bestimmen können, finden Sie unter Nachrichtenschemas für Insert-, Update-, Delete- und Select-Vorgänge.

  9. Rufen Sie die Antwortnachricht ab.

    XmlReader readerOut = messageOut.GetReaderAtBodyContents();  
    XmlDocument doc = new XmlDocument();  
    doc.Load(readerOut);  
    doc.Save("C:\\Response.xml");  
    
  10. Schließen Sie die Nachrichten-, Kanal- und Kanalfactory.

    messageOut.Close();  
    channel.Close();  
    factory.Close();  
    
  11. Erstellen Sie das Projekt. Nachdem Sie das Projekt erstellt haben, müssen Sie die Anforderungsnachricht InsertRequest.xml am selben Speicherort wie die ausführbare Projektdatei kopieren. In der Regel ist dieser Speicherort \bin\Debug\ in Ihrem Projektverzeichnis.

  12. Führen Sie die Anwendung aus. Die Antwortnachricht Response.xml wird an dem Speicherort gespeichert, den Sie in der Anwendung angegeben haben. Die Antwortnachricht enthält die Anzahl der eingefügten Datensätze und sieht wie folgt aus:

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

    Der Wert "1" gibt an, dass ein einzelner Datensatz in die MS_SAMPLE_EMPLOYEE Tabelle eingefügt wird.

Weitere Informationen

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