У меня есть объект. Тип этого объекта - это активность. Я хочу установить значение поля thisobjectid этого объекта, а затем я хочу создать запись. Поле forobjectid каждой записи может отображать разные объекты. А именно, я устанавливаю это поле «a», и тогда я могу установить это поле с сущностью «b» в следующей записи. У меня есть логическое имя "a" и "b". Я беру код типа объекта с использованием логического имени. И я беру метаданные объекта с этим кодом типа объекта. Как я могу взять идентификатор объекта из метаданных объекта или типа объекта с помощью C#. Если я беру идентификатор сущности (a или b), а затем я установлю его на aboutobjectid, который находится в объекте типа действия.Устанавливает значение Entity Regingingobjectid Field с кодом типа объекта с использованием C#
ответ
Ваша формулировка довольно запутанная. Вот пример, который, я думаю, охватывает то, что вы пытаетесь достичь.
Создайте контакт, а затем создайте задачу с соответствующим полем, заполненным контактом.
Entity contact = new Entity("contact");
contact["lastname"] = "Test Contact";
Guid contactId = service.Create(contact);
Entity task = new Entity("task");
task["subject"] = "Test Task";
task["regardingobjectid"] = new EntityReference("contact", contactId);
service.Create(task);
Можно также обновить существующую задачу следующим образом:
Entity task2 = new Entity("task");
task2.Id = new Guid(...);
task2["regardingobjectid"] = new EntityReference("contact", contactId);
service.Create(task);
Вы можете получить идентификатор записи (для использования здесь new Guid(...)
или здесь contactId
) в различных формах.
Идентификатор записи относится к конкретной записи в CRM, например. строка в таблице.
Если вы создали запись, используя служебный вызов, то вам возвращается идентификатор .
Entity contact = new Entity("contact");
...
Guid recordId = service.Create(contact);
Вы можете запросить идентификатор записи из CRM. Дополнительная литература: IOrganizationService.RetrieveMultiple.
Guid recordId = Service.RetrieveMultiple(new QueryExpression("contact")).Entities.First().Id;
Если у вас есть Entity
объект, возвращаемый из CRM вы всегда получите свой идентификатор записи из Id
собственности.
Entity contact = new Entity("contact");
Guid recordId = contact.Id;
Side Примечания
Тип объекта Код (также известный как Тип объекта кодекса)
Это, как правило, не используется ни для чего, это часть данных, имеет небольшое количество применений - я редко нахожу его полезным или использую его.
Код типа может использоваться для обозначения типа объекта, например. контакт, случай и т. д. Однако предпочтительно использовать имя схемы сущности, например. contact
, incident
и т. Д.
Следует также помнить, что это ненадежно - особенно в случае пользовательских объектов.
Всегда используйте имя объект схемы (SchemaName) для обозначения пользовательского объекта в коде и запросах.Не используйте код типа объекта (также , называемый типом сущности), потому что его целочисленное значение варьируется для пользовательских объектов в разных организациях.
метаданных услуги
Вы можете воспользоваться услугами метаданных для приема (и манипулировать) информацию о конфигурации системы. Например. какие у вас есть сущности и какие поля у них есть. Однако он не даст вам информации о конкретных записях.
Дополнительная информация: The metadata and data models in Microsoft Dynamics 365.
вы создали новый объект. Но у меня уже есть сущность. И у меня есть записи с Dictionary
Я получаю код типа объекта с логическим именем объекта из метаданных. Могу ли я обновить это относительно идентификатора объекта с помощью кода типа объекта. Или я могу получить идентификатор guid объекта с этим кодом типа объекта. – Dvlpr
@Dvlpr, ну, обновление не очень отличается от созданного примера. Вы можете установить 'aboutobjectid' в' EntityReference', для которого требуется логическое имя и идентификатор записи. Я не уверен, где код типа объекта действительно вступает в это - ваш вопрос не ясен. –
Откуда вы знаете, какой объект «A» или «B» установить объекты активности «aboutobjectid»? Вы запрашиваете запись? Если да, то как? – dynamicallyCRM
Если объект типа действия заполнен сущностью, а затем я должен создать aboutobjectid с идентификатором объекта. – Dvlpr
aboutobjectid - это поле поиска. И у меня должен быть идентификатор объекта. Но у меня есть только (A или B) entityname, код типа объекта и метаданные объекта. – Dvlpr