ExecuteReader-, ExecuteScalar- oder ExecuteNonQuery-Vorgänge in Oracle E-Business Suite unter Verwendung des WCF-Dienstmodells
Der Oracle E-Business-Adapter macht generische Vorgänge wie ExecuteNonQuery, ExecuteReader und ExecuteScalar verfügbar. Sie können diese Vorgänge verwenden, um jede Anweisung in Oracle E-Business Suite auszuführen. Diese Vorgänge unterscheiden sich je nach Art der Antwort, die Sie für die Anweisung erhalten. Weitere Informationen dazu, wie der Adapter diese Vorgänge unterstützt, finden Sie unter Unterstützung für ExecuteNonQuery, ExecuteReader und ExecuteScalar Operations.
In diesem Thema wird veranschaulicht, wie Sie einen ExecuteReader-Vorgang mithilfe des Oracle E-Business-Adapters mithilfe des WCF-Dienstmodells ausführen. Sie können dieselben Prozeduren befolgen, die in diesem Thema beschrieben sind, um ExecuteNonQuery - und ExecuteScalar-Vorgänge auszuführen.
Informationen zu den in diesem Thema verwendeten Beispielen
Das Beispiel in diesem Thema führt einen ExecuteReader-Vorgang aus, um einen SELECT-Vorgang für die MS_SAMPLE_EMPLOYEE Schnittstellentabelle auszuführen. 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. Ein Beispiel, ExecuteReader, das auf diesem Thema basiert, wird auch mit den Oracle E-Business-Adapterbeispielen bereitgestellt.
Die WCF-Clientklasse
Der Name des WCF-Clients, der für das Aufrufen generischer Vorgänge (ExecuteNonQuery, ExecuteReader oder ExecuteScalar) mithilfe des Oracle E-Business-Adapters generiert wurde, ist in der folgenden Tabelle aufgeführt.
Operations | WCF-Clientname |
---|---|
ExecuteNonQuery, ExecuteReader oder ExecuteScalar | GenericOperation_Client |
Methodensignatur zum Aufrufen generischer Vorgänge
Die folgende Tabelle zeigt die Signatur für die Methode, die verfügbar gemacht wird, um die generischen Vorgänge aufzurufen.
Vorgang | Methodensignatur |
---|---|
ExecuteNonQuery | int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors) |
ExecuteReader | System.Data.DataSet ExecuteReader(string Query) |
ExecuteScalar | string ExecuteScalar(string Query) |
Als Beispiel wird die Signatur für die generischen Vorgangsmethoden im folgenden Codeausschnitt gezeigt.
public partial class GenericOperation_Client : System.ServiceModel.ClientBase<GenericOperation_>, GenericOperation_ {
public int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors);
public System.Data.DataSet ExecuteReader(string Query);
public string ExecuteScalar(string Query);
}
In diesem Codeausschnitt
GenericOperation_Client
ist der Name der Klasse. Diese Klasse wird verwendet, um einen Client zum Aufrufen des generischen Vorgangs ExecuteReader zu erstellen.public System.Data.DataSet ExecuteReader(string Query)
ist die Methode, die Sie aufrufen, um eine SELECT-Anweisung für die MS_SAMPLE_EMPLOYEE-Schnittstellentabelle auszuführen.
Erstellen eines WCF-Clients zum Aufrufen eines ExecuteReader-Vorgangs
Der generische Aktionssatz, der zum Ausführen eines Vorgangs in Oracle E-Business Suite mithilfe eines WCF-Clients erforderlich ist, umfasst eine Reihe von Aufgaben, die unter Übersicht über das WCF-Dienstmodell mit dem Oracle E-Business Suite-Adapter beschrieben werden. In diesem Abschnitt wird beschrieben, wie Sie einen WCF-Client erstellen, um den ExecuteReader-Vorgang aufzurufen.
So erstellen Sie einen WCF-Client zum Aufrufen des ExecuteReader-Vorgangs
Erstellen Sie ein Visual C#-Projekt in Visual Studio. Erstellen Sie für dieses Thema eine Konsolenanwendung.
Generieren Sie die WCF-Clientklasse für den generischen ExecuteReader-Vorgang . Dieser Vorgang ist unter dem Stammknoten verfügbar, wenn Sie mithilfe des Add Adapter Service Reference Plug-Ins eine Verbindung mit der Oracle E-Business Suite herstellen. Weitere Informationen zum Generieren einer WCF-Clientklasse finden Sie unter Generieren eines WCF-Clients oder eines WCF-Dienstvertrags für Oracle E-Business Suite-Lösungsartefakte.
Wichtig
Stellen Sie vor dem Generieren der WCF-Clientklasse sicher, dass Sie die EnableBizTalkCompatibilityMode-Bindungseigenschaft auf false festlegen.
Fügen Sie im Projektmappen-Explorer verweis auf und
Microsoft.ServiceModel.Channels
hinzuMicrosoft.Adapters.OracleEBS
.Öffnen Sie die Datei Program.cs, und fügen Sie die folgenden Namespaces hinzu:
Microsoft.Adapters.OracleEBS
System.ServiceModel
Erstellen Sie in der Datei Program.cs einen Client, wie im folgenden Codeausschnitt beschrieben.
OracleEBSBinding binding = new OracleEBSBinding(); EndpointAddress address = new EndpointAddress("oracleebs://ebs-72-11"); GenericOperation_Client client = new GenericOperation_Client(binding, address);
In diesem Codeausschnitt ist der WCF-Client,
GenericOperation_Client
der in OracleEBSBindingClient.cs definiert ist. Diese Datei wird vom Add Adapter Service Reference Plug-In generiert.Hinweis
In diesem Codeausschnitt geben Sie explizit die Bindungs- und Endpunktadresse im Anwendungscode an. Sie können diese Werte aus der Anwendungskonfigurationsdatei verwenden, app.config, die ebenfalls vom Add Adapter Service Reference Plug-In generiert wird. Weitere Informationen zu den verschiedenen Möglichkeiten zum Angeben der Clientbindung finden Sie unter Konfigurieren einer Clientbindung für die Oracle E-Business Suite.
Legen Sie die Anmeldeinformationen für den Client fest.
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
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";
Öffnen Sie den Client wie im folgenden Codeausschnitt beschrieben:
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
Rufen Sie den ExecuteReader-Vorgang zum Ausführen des SELECT-Vorgangs für MS_SAMPLE_EMPLOYEE Tabelle auf. Bevor Sie den ExecuteReader-Vorgang aufrufen, müssen Sie dem Code den
System.Data
Namespace hinzufügen.string query = "SELECT * FROM MS_SAMPLE_EMPLOYEE"; DataSet ds = client.ExecuteReader(query); Console.WriteLine("Invoking the SELECT statement using ExecuteReader"); Console.WriteLine("*****************************************************"); foreach (DataTable tab in ds.Tables) { foreach (DataRow row in tab.Rows) { Console.WriteLine("The details of the employee are: "); for (int i = 0; i < tab.Columns.Count; i++) { Console.WriteLine(row[i]); } Console.WriteLine(); } } Console.WriteLine("*****************************************************"); Console.ReadLine();
Schließen Sie den Client wie im folgenden Codeausschnitt beschrieben:
client.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadLine();
Erstellen Sie das Projekt, und führen Sie es dann aus. Alle Datensätze in der tabelle MS_SAMPLE_EMPLOYEE werden in der Konsole angezeigt.
Weitere Informationen
Entwickeln von Oracle E-Business Suite-Anwendungen mithilfe des WCF-Dienstmodells