2008-09-26 6 views
1

Je dois créer un contrôle utilisateur dans vb.net ou C# pour rechercher une base de données CRM RightNow. J'ai la documentation sur leur API XML, mais je ne sais pas comment publier sur leur analyseur, puis attraper les données de retour et l'afficher sur la page.RightNow CRM XML API - Quelqu'un le connaît?

Un exemple de code serait grandement apprécié!

Lien vers API: http://community.rightnow.com/customer/documentation/integration/82_crm_integration.pdf

+0

Pouvez-vous relier à leur documentation? D'autres peuvent être en mesure de trouver les informations pertinentes, même si nous n'avons pas l'expérience de RightNow nous-mêmes ... –

+0

http://community.rightnow.com/customer/documentation/integration/82_crm_integration.pdf – Gthompson83

+0

Je comprends vraiment la question. Cherchez-vous un exemple d'intégration de "maintenant", ou demandez-vous comment faire un HTTP Post avec C#? – Till

Répondre

1

Je ne sais pas RightNow CRM, mais selon les documents que vous pouvez envoyer les requêtes XML à l'aide de HTTP POST. La façon la plus simple de faire cela dans .NET est d'utiliser la classe WebClient. Vous pouvez également jeter un oeil aux classes HttpWebRequest/HttpWebResponse. Voici quelques exemples de code utilisant WebClient:

using System.Net; 
using System.Text; 
using System; 

namespace RightNowSample 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string serviceUrl = "http://<your_domain>/cgi-bin/<your_interface>.cfg/php/xml_api/parse.php"; 
      WebClient webClient = new WebClient(); 
      string requestXml = 
@"<connector> 
<function name=""ans_get""> 
<parameter name=""args"" type=""pair""> 
<pair name=""id"" type=""integer"">33</pair> 
<pair name=""sub_tbl"" type='pair'> 
<pair name=""tbl_id"" type=""integer"">164</pair> 
</pair> 
</parameter> 
</function> 
</connector>"; 

      string secString = ""; 
      string postData = string.Format("xml_doc={0}, sec_string={1}", requestXml, secString); 
      byte[] postDataBytes = Encoding.UTF8.GetBytes(postData); 

      byte[] responseDataBytes = webClient.UploadData(serviceUrl, "POST", postDataBytes); 
      string responseData = Encoding.UTF8.GetString(responseDataBytes); 

      Console.WriteLine(responseData); 
     } 
    } 
} 

Je n'ai pas accès à RightNow CRM, donc je ne pouvais pas tester, mais il peut servir de point de s epuis pour vous.

0

Cela va créer un contact dans ce moment

class Program 
{ 
    private RightNowSyncPortClient _Service; 
    public Program() 
    { 
     _Service = new RightNowSyncPortClient(); 
     _Service.ClientCredentials.UserName.UserName = "Rightnow UID"; 
     _Service.ClientCredentials.UserName.Password = "Right now password"; 
    } 
    private Contact Contactinfo() 
    { 
     Contact newContact = new Contact(); 
     PersonName personName = new PersonName(); 
     personName.First = "conatctname"; 
     personName.Last = "conatctlastname"; 
     newContact.Name = personName; 
     Email[] emailArray = new Email[1]; 
     emailArray[0] = new Email(); 
     emailArray[0].action = ActionEnum.add; 
     emailArray[0].actionSpecified = true; 
     emailArray[0].Address = "[email protected]"; 
     NamedID addressType = new NamedID(); 
     ID addressTypeID = new ID(); 
     addressTypeID.id = 1; 
     addressType.ID = addressTypeID; 
     addressType.ID.idSpecified = true; 
     emailArray[0].AddressType = addressType; 
     emailArray[0].Invalid = false; 
     emailArray[0].InvalidSpecified = true; 
     newContact.Emails = emailArray; 
     return newContact; 
    } 
    public long CreateContact() 
    { 
     Contact newContact = Contactinfo(); 
     //Set the application ID in the client info header 
     ClientInfoHeader clientInfoHeader = new ClientInfoHeader(); 
     clientInfoHeader.AppID = ".NET Getting Started"; 
     //Set the create processing options, allow external events and rules to execute 
     CreateProcessingOptions createProcessingOptions = new CreateProcessingOptions(); 
     createProcessingOptions.SuppressExternalEvents = false; 
     createProcessingOptions.SuppressRules = false; 
     RNObject[] createObjects = new RNObject[] { newContact }; 
     //Invoke the create operation on the RightNow server 
     RNObject[] createResults = _Service.Create(clientInfoHeader, createObjects, createProcessingOptions); 

     //We only created a single contact, this will be at index 0 of the results 
     newContact = createResults[0] as Contact; 
     return newContact.ID.id; 
    } 

    static void Main(string[] args) 
    { 
     Program RBSP = new Program(); 
     try 
     { 
      long newContactID = RBSP.CreateContact(); 
      System.Console.WriteLine("New Contact Created with ID: " + newContactID); 
     } 
     catch (FaultException ex) 
     { 
      Console.WriteLine(ex.Code); 
      Console.WriteLine(ex.Message); 
     } 

     System.Console.Read(); 

    } 
} 
Questions connexes