Operazioni ExecuteReader, ExecuteScalar o ExecuteNonQuery in Oracle E-Business Suite usando il modello di servizio WCF
L'adapter Oracle E-Business espone operazioni generiche come ExecuteNonQuery, ExecuteReader e ExecuteScalar. È possibile usare queste operazioni per eseguire qualsiasi istruzione in Oracle E-Business Suite. Queste operazioni differiscono in base al tipo di risposta che si ottiene per l'istruzione . Per altre informazioni su come l'adattatore supporta queste operazioni, vedere Supporto per le operazioni ExecuteNonQuery, ExecuteReader e ExecuteScalar.
In questo argomento viene illustrato come eseguire un'operazione ExecuteReader usando l'adapter Oracle E-Business usando il modello di servizio WCF. È possibile seguire lo stesso set di procedure descritte in questo argomento per eseguire operazioni ExecuteNonQuery e ExecuteScalar .
Informazioni sugli esempi usati in questo argomento
Nell'esempio riportato in questo argomento viene eseguita un'operazione ExecuteReader per eseguire un'operazione SELECT 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 , ExecuteReader, basato su questo argomento, viene fornito anche con gli esempi di adapter Oracle E-Business.
Classe client WCF
Il nome del client WCF generato per richiamare operazioni generica (ExecuteNonQuery, ExecuteReader o ExecuteScalar) tramite l'adapter Oracle E-Business è elencato nella tabella seguente.
Gestione operativa | Nome client WCF |
---|---|
ExecuteNonQuery, ExecuteReader o ExecuteScalar | GenericOperation_Client |
Firma del metodo per richiamare operazioni generico
Nella tabella seguente viene illustrata la firma per il metodo esposto per richiamare le operazioni generica.
Operazione | Firma del metodo |
---|---|
ExecuteNonQuery | int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors) |
ExecuteReader | System.Data.DataSet ExecuteReader(string Query) |
ExecuteScalar | string ExecuteScalar(string Query) |
Ad esempio, la firma per i metodi di operazione generici è illustrata nel frammento di codice seguente.
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 questo frammento di codice,
GenericOperation_Client
è il nome della classe . Questa classe viene usata per creare un client per richiamare l'operazione generica ExecuteReader.public System.Data.DataSet ExecuteReader(string Query)
è il metodo richiamato per eseguire un'istruzione SELECT nella tabella dell'interfaccia MS_SAMPLE_EMPLOYEE.
Creazione di un client WCF per richiamare un'operazione ExecuteReader
Il set generico di azioni necessarie per eseguire un'operazione su Oracle E-Business Suite tramite un client WCF prevede un set di attività descritte in Panoramica del modello di servizio WCF con l'adapter Oracle E-Business Suite. Questa sezione descrive come creare un client WCF per richiamare l'operazione ExecuteReader .
Per creare un client WCF per richiamare l'operazione ExecuteReader
Creare un progetto Visual C# in Visual Studio. Per questo argomento, creare un'applicazione console.
Generare la classe client WCF per l'operazione generica ExecuteReader . Questa operazione è disponibile nel nodo radice quando ci si connette a Oracle E-Business Suite usando il plug-in Aggiungi riferimento al servizio adapter. Per altre informazioni sulla generazione di una classe client WCF, vedere Generare un client WCF o un contratto di servizio WCF per gli artefatti della soluzione Oracle E-Business Suite.
Importante
Prima di generare la classe client WCF, assicurarsi di impostare la proprietà di associazione EnableBizTalkCompatibilityMode su false.
Nella Esplora soluzioni aggiungere un riferimento a
Microsoft.Adapters.OracleEBS
eMicrosoft.ServiceModel.Channels
.Aprire il file Program.cs e aggiungere gli spazi dei nomi seguenti:
Microsoft.Adapters.OracleEBS
System.ServiceModel
Nel file Program.cs creare un client come descritto nel frammento di codice seguente.
OracleEBSBinding binding = new OracleEBSBinding(); EndpointAddress address = new EndpointAddress("oracleebs://ebs-72-11"); GenericOperation_Client client = new GenericOperation_Client(binding, address);
In questo frammento di
GenericOperation_Client
codice è il client WCF definito in OracleEBSBindingClient.cs. Questo file viene generato dal plug-in Aggiungi riferimento al servizio adapter.Nota
In questo frammento di codice si specifica in modo esplicito l'associazione e l'indirizzo dell'endpoint nel codice dell'applicazione. È possibile usare questi valori dal file di configurazione dell'applicazione, app.config, generati anche dal plug-in aggiungi riferimento al servizio adapter. Per altre informazioni sui diversi modi per specificare l'associazione client, vedere Configurare un'associazione client per Oracle E-Business Suite.
Impostare le credenziali per il client.
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
Poiché si esegue un'operazione su 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";
Aprire il client come descritto nel frammento di codice seguente:
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
Richiamare l'operazione ExecuteReader per eseguire l'operazione SELECT nella tabella MS_SAMPLE_EMPLOYEE. Prima di richiamare l'operazione ExecuteReader, è necessario aggiungere lo spazio dei
System.Data
nomi al codice.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();
Chiudere il client come descritto nel frammento di codice seguente:
client.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadLine();
Compilare il progetto ed eseguirlo. Tutti i record nella tabella MS_SAMPLE_EMPLOYEE vengono visualizzati nella console.
Vedere anche
Sviluppare applicazioni Oracle E-Business Suite usando il modello di servizio WCF