Как получить адрес (улицу) с помощью С#?

Я выполняю свой запрос, и он отлично работает, когда я использую следующий ColumnSet.

...
ColumnSet = new ColumnSet(
  "name", 
  "address1_postalcode",
  "beep_cin",
  "telephone1",
  //"address1_street1", 
  "address1_city"),
...

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

  1. Как получить в CRM 2013 доступ к эквиваленту address1_street1 в CRM 2011?
  2. Почему я могу получить доступ к другим полям address_..., к которым я привык, но не к street1?

Редактировать

Я также обнаружил, что даже на клиенте, использующем JavaScript, происходит что-то странное. Давайте попробуем запустить следующие две строки (frames[0] здесь, потому что так это работает в окне консоли IE, F12).

frames[0].Xrm.Page.getAttribute("address1_street1").getValue()
frames[0].Xrm.Page.getAttribute("address1_city").getValue()

В то время как первый дает мне Стокгольм, второй выдает ошибку, потому что возвращаемый атрибут равен null, несмотря на то, что я вошел на улицу, как и предполагалось. Кроме того, я замечаю, что следующая строка:

frames[0].Xrm.Page.getAttribute("address1_composite").getValue()

возвращает весь составной текст адреса - улица, город, страна и т. д. В этом атрибуте есть объект с именем controls, но я не нашел в нем ничего полезного. Это странно и неожиданно. Мне не нравится сочетание странности и неожиданности.

Обратите внимание, что это версия CRM13, в которой происходит причудливость.

Конечно, я мог бы использовать это зверство ниже, но так ли это на самом деле? мы хотим видеть на экране каждого разработчика CRM?! Это заставляет мои глаза кровоточить, и моя воля к жизни увядает.

Xrm.Page.getControl("address1_composite_compositionLinkControl_address1_line1")

Кроме того, я до сих пор не понимаю значения и не понимаю, как его использовать в C#!


person Konrad Viltersten    schedule 01.06.2014    source источник


Ответы (1)


Я не знаю, какой объект вы хотите получить, но обычно логическое имя поля Address 1: Street1address1_line1.

Здесь метаданные атрибута для сущности учетной записи:

http://msdn.microsoft.com/en-us/library/gg328057%28v=crm.5%29.aspx#bkmk_attributes

person Guido Preite    schedule 01.06.2014
comment
Я полагаю, ты готов к попаданию. Попробуйте запустить две строки, которые я добавил в свой исходный пост, на экземпляре Account. - person Konrad Viltersten; 01.06.2014
comment
Я попробовал ваши строки javascript frameworks[0], с address1_street1 я получаю сообщение об ошибке Unable to get value of the property 'getValue': object is null or undefined, но с address1_line1 и address1_city я получаю значения формы. Внутри учетной записи имя поля address1_line1 для JavaScript и C#. - person Guido Preite; 02.06.2014
comment
О... LINE1 не STREET1! Меня должны расстрелять. Дважды. Потом побили камнями и пинали. Я предполагаю, что бессонница добирается до меня. Вот рыдаю с головой в сидячем аппарате ругаюсь на дурацкую CRM... Ты спаситель! - person Konrad Viltersten; 02.06.2014