Автозаполнение полей в форме электронной почты в Dynamics CRM 2011 - PullRequest
2 голосов
/ 27 июня 2011

Представьте себе, вы хотите добавить электронное письмо в дело.Откроется форма электронной почты, и поле «Кому» будет автоматически заполнено учетной записью клиента.

Я хочу изменить поведение, чтобы автоматически заполнять содержимое «Кому» пользовательским свойством соответствующего случая.

Мой первый подход состоял в том, чтобы зарегистрировать JavaScript для события OnLoad формы и позволить сценарию изменить поле.Это бы сработало, но мне интересно, есть ли более разумный способ добиться этого.Уже есть какая-то логика, которая заполняет поле «Кому». Можно ли настроить эту существующую функцию ?

Любые советы приветствуются.

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Я не верю, что этот конкретный сценарий может быть реализован более эффективно, чем тот, который вы уже разработали.Я бы предложил взглянуть на сопоставления данных (элемент левой навигации, когда вы открываете связь в настройках сущности), та же концепция, что обсуждалась в этой статье Dynamics CRM 4.0 http://www.dynamicscare.com/blog/index.php/modifying-mapping-behavior-between-parent-child-records-in-microsoft-dynamics-crm/),, но она не применимак этим отношениям.

1 голос
/ 12 ноября 2012

Это может помочь вам:

           DataService.EntityReference toEntityRef = new DataService.EntityReference();
            toEntityRef.LogicalName = "contact";
            toEntityRef.Id = Guid.Parse(to_id);
            Entity toParty = new Entity();
            toParty["partyid"] = toEntityRef;
            toParty.LogicalName = "activityparty";
            Entity emailEntity = new Entity();
            emailEntity.LogicalName = "email";
            EntityCollection toCollection = new EntityCollection();
            toCollection.Entities = new ObservableCollection<Entity>();
            toCollection.Entities.Add(toParty);
            emailEntity["to"] = toCollection;
           IOrganizationService soapService = ServerUtility.GetSoapService();
           IAsyncResult res = soapService.BeginCreate(emailEntity, OnCreateComplete, soapService);

Метод обратного вызова:

    private void OnCreateComplete(IAsyncResult result)
    {                 
             Guid emailId = (IOrganizationService)result.AsyncState).EndCreate(result);
    }
0 голосов
/ 28 июня 2011

Другой подход - заменить кнопки Добавить адрес электронной почты на ленте для вызова пользовательской функции JavaScript.Эта функция может открыть окно почты с помощью window.open и инициализировать поле Кому: с помощью , установив параметр extraqs , чтобы настроить ActivityParty для создаваемого электронного письма.Это можно сделать, установив:

Но параметр extraqs ограничен: вы можете установить только один получатель и никакое другое поле (из, cc, bcc, ...).Более того, замена кнопок обойдет встроенную функциональность, которая может измениться в будущих версиях

. Поэтому я предпочитаю обработку события OnLoad в форме.

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