15.10.2012, 15:35 | #1 |
Участник
|
Не создаётся связь EntityReferenсe c# ms crm2011
Всем привет! Есть код, который создаёт запись "Отклик кампании". При этом должна создаваться связь с кампанией и с контактом. При этом с кампанией создаётся, а с контактом нет(
X++: Entity campaignresponse = new Entity("campaignresponse"); //EntityReference primaryId = new EntityReference("contact", new Guid(guidEntity)); //campaignresponse["customer"] = primaryId; campaignresponse.Attributes.Add("customer", new EntityReference("contact", new Guid(guidEntity))); EntityReference campaignId = new EntityReference("campaign", new Guid(guid)); campaignresponse["regardingobjectid"] = campaignId; campaignresponse["companyname"] = "MyCompany"; Последний раз редактировалось NoTimeToCry; 15.10.2012 в 15:38. |
|
15.10.2012, 16:41 | #2 |
Заноза в заднице
|
Предположу, что скорее всего неправильное присвоение значения для поля customer. Тип поля regardingobject - это поиск (ну или Lookup), то есть связь один-ко-многим, а тип поля customer - список сторон (PartyList), то есть связь многие-ко-многим, и скорее всего, там идет речь о массиве значений типа activityparty. То есть буквально нужно не добавлять EntityReference тип "контакт" в массив атрибутов как "customer", а сначала добавить контакт в массив activityparty, а затем только этот массив добавлять как параметр атрибута "customer". Кажется так.
...Хотя, вполне возможно, что для подобного случая может предусматриваться специальный метод, типа AddActivityParty или что-то типа того. В хэлпе к SDK есть пример: "Sample: Work with Activity Party Records.", который добавляет список адресатов к сообщению - можно попробовать оп аналогии добавить контакт.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|
За это сообщение автора поблагодарили: a33ik (1), NoTimeToCry (1). |
15.10.2012, 17:07 | #3 |
Чайный пьяница
|
У меня заработал следующий код:
Код: Entity campaignresponse = new Entity("campaignresponse"); Entity party = new Entity("activityparty"); party["partyid"] = new EntityReference("contact", new Guid("78CD2C94-9A16-E211-8929-080027BC7342")); EntityCollection collection = new EntityCollection(); collection.Entities.Add(party); campaignresponse["customer"] = collection; campaignresponse["regardingobjectid"] = new EntityReference("campaign", new Guid("FA2158AB-C116-E211-8929-080027BC7342"));; campaignresponse["companyname"] = "MyCompany";
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: NoTimeToCry (1). |
15.10.2012, 17:25 | #4 |
Участник
|
Спасибо! Помогло!
А еще вопрос, почему в текстовое поле crm вместо, например, фамилии "Иванов", пишется ������ ? X++: campaignresponse["lastname"] = "Иванов"; service.Create(campaignresponse); |
|
15.10.2012, 17:31 | #5 |
Чайный пьяница
|
Скорее, что всего чтото не так с кодировкой на компе, с которого выполняете запуск приложения импорта.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
16.10.2012, 10:41 | #6 |
Участник
|
В общем сейчас если писать просто "Иванов", то пишется нормально. Но если пытаюсь записать в поле строку полученную из файла csv , то получаю ����. Пробовал конвертить в разные кодировки, меняется только вид вопросительных знаков. Никто не знает, какая у crm кодировка на текстовые поля? я пробовал unicode, utf-8, utf-7, windows-1251, ASCII
|
|
16.10.2012, 11:14 | #7 |
Участник
|
Всё получилось. Конвертить надо было не полученную строку, а сам файл в StreamReader'e в формат windows-1251
|
|
Теги |
crm2011 |
|
|