Как динамически заполнить поле поиска на стороне клиента - PullRequest
0 голосов
/ 17 мая 2018

Я использую Dynamics CRM 2016, моя миссия - скопировать запись на стороне клиента (без плагинов), поэтому, используя событие onload, я вызываю функцию, которая извлекает объект со всеми моими атрибутами (для копирования в ..), Я могу просто заполнить все поля в моей форме, кроме поля поиска.Я имею в своих данных из моих значений выборки 3, чтобы использовать: имя: данные, показанные в поле 'значение: идентификатор ссылки на сущность и номер типа. Чтобы заполнить поле поиска, мне нужно имя сущностиидентификатор и тип.*** Код должен быть универсальным. Возникают два вопроса:

1 . Является ли значение типа пригодным для заполнения поля типа сущности, если да, то как?
2 .Могу ли я заполнить атрибут имени в новом поле как есть из старого поля?

Пример данных, которые я получаю:

Attributes
:
name
:
"this is the name"
type
:
"10026"  -- Can I get the entity name (Account,Contact etc...) according to this val?
__proto__
:
Object
Value
:
"{6BddfDC-8B10-47F4-BC49-A537d2E43E}"

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если ваше требование не состоит в коде (плагинах), мне кажется немного хитрым использование JavaScript для достижения того же.

Вы должны выяснить, сколько из этого можно сделать, используя CRM Workflowсоздание решения, которое будет поддерживаться специалистом по функциональной поддержке, а не техническим специалистом.

Затем можно при желании запустить рабочий процесс, используя JavaScript

0 голосов
/ 18 мая 2018
  1. Не уверен, откуда вы получаете код типа сущности, также известный как objecttypecode (10026), вам может потребоваться изменить источник для хранения имени типа сущности (логического имени). Поскольку массив объектов, используемый для хранения значения поиска , ожидает guid, отображаемое имя и тип, например, [{ id: recordid, name: recordName, entityType: entityName }]. В противном случае, как вы прокомментировали, вам нужно извлечь из метаданных или сохранить несколько пар ключ: значение как перечисления.

  2. Вы можете получить все необходимые свойства из старого поля и установить новое поле, как показано ниже.

-

var lookupObjValue = Xrm.Page.getAttribute(old_lookupSchemaName).getValue();

var lookupEntityType = lookupObjValue[0].entityType, //To get EntityName
lookupRecordGuid = lookupObjValue[0].id, // To get record GUID
lookupRecordName = lookupObjValue[0].name; //To get record Name 

Xrm.Page.getAttribute(new_lookupSchemaName).setValue([{ id: lookupRecordGuid, name: lookupRecordName, entityType: lookupEntityType }]);
...