Microsoft dynamics CRM 2011: как сгенерировать интерес из внешней контактной формы

#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