Partager via


Appeler des programmes simultanés dans Oracle E-Business Suite à l’aide du modèle de service WCF

Oracle E-Business Suite expose des programmes simultanés que vous pouvez exécuter pour effectuer des opérations spécifiques sur les applications Oracle. Chaque application Oracle a un ensemble de programmes simultanés standard (qui sont identiques pour toutes les opérations) et certains programmes simultanés spécifiques à une application Oracle. L’adaptateur Oracle E-Business expose tous les programmes simultanés en tant qu’opérations que les clients de l’adaptateur peuvent appeler. Pour plus d’informations sur la façon dont l’adaptateur prend en charge les programmes simultanés, consultez Opérations sur les programmes simultanés.

Notes

Pour les programmes simultanés qui n’exposent pas leurs métadonnées, l’adaptateur Oracle E-Business expose 100 paramètres facultatifs pour chacun de ces programmes simultanés. Pour appeler correctement ces programmes simultanés, l’utilisateur doit consulter la documentation Oracle E-Business Suite pour déterminer les paramètres d’un programme simultané qui nécessite une valeur, puis les spécifier. L’importation de journaux (nom réel : GLLEZL) dans l’application Registre général est un exemple de programme simultané.

À propos des exemples utilisés dans cette rubrique

L’exemple de cette rubrique appelle le MS_SAMPLE_COPY_EMP_DATA programme simultané, suivi de l’Get_Status programme simultané pour connaître la status du premier programme simultané. Ces programmes simultanés sont appelés à partir de l’application Bibliothèque d’objets d’application . Le MS_SAMPLE_COPY_EMP_DATA est créé en exécutant le script fourni avec les exemples. Pour plus d’informations sur les exemples, consultez Exemples pour l’adaptateur Oracle EBS. Un exemple, ConcurrentProgram_ServiceModel, basé sur cette rubrique, est également fourni avec les exemples d’adaptateur Oracle E-Business.

Classe de client WCF

Le nom du client WCF généré pour appeler les programmes simultanés par l’adaptateur Oracle E-Business est répertorié dans le tableau suivant.

Artefact Nom du client WCF
Programme simultané ConcurrentPrograms_[APP_NAME]Client

[APP_NAME] = nom réel de l’application Oracle E-Business Suite ; par exemple, FND.

Signature de méthode pour appeler des programmes simultanés

Le tableau suivant montre la signature de méthode pour les programmes simultanés.

Opération Signature de méthode
Programme simultané public <return type><Concurrent_program_name>(param 1, param 2, ...)

Par exemple, le code suivant montre les signatures de méthode pour une classe cliente WCF générée pour les programmes MS_SAMPLE_COPY_EMP_DATA et Get_Status simultanés.

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

Dans cet extrait de code, ConcurrentPrograms_FNDClient est le nom de la classe WCF dans le fichier OracleEBSBindingClient.cs généré par le plug-in Add Adapter Reference Service. MS_SAMPLE_COPY_EMP_DATA est le nom de la méthode pour appeler le programme simultané. GetStatusForConcurrentProgram est le nom de la méthode permettant d’appeler le programme simultané pour obtenir la status du premier programme simultané.

Notes

GetStatusForConcurrentProgram est le nom réel du programme simultané Get_Status .

Création d’un client WCF pour appeler des programmes simultanés

L’ensemble générique d’actions requis pour effectuer une opération sur Oracle E-Business Suite à l’aide d’un client WCF implique un ensemble de tâches décrites dans Vue d’ensemble du modèle de service WCF avec l’adaptateur Oracle E-Business Suite. Cette section explique comment créer un client WCF pour appeler le MS_SAMPLE_COPY_EMP_DATA et Get_Status programmes simultanés.

Pour créer un client WCF

  1. Créez un projet Visual C# dans Visual Studio. Pour cette rubrique, créez une application console.

  2. Générez la classe de client WCF pour les programmes simultanés MS_SAMPLE_COPY_EMP_DATA et Get_Status . Pour plus d’informations sur la génération d’une classe de client WCF, consultez Générer un client WCF ou un contrat de service WCF pour les artefacts de solution Oracle E-Business Suite.

    Important

    Avant de générer la classe de client WCF, veillez à définir la propriété de liaison EnableBizTalkCompatibilityMode sur false.

  3. Dans le Explorateur de solutions, ajoutez une référence à Microsoft.Adapters.OracleEBS et Microsoft.ServiceModel.Channels.

  4. Ouvrez le fichier Program.cs et ajoutez les espaces de noms suivants :

    • Microsoft.Adapters.OracleEBS

    • System.ServiceModel

  5. Ouvrez le fichier Program.cs et créez un client comme décrit dans l’extrait de code ci-dessous.

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

    Dans cet extrait de code, ConcurrentPrograms_FNDClient est le client WCF défini dans OracleEBSBindingClient.cs. Ce fichier est généré par le plug-in Add Adapter Service Reference.

    Notes

    Dans cet extrait de code, vous spécifiez explicitement la liaison et l’adresse de point de terminaison dans le code de votre application. Vous pouvez également utiliser ces valeurs à partir du fichier de configuration de l’application, app.config, également généré par le plug-in Add Adapter Service Reference. Pour plus d’informations sur les différentes façons de spécifier la liaison de client, consultez Configurer une liaison cliente pour Oracle E-Business Suite.

  6. Définissez les informations d’identification du client.

    client.ClientCredentials.UserName.UserName = "myuser";  
    client.ClientCredentials.UserName.Password = "mypassword";  
    
  7. Étant donné que vous appelez des programmes simultanés dans une application Oracle E-Business Suite, vous devez définir le contexte de l’application. Dans cet exemple, pour définir le contexte de l’application, vous spécifiez les propriétés de liaison OracleUserName, OraclePassword et OracleEBSResponsibilityName . Pour plus d’informations sur le contexte de l’application, consultez Définir le contexte de l’application.

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  8. Ouvrez le client comme décrit dans l’extrait de code ci-dessous :

    try  
    {  
       Console.WriteLine("Opening Client...");  
       client.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    
  9. Appelez le MS_SAMPLE_COPY_EMP_DATA et Get_Status programmes simultanés.

    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. Fermez le client comme décrit dans l’extrait de code ci-dessous :

    client.Close();  
    
  11. Générez le projet, puis exécutez-le. L’application appelle le MS_SAMPLE_COPY_EMP_DATA et retourne un ID de demande. L’ID est ensuite passé à l’Get_Status programme simultané, qui fournit finalement la status du programme de colonne MS_SAMPLE_COPY_EMP_DATA.

Voir aussi

Développer des applications Oracle E-Business Suite à l’aide du modèle de service WCF