2013-05-24 3 views
1

Я пытаюсь перенести некоторые настройки из нашей среды разработки в тестовую среду. У меня есть все, что мне нужно в решении. Когда я импортирую это в тестовую среду, он терпит неудачу с ошибкой;Ошибка при импорте неуправляемого решения

Элемент с таким же ключом уже добавлен.

В файле ошибки, который я загружаю с экрана импорта решения, он указан в элементе Form ItemType для объекта инцидента. Мое решение содержит новую настраиваемую форму, она также содержит определения для двух стандартных форм «Информация».

С подробной трассировкой я вижу ошибку в строке xml;

<formXml LocalizedName="Case" OriginalName="Case" 
     Description="Service request case associated with a contract." 
     id="Incident" processed="true"> 
    <result result="failure" errorcode="0x80044150" 
      errortext="An item with the same key has already been added." 
      datetime="09:52:28.65" datetimeticks="635049859486557248" /> 
</formXml> 

Это находится внутри узла entitySubhandlers. Однако нет ничего, чтобы точно определить, в чем проблема. Есть идеи? Благодарю.

+0

у вас есть поле поиска в недавно созданной форме? – Scorpion

+0

В прошлом я получил эту ошибку из плагина, потому что если 'entity.Attributes.Add'. Но для вас это происходит при импорте решения! – Scorpion

+0

У меня есть довольно много полей поиска в форме. Некоторые из них относятся к объектам OOTB, таким как клиент, другие - к обычным сущностям. – sparkymark75

ответ

0

Я не мог обойти это. Я задокументировал свои настройки, восстановил нашу тестовую среду (которая сама по себе восстанавливает производство) в качестве новой среды разработки. Как только я это сделал, все работало так, как ожидалось.

0

Я считаю, что это может произойти, когда у вас есть поле в обеих средах (с тем же именем схемы), но они имеют разные типы.

Вы уже настроили тестовую среду? Если это так, я бы посмотрел, чтобы сравнить пользовательские поля на этом объекте.

+0

Спасибо. Я прошел через все настраиваемые поля, и все, что уже существует в тестовой среде, имеют тот же тип, что и в среде разработки. – sparkymark75

+0

Да, тестовая среда настроена. Я визуально осмотрел поля и не вижу различий. Есть ли быстрый способ проверить, какой-то инструмент сравнения? – sparkymark75

1

У меня такая же ошибка при импорте настроек в среду Dev: Элемент с тем же ключом уже добавлен на объект пользователя.

Я видел ответ Джеймса Вуда и сравнивал объекты пользователя с обеих сторон. И понял, что у меня есть 3 пользовательских поля с обеих сторон. Они были созданы сторонним решением отдельно для живых и Dev.

Я просто удалил 3 пользовательских поля в среде Dev. Когда я снова попробовал импорт, он работал отлично.

Спасибо Джеймсу за подсказку.

2

Я столкнулся с той же проблемой сегодня и нашел решение.

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

Мой сценарий: контакт с полем "Поле 1" (дисплей - имя - физическое) Dev окружающей среды: "Поле 1" "new_field1" "new_Field1" испытания окружающей среды: "Поле 1" "newfield1" «new_field1 "=> Обратите внимание, что здесь нет капитала F

Произошло, когда я удалил поле на dev и воссоздал его. Раньше физическое имя было «new_Field1» на dev, теперь оно «new_field1».

Предлагаемое решение, которое я нашел в Интернете, удаляет поле и воссоздает его. Это, очевидно, не сработает для меня, но это может сработать для вас.См.: https://community.dynamics.com/crm/b/crmpowerobjects/archive/2013/07/01/field-is-not-unique-error-when-importing-a-solution-in-crm-2011.aspx

Мое решение состояло в том, чтобы обновить поле непосредственно в базе данных (вы не можете этого сделать, если у вас есть онлайн-среда CRM, я использую CRM 2011 для создания Rollup 15, SQL Server 2008 R2 SP1). Вам необходимо изменить схему таблицы + физическое имя записи в атрибутах Metadataschema.Attributes. Сделайте это на свой страх и риск, поскольку это не поддерживается MS и полностью резервирует.

0

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

1

У меня была такая же проблема, и это было вызвано изменением типа существующего поля.

В текущей системе было поле под названием ecs_salutation типа Одиночная линия текста. Решение удалило и прочитало это поле в виде набора

Импорт завершился неудачно, потому что типы полей не совпадали. Мне пришлось вручную удалить поле из форм, удалить его из объекта и повторно опубликовать, прежде чем сможете успешно импортировать решение