Condividi tramite


Eseguire operazioni sui componenti aziendali con l'adapter Siebel usando il modello di servizio WCF

È possibile creare un client WCF destinato a un componente aziendale Siebel. È quindi possibile usare il client WCF per eseguire operazioni di query di inserimento, aggiornamento, query, eliminazione, associazione, associazione e record figlio nel componente aziendale nel sistema Siebel. Gli oggetti business Siebel vengono visualizzati sotto il nodo Business Objects nel plug-in Aggiungi riferimento al servizio adapter di Visual Studio. I componenti aziendali che compongono ogni oggetto business vengono visualizzati sotto il nodo corrispondente a tale oggetto. È possibile seguire la procedura descritta in Panoramica del modello di servizio WCF con l'adapter Siebel per generare un client WCF per un componente aziendale destinato a operazioni specifiche e usare il client per richiamare queste operazioni sul componente aziendale.

Nota

In questo argomento vengono fornite informazioni sull'esecuzione di operazioni di base (Inserimento, Aggiornamento, Query, Eliminazione) nei componenti aziendali. Per altre informazioni sull'esecuzione di operazioni di query su record associati, dissociati e figlio, vedere Eseguire operazioni sui componenti aziendali con campi MVG tramite il modello di servizio WCF

Il codice seguente usa un client WCF per eseguire operazioni di inserimento, aggiornamento ed eliminazione su un record nel componente business Account dell'oggetto business Account. Tra ogni operazione viene eseguita un'operazione di query per verificare i risultati. Il client WCF in questo esempio viene inizializzato da un file di configurazione generato dal plug-in Aggiungi riferimento al servizio adapter. Per un esempio di file di configurazione generato, vedere Configurare un client WCF per un sistema 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();  
                }  
            }  
        }  
    }  
}  

Vedere anche

Sviluppare applicazioni Siebel usando il modello di servizio WCF