AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2012, 17:40   #1  
kovalsky is offline
kovalsky
Участник
 
4 / 10 (1) +
Регистрация: 28.03.2012
Форма CRM 2011 внутри IFrame
Коллеги, не сталкивался ли кто-нибудь с задачей отображения формы CRM 2011 внутри кастомной web-страницы? Для конкретики предположим, что имеется web-ресурс c название "new_Page" в виде html страницы, внутри которой располагается iframe с некой формой CRM. При таком подходе ribbon-панель формы не отображается.

В crm 4.0 подобных проблем не было, ввиду отстутствия самого рибона.
Старый 28.03.2012, 23:16   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Приведите, пожалуйста, код вашего ресурса. В SDK есть упоминание о том, что если URL будет оканчиваться на "/", то риббон не будет отображаться. Правда это касается только CRM Online.
Цитата:
Trim Trailing Forward Slash Character with Microsoft Dynamics CRM Online

When you use the Xrm.Page.context.getServerUrl method to retrieve the organization root URL the string returned by Microsoft Dynamics CRM Online includes a trailing forward slash character. If this trailing forward slash is not removed, the ribbon will not display. You should remove this character so that you can consistently append the rest of the URL to the organization root URL
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 29.03.2012, 10:00   #3  
kovalsky is offline
kovalsky
Участник
 
4 / 10 (1) +
Регистрация: 28.03.2012
Спасибо за ответ. Да, я тоже видел эту рекомендацию, но судя по всему, проблема не в ней.

Вот пример ресурса с обозначенной проблемой:
Код:
<HTML><HEAD>
<SCRIPT language=JScript>
      function openCrmPage() {
          var iframe = document.getElementById('crm-content-iframe');
          iframe.src = "http://<host>/<org>/main.aspx?etc=1&extraqs=%3f_gridType%3d1%26etc%3d1%26id%3d%257bE99AE97C-2F68-E111-A75E-00155D011502%257d%26rskey%3d413117157&pagetype=entityrecord";
      }

  </SCRIPT>

<META charset=utf-8></HEAD>
<BODY style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; HEIGHT: 100%; PADDING-TOP: 0px" contentEditable=true onload=openCrmPage()><IFRAME style="WIDTH: 100%; HEIGHT: 100%" id=crm-content-iframe></IFRAME></BODY></HTML>
То же самое происходит и в ситуации, когда в iframe подставляем главную страницу (http://<host>/<org>/main.aspx).

Заметил еще одну особенность: если к веб-ресурсу обращаемся по имени машины, а в iframe прописываем ссылку, например, по "localhost" ribbon панель отображается. Похоже это как-то связано с тем, что в этом случае ссылки на объекты window друг друга не доступны - страницы в разных доменах. Но это конечно не выход из ситуации.

И не совсем понятно, как к этому относиться: Microsoft намеренно не хочет, чтобы страницы CRM отображались в iFrame? Но тогда почему такая странная реализация - не грузится ribbon. Да и вообще при наличии большого количества различных систем в компании невозможность отобразить окно бизнес-приложения в другой ИС - довольно странное ограничение. Либо все же эту проблему можно как-то обойти.
Старый 29.03.2012, 10:36   #4  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Может Вам в таком случае ссылку в iframe генерировать в зависимости от того, что у Вас сейчас в адресной строке броузера. ЧТобы всегда быть в одном домене. У меня была ситуация когда обращения из localhost не работали, т.к. ссылка содержала имя машины и наоборот.
Ваш текущий URL находится в location.host Из него можно получить имя сервера, протокол, порт, огранизацию. Если распарсить.
__________________
Мой блог https://procrm.tv
Старый 29.03.2012, 12:42   #5  
kovalsky is offline
kovalsky
Участник
 
4 / 10 (1) +
Регистрация: 28.03.2012
А в этом как раз и заключается проблема: на реальной системе ссылку я генерю из window.location.protocol, window.location.host. И когда они оказываются в одном домене, ribbon не отображается, а отображается, когда страница и CRM в разных доменах. В этом случае окно CRM себя ведет себя так, как будто оно загружено не в iframe (связываю я это с недоступностью объектной модели родительского окна). Но в этом случае возникают проблемы с вызовом функций окна CRM по понятным причинам. Надеялся, что кто-нибудь сталкивался с подобной проблемой.

Выход конечно есть - скрывать область риббона и в кастомной странице по сути дублировать функционал кнопок риббона - но это конечно не самое эффективное решение.
Старый 29.03.2012, 15:23   #6  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Попробуйте в конце URL добавить &extraqs=?
Старый 29.03.2012, 18:00   #7  
kovalsky is offline
kovalsky
Участник
 
4 / 10 (1) +
Регистрация: 28.03.2012
К сожалению, не помогло
Старый 30.03.2012, 14:28   #8  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
Попробуйтк заполнит ваш iframe вот таким линком.
http://<SERVER>:<PORT>/<ORAGNIZATION>/userdefined/edit.aspx?etc=<ETC>&id=<ID>&pagemode=iframe#
Нужно подставить параметры для вашей сущности.
__________________
Читайте SDK!!!
Старый 06.06.2012, 11:08   #9  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Angry
У меня та же проблема
Кто-нибудь знает решение?

Ссылка типа /userdefined/edit.aspx не годиться, так как отображает одну запись, а не список.
Старый 06.06.2012, 11:56   #10  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Получается так что если сделать отдельную HTML-страницу (например веб-ресурс), на нем разместить IFRAME и попытаться в нем вывести страницу со списком из CRM то эта страница будет без риббона. Точно также она будет без него если вместо IFRAME переопределить содержимое HTML-страницы с помощью AJAX. Все работает, но риббона нет. Этого я вообще не понимаю...
Старый 06.06.2012, 12:05   #11  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
А играться с параметром &pagemode=iframe не пробовали?
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 7 Blog bot Dynamics CRM: Blogs 0 27.03.2012 02:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 4 Blog bot Dynamics CRM: Blogs 0 24.09.2011 01:16
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM 2011 ~ Online Test Drive Guide Blog bot Dynamics CRM: Blogs 0 05.08.2011 20:13
Все о Microsoft Dynamics CRM: Как установить Microsoft Dynamics CRM 2011 Beta Blog bot Dynamics CRM: Blogs 0 31.10.2010 15:08
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:02.