RightNow CRM XML API - Кто-нибудь знаком с этим? - PullRequest
1 голос
/ 26 сентября 2008

Мне нужно создать пользовательский элемент управления в vb.net или c # для поиска в базе данных RightNow CRM. У меня есть документация по их XML API, но я не уверен, как публиковать их в анализатор, а затем перехватывать возвращаемые данные и отображать их на странице.

Любой пример кода будет принята с благодарностью!

Ссылка на API: http://community.rightnow.com/customer/documentation/integration/82_crm_integration.pdf

Ответы [ 2 ]

1 голос
/ 29 сентября 2008

Я не знаю RightNow CRM, но в соответствии с документацией вы можете отправлять запросы XML, используя сообщение HTTP. Самый простой способ сделать это в .NET - использовать класс WebClient. В качестве альтернативы вы можете взглянуть на классы HttpWebRequest / HttpWebResponse. Вот пример кода с использованием 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);
        }
    }
}

У меня нет доступа к RightNow CRM, поэтому я не смог проверить это, но он может послужить для вас отправной точкой.

0 голосов
/ 15 июля 2014

Это создаст контакт прямо сейчас

   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 = "mail@mail.com";
        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();

    }
}
...