Condividi tramite


Richiamare programmi simultanei in Oracle E-Business Suite usando il modello di servizio WCF

Oracle E-Business Suite espone programmi simultanei che è possibile eseguire per eseguire operazioni specifiche sulle applicazioni Oracle. Ogni applicazione Oracle dispone di un set di programmi simultanei standard (uguali per tutte le operazioni) e di determinati programmi simultanei specifici di un'applicazione Oracle. L'adapter Oracle E-Business espone tutti i programmi simultanei come operazioni che i client dell'adattatore possono richiamare. Per altre informazioni sul modo in cui l'adattatore supporta programmi simultanei, vedere Operazioni sui programmi simultanei.

Nota

Per i programmi simultanei che non espongono i relativi metadati, l'adapter Oracle E-Business espone 100 parametri facoltativi per ognuno di questi programmi simultanei. Per richiamare correttamente questi programmi simultanei, l'utente deve consultare la documentazione di Oracle E-Business Suite per individuare i parametri per un programma simultaneo che richiede un valore e quindi specificarli. Un esempio di tale programma simultaneo è Journal Import (nome effettivo: GLLEZL) nell'applicazione General Ledger .

Informazioni sugli esempi usati in questo argomento

Nell'esempio riportato in questo argomento viene richiamato il MS_SAMPLE_COPY_EMP_DATA programma simultaneo, seguito dal Get_Status programma simultaneo per conoscere lo stato del primo programma simultaneo. Questi programmi simultanei vengono richiamati dall'applicazione Libreria oggetti applicazione. Il MS_SAMPLE_COPY_EMP_DATA viene creato eseguendo lo script fornito con gli esempi. Per altre informazioni sugli esempi, vedere Esempi per l'adapter Oracle EBS. Un esempio, ConcurrentProgram_ServiceModel, basato su questo argomento, viene fornito anche con gli esempi dell'adattatore Oracle E-Business.

Classe client WCF

Il nome del client WCF generato per richiamare i programmi simultanei dall'adapter Oracle E-Business è elencato nella tabella seguente.

Elemento Nome client WCF
Programma simultaneo ConcurrentPrograms_[APP_NAME]Client

[APP_NAME] = Nome effettivo dell'applicazione Oracle E-Business Suite; ad esempio FND.

Firma del metodo per richiamare programmi simultanei

Nella tabella seguente viene illustrata la firma del metodo per i programmi simultanei.

Operazione Firma del metodo
Programma simultaneo tipo restituito><pubblico <Concurrent_program_name>(param 1, param 2, ...)

Ad esempio, il codice seguente mostra le firme del metodo per una classe client WCF generata per il MS_SAMPLE_COPY_EMP_DATA e Get_Status programmi simultanei.

public partial class ConcurrentPrograms_FNDClient : System.ServiceModel.ClientBase<ConcurrentPrograms_FND>, ConcurrentPrograms_FND {      
  
    public string MS_SAMPLE_COPY_EMP_DATA(schemas.microsoft.com.OracleEBS._2008._05.Options.SetOptions SetOptions,  
      schemas.microsoft.com.OracleEBS._2008._05.Options.SetPrintOptions SetPrintOptions,  
      schemas.microsoft.com.OracleEBS._2008._05.Options.SetRepeatOptions SetRepeatOptions,  
      string Description, string StartTime);  
  
    public bool GetStatusForConcurrentProgram(string RequestId, out string Phase, out string Status,  
      out string DevPhase, out string DevStatus, out string Message);  
}  

In questo frammento di codice ConcurrentPrograms_FNDClient è il nome della classe WCF nel plug-in OracleEBSBindingClient.cs generato dal plug-in aggiungi riferimento al servizio adapter. MS_SAMPLE_COPY_EMP_DATA è il nome del metodo per richiamare il programma simultaneo. GetStatusForConcurrentProgram è il nome del metodo per richiamare il programma simultaneo per ottenere lo stato del primo programma simultaneo.

Nota

GetStatusForConcurrentProgram è il nome effettivo del Get_Status programma simultaneo.

Creazione di un client WCF per richiamare programmi simultanei

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 il MS_SAMPLE_COPY_EMP_DATA e Get_Status programmi simultanei.

Per creare un client WCF

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

  2. Generare la classe client WCF per i programmi MS_SAMPLE_COPY_EMP_DATA e Get_Status simultanei. 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. Aprire il file Program.cs e creare un client come descritto nel frammento di codice seguente.

    OracleEBSBinding binding = new OracleEBSBinding();  
    EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");  
    ConcurrentPrograms_FNDClient client = new ConcurrentPrograms_FNDClient(binding, address);  
    

    In questo frammento di ConcurrentPrograms_FNDClient 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. È anche 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 richiamano programmi simultanei in un'applicazione Oracle E-Business Suite, è 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 il MS_SAMPLE_COPY_EMP_DATA e Get_Status programmi simultanei.

    string RequestID;  
    bool Result;  
    string Phase;  
    string Status;  
    string DevPhase;  
    string DevStatus;  
    string Message;  
    
    try  
    {  
        Console.WriteLine("Invoking the MS_SAMPLE_COPY_EMP_DATA concurrent program");  
        RequestID = client.MS_SAMPLE_COPY_EMP_DATA(null, null, null, null, null);  
        Console.WriteLine("The request ID generated for the concurrent program is : " + RequestID);  
        Console.WriteLine("********************************************************");  
        Console.WriteLine("\nWaiting for 60 seconds for the concurrent program to be complete");  
        System.Threading.Thread.Sleep(60000);  
        Console.WriteLine("\nInvoking the Get_Status concurrent program");  
        Result = client.GetStatusForConcurrentProgram(RequestID, out Phase, out Status, out DevPhase, out DevStatus, out Message);  
        Console.WriteLine("\nResult is  : " + Result);  
        Console.WriteLine("Phase is     : " + Phase);  
        Console.WriteLine("Status is    : " + Status);  
        Console.WriteLine("DevPhase is  : " + DevPhase);  
        Console.WriteLine("DevStatus is : " + DevStatus);  
        Console.WriteLine("Message is   : " + Message);  
        Console.WriteLine("********************************************************");  
        Console.WriteLine("\nHit <RETURN> to end");  
        Console.ReadLine();  
    }  
    catch (Exception ex)  
    {  
        Console.WriteLine("Exception : " + ex);  
        throw;                 
    }  
    
  10. Chiudere il client come descritto nel frammento di codice seguente:

    client.Close();  
    
  11. Compilare il progetto ed eseguirlo. L'applicazione richiama il MS_SAMPLE_COPY_EMP_DATA e restituisce un ID richiesta. L'ID viene quindi passato al programma simultaneo Get_Status, che infine fornisce lo stato del programma della colonna MS_SAMPLE_COPY_EMP_DATA .

Vedere anche

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