#asp.net #web-services #asmx #dynamics-crm
#asp.net #веб-сервисы #asmx #dynamics-crm
Вопрос:
я разработал CMS для одного из моих клиентов, и он хочет, чтобы, когда пользователь заполнял контактную форму, она автоматически генерировала интерес в его CRM. какой самый простой способ сделать это?
кстати, контактная форма — ajax, а данные передаются в asmx, поэтому будет легко вызвать веб-сервис CRM или что-то в этом роде, потому что я уже на стороне сервера.
может кто-нибудь указать мне на руководство или какой-нибудь пример кода? Спасибо!
Ответ №1:
Лучше всего начать с SDK, доступного здесь, который содержит пример кода и библиотеки DLL sdk и т.д…
Здесь приведена страница с кратким описанием всех конечных точек веб-службы, доступных в различных версиях CRM 2011.
Из SDK samplepcode cs quickstart создание учетной записи, но очень похожий для интереса:
// Connect to the Organization service.
// The using statement assures that the service proxy will be properly disposed.
using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri,
serverConfig.HomeRealmUri,
serverConfig.Credentials,
serverConfig.DeviceCredentials))
{
// This statement is required to enable early-bound type support.
_serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
// Instaniate an account object.
// See the Entity Metadata topic in the SDK documentation to determine
// which attributes must be set for each entity.
Account account = new Account { Name = "Fourth Coffee" };
// Create an account record named Fourth Coffee.
_accountId = _serviceProxy.Create(account);
Console.Write("{0} {1} created, ", account.LogicalName, account.Name);
// Retrieve the account containing several of its attributes.
ColumnSet cols = new ColumnSet(
new String[] { "name", "address1_postalcode", "lastusedincampaign" });
Account retrievedAccount = (Account)_serviceProxy.Retrieve("account", _accountId, cols);
Console.Write("retrieved, ");
// Update the postal code attribute.
retrievedAccount.Address1_PostalCode = "98052";
// The address 2 postal code was set accidentally, so set it to null.
retrievedAccount.Address2_PostalCode = null;
// Shows use of a Money value.
retrievedAccount.Revenue = new Money(5000000);
// Shows use of a boolean value.
retrievedAccount.CreditOnHold = false;
// Update the account record.
_serviceProxy.Update(retrievedAccount);
Console.WriteLine("and updated.");
Комментарии:
1. спасибо, я начал читать SDK, я подумал, может быть, кто-то выполнял ту же задачу раньше (я думаю, многим людям нужна эта функциональность) и может поделиться некоторым кодом или каким-нибудь руководством.
2. Обновил ответ некоторыми конкретными примерами кода, доступными в SDK