Показать сообщение отдельно
Старый 22.11.2018, 16:07   #21  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Начал импортировал контакты (после импорта акаунтов) и получаю ошибку, что мол нет такого ИД. Не совсем ясно где вообще взялся этот ИД, и с какой сущности. Я найти такого не смог в двух системах

Посмотрел метаданные по контакту, там три ссылки на акаунт, две из которых - кастомные.
- accountid
- new_distributor
- new_hqaccount

В целевой системе нет поля accountid на сущности контакт, т.к в онлайне видимо от него избавились.

Теоретически проблема может быть в поле parentcustomerid, но в усломнов операторе SSIS стоит проверка

Цитата:
!ISNULL(parentcustomeridtype) && parentcustomeridtype == "contact"


Цитата:
Account With Id = e52affc4-aa60-e611-80e9-00155df17501 Does Not Exist (SSIS Integration Toolkit for Microsoft Dynamics 365, v8.0.0.6228 - DtsDebugHost, v13.0.4495.10)
X++:
        static void findEntity()
        {
             var allEntities = GetEntities(connection);
            foreach (EntityMetadata Entity in allEntities)
            {
                try
                {
                    var entity = connection.Retrieve(Entity.LogicalName, new Guid("e52affc4-aa60-e611-80e9-00155df17501"), new ColumnSet(true));
                    Console.WriteLine($"Id found for entity {Entity.LogicalName}");
                    Console.ReadKey();
                }
                catch  {

                }

            }
        }

        public static EntityMetadata[] GetEntities(IOrganizationService organizationService)
        {
            Dictionary<string, string> attributesData = new Dictionary<string, string>();
            RetrieveAllEntitiesRequest metaDataRequest = new RetrieveAllEntitiesRequest();
            RetrieveAllEntitiesResponse metaDataResponse = new RetrieveAllEntitiesResponse();
            metaDataRequest.EntityFilters = EntityFilters.Entity;

            metaDataResponse = (RetrieveAllEntitiesResponse)organizationService.Execute(metaDataRequest);

            var entities = metaDataResponse.EntityMetadata;

            return entities;
        }

Последний раз редактировалось Ion; 22.11.2018 в 16:24.