Как получить данные из объекта в скрипте в CRM 2011

У меня есть 2 объекта (для этого примера) в CRM 2011 - Account и Case. Учетная запись содержит всех наших клиентов, кейс содержит отдельные рабочие действия для учетной записи. При создании обращения одним из полей ввода является учетная запись.

Что я хотел бы сделать, так это то, что пользователь выбирает учетную запись, выполняет некоторый javascript, чтобы найти сущность учетной записи, чтобы отобразить некоторую дополнительную информацию.

До сих пор у меня работал javascript, который запускает событие onchange поля «Учетная запись», и он правильно получает выбранную учетную запись, но я не знаю, каков следующий шаг.

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

Спасибо!


person Jon    schedule 23.02.2011    source источник


Ответы (4)


Есть разные способы сделать это, но я бы порекомендовал сделать это поддерживаемым способом, без javascript. Это может быть не так красиво, но, вероятно, намного проще. Сценарий будет состоять в том, чтобы добавить левую навигационную ссылку к объекту обращения, при нажатии на которую будет обновляться область содержимого, чтобы отобразить сведения об учетной записи.

Чтобы добавить ссылку на левую панель навигации, вам нужно настроить файл isv.config, чтобы он содержал дополнительную ссылку для объекта обращения.

Вот пример: http://support.sfusion.com/kb/hosted-microsoft-crm-4/how-do-i-modify-the-isv-config-file-in-microsoft-crm-4/

Вы также можете просмотреть настройки isv.config в SDK, которые можно найти здесь: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=82e632a7-faf9-41e0-8ec1-a2662aae9dfb&displaylang=en

Далее вам нужно будет создать пользовательскую страницу aspx в папке ISV на веб-сервере. На этой странице будет отображаться вся информация об учетной записи, которую вы хотите показать пользователю при нажатии левой навигационной ссылки. ISV.config как свойство xml, которое позволяет вам передавать все параметры контекста на вашу страницу в строке запроса. Не забудьте при создании ссылки включить этот атрибут.

Теперь единственная сложная часть заключается в том, что на странице вам нужно будет использовать веб-сервис CRM для отображения всех данных учетной записи, которые вы хотите показать пользователю. Я не буду вдаваться в подробности по этому поводу. Вы можете найти отличные руководства в Интернете или в SDK, если вы еще этого не сделали.

person Clint Simon    schedule 23.02.2011
comment
Кстати, я предполагаю, что вы используете CRM 4 - person Clint Simon; 23.02.2011
comment
В вопросе указана CRM 2011, а не CRM 4. Развертывание пользовательских страниц в папке ISV больше не поддерживается в версии 2011. - person Matt; 23.02.2011

Для справки, то, как вы думали о том, как что-то делать, будет полностью поддерживаться, и метод TechHike поддерживается в CRM 4, а не в CRM 2011. Шаги, которые вы должны предпринять:

  1. Используйте веб-ресурсы CRM 2011 для загрузки файла сценария, который делает то, что вы хотите.
  2. Используйте редактор форм, чтобы ваш метод javascript с первого шага срабатывал при изменении поля «Учетная запись» в форме.
  3. Отправьте запрос в конечную точку REST CRM (http://msdn.microsoft.com/en-us/library/gg334767.aspx), чтобы получить сведения о выбранной учетной записи.
  4. Используйте результаты для заполнения полей в форме, показа всплывающего окна с подробностями и т. д.

В SDK есть множество примеров вызова конечной точки REST из JavaScript (http://msdn.microsoft.com/en-us/library/gg309408.aspx). Удачи!

person Matt    schedule 23.02.2011

Сообщение Мэтта выше содержит все, что вам нужно знать, но вы также можете найти сообщение в блоге ниже. В основном он описывает тот же сценарий, когда у вас есть отношения 1: n (например, дело и учетная запись), и подробно описывает, как вы можете получить информацию из указанного поиска (например, учетной записи), используя конечную точку REST (как уже упоминал Мэтт) и отобразить это на форме.

http://community.dynamics.com/product/crm/crmtechnical/b/crminthefield/archive/2011/02/07/showing-related-information-in-a-crm-2011-form.aspx

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

person Stephen    schedule 23.02.2011

Есть два способа сделать это, и лучше всего делать это параллельно:

  • в отношении Account > Case отредактируйте Mappings. Когда пользователь переходит к учетной записи и использует левую навигацию для просмотра обращений (или сетки обращений в форме), а затем нажимает «Добавить новое дело», он создает дело из «контекста» учетной записи. На этом этапе вы можете скопировать любые поля из учетной записи в запись обращения — сопоставления определяют, какое поле из учетной записи копируется в какое целевое поле обращения. Это всегда будет самый надежный и простой способ сделать это, но он зависит от того, начнет ли пользователь с правильного места.

  • в случае вы также можете добавить сценарий onChange в поиск родительского клиента, чтобы получить данные из родительской записи. Я думаю, что ссылка Стивена, вероятно, лучший способ сделать это, поскольку она не копирует поля, но позволяет пользователю видеть их в любом случае, что является лучшим дизайном базы данных (с пуристской точки зрения) и означает, что пользователь всегда видит текущую информацию об учетной записи. а не возможно устаревшие вещи. В качестве альтернативы, если вам действительно нужно скопировать некоторые поля (например, в обычном соглашении об уровне обслуживания клиента), чтобы вы могли использовать их в других, таких как сценарии или рабочие процессы в случае, взгляните на эту статью: Отключение выбора контактов для возможностей все way Хотя речь идет о немного другой теме, скрипт извлекает сведения об учетной записи родительского контакта — вы хотите получить значения из родительского (llokup) поля, поэтому подход тот же, только отличается в деталях

person AdamV    schedule 28.09.2012