Очистка записей в Dynamics 365 --- удаление всех связей, их разъединение и удаление выбранных записей - PullRequest
1 голос
/ 05 августа 2020

У нас в Dynamics довольно сложная схема. Запись имеет более 150 отношений OneToMany, 10 отношений ManyToOne и 1 отношение ManyToMany.

Я пытаюсь go через каждое отношение, выполняя этот код C#, который живет службой WCF:

RetrieveEntityRequest retrieveCustomerRelationships = new RetrieveEntityRequest
{
    EntityFilters = EntityFilters.Relationships,
    LogicalName = "dummy_customer"
};
RetrieveEntityResponse customerRelationships = RetrieveEntityResponse)proxy.Execute(retrieveCustomerRelationships);
var oneToNRelationships = customerRelationships.EntityMetadata.OneToManyRelationships;

Я перебираю каждое из отношений OneToMany и пытаюсь получить идентификатор объекта, на который имеется ссылка. В зависимости от типа объекта я хочу его удалить. Я думал, что могу использовать MetadataId как таковой:

foreach (var oneToNRelationship in oneToNRelationships){
    RetrieveEntityRequest retrieveOneMetaDataRequest = new RetrieveEntityRequest
    {
        LogicalName = oneToNRelationship.SchemaName,
        MetadataId = (Guid) oneToNRelationship.MetadataId
    };
    RetrieveEntityResponse oneMetadata = (RetrieveEntityResponse)proxy.Execute(retrieveOneMetaDataRequest);
}

Но он выдает ошибку «Не удалось найти объект»

Есть ли у кого-нибудь опыт работы с MetadataId и как мы можем его использовать?

Спасибо!

Мне действительно удалось успешно удалить эту родительскую запись, удалив все связанные записи, которые вызывали ошибки в плагинах. Тем не менее, я хочу знать, как можно использовать MetadataId. Был бы признателен, если бы кто-нибудь мог просветить меня.

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Эта ошибка может возникать при установке связанных объектов записи активности в целевой системе. Это вызвано различием между именами архитектуры сущностей между исходной системой Dynamics и целевой системой Dynamics. Например, имя архитектуры объекта целевой системы - «mag_entityname», а имя архитектуры объекта исходной системы - «new_entityname».

Вы можете обратиться к ссылкам ниже, все они содержат вопросы, похожие на ваше:

Ошибка поиска объекта в Dynamics 365 for Outlook App

https://community.dynamics.com/crm/f/microsoft-dynamics-crm-forum/234651/web-application---could-not-find-entity/642165

0 голосов
/ 06 августа 2020

это не ответ, а возможность, которая может пригодиться: «Удалить отношения. Чтобы удалить отношения с помощью веб-API, используйте метод HTTP DELETE с URI для отношения». https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/webapi/create-update-entity-relationships-using-web-api

...