Открытие объекта с внешнего iframe CRM 2013

У нас есть решение CRM 2011 с несколькими настраиваемыми представлениями и формами ASP.NET MVC, которые отображаются в iframe для объектов в CRM. В настоящее время мы проводим анализ по обновлению до CRM 2013, и у нас возникла проблема с открытием окон сущностей.

В большинстве случаев мы использовали window.open в решении, как в JavaScripts на стороне CRM, так и в пользовательском приложении ASP.NET MVC. URL-адрес, переданный в window.open имеет следующий формат:

http://crm.contoso.com/Contoso-Org/main.aspx?etn=opportunity&pagetype=entityrecord&id={...}

Проблема в том, что это, похоже, помнит контекст, когда он был открыт в CRM 2013, поэтому он просто открывает открытую сущность. Мы решили это на стороне CRM, вместо этого вместо этого использовала Xrm.Utility.openEntityForm, но не похоже, что это возможно для настраиваемого приложения, поскольку у нас нет доступа к библиотеке Xrm изнутри iframe. URL-адрес правильный, и если он копируется в новую вкладку, он правильно загружает желаемый объект. Однако при загрузке с помощью window.open он просто открывает одно и то же лицо.

Некоторые предложения указывают на добавление параметра histKey состоящего из случайно сгенерированного числа в открытый URL. Однако это не работает последовательно - иногда он открывает правильную сущность, иногда он просто открывает текущую структуру и не документируется нигде.

Кто-нибудь может найти решение?

2 ответа

У меня была аналогичная проблема с открытием URL-адресов CRM 2013 и я смог ее исправить, добавив две строки запроса histKey (которая принимает случайное число как значение) и newWindow в URL-адрес, как показано ниже:

  • "histKey=" + Math.floor(Math.random() * 10000)
  • "newWindow=true"

Надеюсь это поможет.


Попробуйте следующее:

  1. Измените цель тега A на _blank

  2. Дайте окну новое имя, т.е. open (url, new_name, features)

  3. Обходной путь может заключаться в создании IFRAME внутри вашего приложения MVC и передачи URL-адреса обратно в форму CRM, которая в конечном итоге открывает форму учетной записи.

  4. Используйте Wscript.Shell ActiveX, чтобы открыть новый процесс IE (последнее средство).

  5. Эта ссылка может помочь http://steveliles.github.io/cross_domain_inter_frame_communication_in_javascript.html

НТН

Динамика CRM - Мышление вне BOX

licensed under cc by-sa 3.0 with attribution.