Ниже приведены шаги, которые я, выполняемые для подключения Salesforce с помощью Enterprise WSDL
Сформировать Enterprise WSDL в среде Salesforce следующим
Настройка -> Развить -> API -> Создать Enterprise WSDL. Сохраните эту веб-страницу как XML.
В Visual studio щелкните правой кнопкой мыши ссылку на ваш проект в обозревателе решений и добавьте сохраненный XML-файл в качестве служебной ссылки на проект.
Аналогичным образом генерирует WSDL для вашего класса apex. И прикрепите его как служебную ссылку на проект. (Если вы выставили какой-либо класс apex в качестве веб-службы, в противном случае выполните этот шаг)
- Начните писать код.
В этой программе я пытаюсь вызвать метод WebService написанный на Apex, который получает объект пользователя на основе уникального Id и обновляет поле.
using ConsoleApplication1.Salesforce;
using System.Web.Services.Protocols;
namespace ConsoleApplication1
{
class Program
{
public static SforceService binding;
public static ConsoleApplication1.ApexServiceName.ApexClassService classBinding;
static void Main(string[] args)
{
binding = new SforceService();
LoginResult lr = null;
binding.Timeout = 120 * 60000;
try
{
lr = binding.login(username,password);
Console.WriteLine("login success");
}
catch (SoapException ex)
{
Console.WriteLine(ex.Message);
}
classBinding = new ConsoleApplication1.ApexServiceName.YOUR_APEXCLASS_NAME();
binding.Url = lr.serverUrl; //I1
binding.SessionHeaderValue = new SessionHeader();
binding.SessionHeaderValue.sessionId = lr.sessionId; //I2
classBinding.SessionHeaderValue = new ConsoleApplication1.ApexClassService.SessionHeader();
classBinding.SessionHeaderValue.sessionId = lr.sessionId;
ConsoleApplication1.ApexServiceName.User Appusr = classBinding.getUserById("1234567"); //I3
Appusr.FirstName = "MurthyFYI"; //I4
Boolean? result = classBinding.updateUser(Appusr); //I3
binding.logout();
}
}
}
I1) Результаты входа в систему содержат конечную точку экземпляра виртуального сервера, обслуживающего вашу организацию. Укажите URL привязки к этой конечной точке.
I2) Получить идентификатор сеанса из результата входа и установить его для заголовка сеанса, который будет использоваться для всех последующих вызовов.
I3) Вызвать метод webservice класса Apex, для которого вы создали WSDL.
I4) Обновите поле для объекта пользователя.
Для получения дополнительной информации вы можете сослаться на сообщение в своем блоге @http://murthyvvr.blogspot.in/2013/11/calling-salesforce-webservice-from-c.html Надеюсь, это поможет.