JavaScript для обновления значений в MSCRM - PullRequest
1 голос
/ 24 июня 2010

Я работаю над CRM Я хочу обновить контактную сущность значениями в назначенной сущности. Контактное лицо имеет два поля Дата последнего назначения и Дата следующего назначения. два поля в объекте назначения, называемые Дата начала и Дата окончания. Эти два значения должны быть скопированы в значения поля контакта. Я хочу, чтобы это происходило с использованием JavaScript

Ответы [ 3 ]

0 голосов
/ 24 июня 2010

Я настоятельно рекомендую вам не использовать JavaScript, а использовать Callouts (CRM 3.0) или плагины (CRM 4.0) только потому, что JavaScript будет выполняться при нажатии кнопки Сохранить, но после выполнения JavaScript сохранение может завершиться неудачно для другие причины (т. е. ошибка предварительного обновления Callout или плагина).

После обновления Callout или Плагин, чтобы сделать это, используя связанный Id для доступа к контакту, был бы (на мой взгляд) более надежным решением. Если, однако, вы абсолютно хотите, чтобы это было сделано с помощью JavaScript, тогда да, предложение Брайана Скотта следовать приведенным им примерам - путь.

0 голосов
/ 25 июня 2010

Если это плагин, тоже не проблема для меня .. на самом деле сначала я попробовал плагин.Я не прошел через это.Так что я перешел на сценарий Java.Это код, который я использовал.public void Execute (контекст IPluginExecutionContext) {сущность DynamicEntity = null;

        if (context.InputParameters.Properties.Contains("Target") &&
            context.InputParameters.Properties["Target"] is DynamicEntity)
        {
            entity = (DynamicEntity)context.InputParameters.Properties["Target"];

            if (entity.Name != EntityName.appointment.ToString())
                return;
        }
        else
        {
            return;
        }
        try
        {
            Guid appointmentID = new Guid(context.OutputParameters["id"].ToString());

            ICrmService crmservice = context.CreateCrmService(true);

            appointment appObj = (appointment)crmservice.Retrieve(EntityName.appointment.ToString(), appointmentID, new ColumnSet(new string[] { "regardingobjectid", "location" }));
            if (appObj.regardingobjectid == null || appObj.regardingobjectid.type != "contact")
            {
                return;
            }
            Guid contactID = appObj.regardingobjectid.Value;

            contact cnt = new contact();
            cnt.contactid = new Key();
            cnt.contactid.Value = contactID;
            cnt.firstname = appObj.location;

            crmservice.Update(cnt);
        }
        catch (System.Web.Services.Protocols.SoapException ex)
        {
            throw new InvalidPluginExecutionException(
               "Invalid plug-in.", ex);
        }
    }
0 голосов
/ 24 июня 2010

Существует несколько способов вызова сущностей CRM через их веб-сервисы.Использование javsacript может оказаться очень трудоемким, поскольку зачастую очень трудно определить причину возникновения ошибок.Я обычно стремлюсь создать небольшое приложение ASP .Net, добавить CRM SDK в качестве веб-сервиса, явно вызывать его и наблюдать запросы SOAP с использованием HTTP Fiddler.После того, как у меня получится фактический вызов SOAP, я могу скопировать вызов, перевести его в строку, чтобы я мог манипулировать требуемыми значениями, а затем запустить его по URL SDK через запрос javsacript.

Вотнекоторые примеры вызова CRM SDK для обновлений / выборок с использованием только javascript:

Примеры Javsacript

А вот официальный пакет примеров JavaScript CRM от Microsoft:

Пакет примеров Microsoft

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...