2017-01-03 15 views
0

У меня есть объект. Тип этого объекта - это активность. Я хочу установить значение поля thisobjectid этого объекта, а затем я хочу создать запись. Поле forobjectid каждой записи может отображать разные объекты. А именно, я устанавливаю это поле «a», и тогда я могу установить это поле с сущностью «b» в следующей записи. У меня есть логическое имя "a" и "b". Я беру код типа объекта с использованием логического имени. И я беру метаданные объекта с этим кодом типа объекта. Как я могу взять идентификатор объекта из метаданных объекта или типа объекта с помощью C#. Если я беру идентификатор сущности (a или b), а затем я установлю его на aboutobjectid, который находится в объекте типа действия.Устанавливает значение Entity Regingingobjectid Field с кодом типа объекта с использованием C#

+0

Откуда вы знаете, какой объект «A» или «B» установить объекты активности «aboutobjectid»? Вы запрашиваете запись? Если да, то как? – dynamicallyCRM

+0

Если объект типа действия заполнен сущностью, а затем я должен создать aboutobjectid с идентификатором объекта. – Dvlpr

+0

aboutobjectid - это поле поиска. И у меня должен быть идентификатор объекта. Но у меня есть только (A или B) entityname, код типа объекта и метаданные объекта. – Dvlpr

ответ

0

Ваша формулировка довольно запутанная. Вот пример, который, я думаю, охватывает то, что вы пытаетесь достичь.

Создайте контакт, а затем создайте задачу с соответствующим полем, заполненным контактом.

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 и т. Д.

Следует также помнить, что это ненадежно - особенно в случае пользовательских объектов.

ObjectTypeCode Property

Всегда используйте имя объект схемы (SchemaName) для обозначения пользовательского объекта в коде и запросах.Не используйте код типа объекта (также , называемый типом сущности), потому что его целочисленное значение варьируется для пользовательских объектов в разных организациях.

метаданных услуги

Вы можете воспользоваться услугами метаданных для приема (и манипулировать) информацию о конфигурации системы. Например. какие у вас есть сущности и какие поля у них есть. Однако он не даст вам информации о конкретных записях.

Дополнительная информация: The metadata and data models in Microsoft Dynamics 365.

+0

вы создали новый объект. Но у меня уже есть сущность. И у меня есть записи с Dictionary . А именно, у меня есть только логическое имя и его записи. И после того, как я хочу установить aboutobjectid, как, например, над объектом «task». Таким образом, taskobjectid задачи должен представлять вашу контактную организацию. – Dvlpr

+0

Я получаю код типа объекта с логическим именем объекта из метаданных. Могу ли я обновить это относительно идентификатора объекта с помощью кода типа объекта. Или я могу получить идентификатор guid объекта с этим кодом типа объекта. – Dvlpr

+0

@Dvlpr, ну, обновление не очень отличается от созданного примера. Вы можете установить 'aboutobjectid' в' EntityReference', для которого требуется логическое имя и идентификатор записи. Я не уверен, где код типа объекта действительно вступает в это - ваш вопрос не ясен. –