Condividi tramite


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

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

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

  3. Nella Esplora soluzioni aggiungere un riferimento a Microsoft.Adapters.OracleEBS e Microsoft.ServiceModel.Channels.

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

    • Microsoft.Adapters.OracleEBS

    • System.ServiceModel

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

  6. Impostare le credenziali per il client.

    client.ClientCredentials.UserName.UserName = "myuser";  
    client.ClientCredentials.UserName.Password = "mypassword";  
    
  7. 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";  
    
  8. 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;  
    }  
    
  9. 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();  
    
    
  10. Chiudere il client come descritto nel frammento di codice seguente:

    client.Close();  
    Console.WriteLine("Press any key to exit...");  
    Console.ReadLine();  
    
  11. 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