Partager via


Exécuter des opérations sur les composants métier avec l’adaptateur Siebel à l’aide du modèle de service WCF

Vous pouvez créer un client WCF qui cible un composant métier Siebel. Vous pouvez ensuite utiliser le client WCF pour effectuer des opérations d’insertion, de mise à jour, de requête, de suppression, d’association, de dissociation et de requête d’enregistrement enfant sur le composant métier sur le système Siebel. Les objets métier Siebel sont exposés sous le nœud Objets métiers dans le plug-in Visual Studio Add Adapter Service Reference. Les composants métier qui composent chaque objet métier sont exposés sous le nœud correspondant à cet objet. Vous pouvez suivre les étapes décrites dans Vue d’ensemble du modèle de service WCF avec l’adaptateur Siebel pour générer un client WCF pour un composant métier qui cible des opérations spécifiques et utiliser le client pour appeler ces opérations sur le composant métier.

Notes

Cette rubrique fournit des informations sur l’exécution d’opérations de base (Insertion, Mise à jour, Requête, Suppression) sur les composants métier. Pour plus d’informations sur l’exécution d’opérations d’association, de dissociation et de requête d’enregistrement enfant, consultez Exécuter des opérations sur des composants métier avec des champs MVG à l’aide du modèle de service WCF

Le code suivant utilise un client WCF pour effectuer des opérations d’insertion, de mise à jour et de suppression sur un enregistrement dans le composant métier Account de l’objet métier Account. Entre chaque opération, une opération de requête est effectuée pour vérifier les résultats. Le client WCF dans cet exemple est initialisé à partir d’un fichier de configuration généré par le plug-in Add Adapter Service Reference. Pour obtenir un exemple de fichier de configuration généré, consultez Configurer un client WCF pour un système Siebel.

  
using System;  
using System.Collections.Generic;  
using System.Text;  
  
using System.ServiceModel;  
using microsoft.lobservices.siebel._2007._03.BusinessObjects;  
using microsoft.lobservices.siebel._2007._03;  
  
namespace Business_Component_Operations  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            BusinessObjects_Account_Account_OperationClient client = null;  
  
            try  
            {  
  
                client = new BusinessObjects_Account_Account_OperationClient("SiebelBinding_BusinessObjects_Account_Account_Operation");  
                client.ClientCredentials.UserName.UserName = "YourUserName";  
                client.ClientCredentials.UserName.Password = "YourPassword";  
  
                Console.WriteLine("Opening connection to " + client.Endpoint.Address.Uri.Host);  
                client.Open();  
                AccountInsertRecord[] air = new AccountInsertRecord[1];  
                air[0] = new AccountInsertRecord();  
                Random r = new Random();  
                int count = r.Next();  
  
                air[0].Name = "Anil" + count.ToString();  
                Console.WriteLine("Inserting " + air[0].Name + " ...");  
                client.Insert(air);  
  
                //Query for the record.  
                Console.WriteLine("Querying to check inserted record ...");  
                AccountQueryInputRecord aqir = new AccountQueryInputRecord();  
                short viewmode = new short(); viewmode = 3;  
                string[] fields = new string[2];  
                fields[0] = "Name";  
                fields[1] = "Id";  
                aqir.QueryFields = fields;  
                aqir.SearchExpr = "[Name] LIKE \"Anil*\"";  
                AccountQueryRecord[] aqr = client.Query(viewmode, aqir);  
                Console.WriteLine(aqr.Length + " records returned");  
                string[] ids = new string[1];  
                AccountUpdateRecord[] aur = new AccountUpdateRecord[1];  
                aur[0] = new AccountUpdateRecord();  
                foreach (AccountQueryRecord rec in aqr)  
                {  
                    Console.WriteLine("Name: " + rec.Name);  
                    Console.WriteLine("Id: " + rec.Id);  
                    Console.WriteLine("");  
                    ids[0] = rec.Id;  
                    aur[0].Name = rec.Name;  
                    aur[0].Id = rec.Id;  
                }  
  
                //Update it.  
  
                aur[0].Name = "Anil" + count.ToString() + "modified";  
                Console.WriteLine("Update the record to " + aur[0].Name + " ...");  
                client.Update(viewmode, aur);  
                //query again  
                aqr = client.Query(viewmode, aqir);  
                Console.WriteLine(aqr.Length + " records returned");  
                foreach (AccountQueryRecord rec in aqr)  
                {  
                    Console.WriteLine("Name: " + rec.Name);  
                    Console.WriteLine("Id: " + rec.Id);  
                    Console.WriteLine("");  
                }  
  
                //Delete it.  
                Console.WriteLine("Deleting record ...");  
                client.Delete(viewmode, ids, "");  
  
                //Check again.  
                Console.WriteLine("Check that " + aur[0].Name + " is not present");  
                aqr = client.Query(viewmode, aqir);  
  
                Console.WriteLine(aqr.Length + " records returned");  
                foreach (AccountQueryRecord rec in aqr)  
                {  
                    Console.WriteLine(rec.Name);  
                    Console.WriteLine(rec.Id);  
  
                }  
  
                // Wait for <RETURN> to end sample.  
                Console.WriteLine("\nHit <RETURN> to finish");  
                Console.ReadLine();  
  
            }  
            catch (Exception e)  
            {  
                Console.WriteLine(e.Message);  
            }  
            finally  
            {  
                // Close the client.  
                if (client != null)  
                {  
                    if (client.State == CommunicationState.Opened)  
                        client.Close();  
                    else  
                        client.Abort();  
                }  
            }  
        }  
    }  
}  

Voir aussi

Développer des applications Siebel à l’aide du modèle de service WCF