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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.07.2012, 09:33   #1  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
CRM 2011, диалоги (ajax?)
товарищи!

подскажите, пожалуйста.
имеется: crm с настроенной связью с внешним веб-сервисом
нужно: сделать диалог, который бы запускался по кнопке на форме, брал бы данные с формы этой сущности, спрашивал пользователя дополнительные данные и передавал все эти данные веб-сервису.
посоветуйте, пожалуйста, чем воспользоваться? если можно, с ссылками на примеры

спасибо!
Старый 19.07.2012, 10:08   #2  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Вам нужно сделать либо ASPX страницу, либо использовать Silverlight. Трудоемкость примерно одинаковая, зависит скорее от того, с чем вы лучше знакомы.

Вот ссылка по созданию ASPX страницы, которая подключается к CRM:
http://blogs.msdn.com/b/crminthefiel...b-service.aspx
За это сообщение автора поблагодарили: mistah (1).
Старый 19.07.2012, 10:17   #3  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
griefon, благодарю!
буду разбираться
Старый 24.07.2012, 18:10   #4  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
в итоге я решил попробовать сначала через модальные диалоги и веб ресурсы, но столкнулся со следующим:

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

подскажите, пожалуйста, как правильно обратиться с родительскому окну из дочернего в срм?
пробовал не через модальные диалоги, а просто window.open и через window.opener обращаться - та же история

кучу примеров в интернете нашел, но в моем случае, они не работают, например, описанный тут метод
http://bingsoft.wordpress.com/2010/1...e-in-crm-2011/

cпасибо!
Старый 25.07.2012, 10:16   #5  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Цитата:
Сообщение от mistah Посмотреть сообщение
подскажите, пожалуйста, как правильно обратиться с родительскому окну из дочернего в срм?
пробовал не через модальные диалоги, а просто window.open и через window.opener обращаться - та же история
Обратиться к родительскому окну чтобы получить какие-то данные из него?
Железобетонный вариант - передать все что нужно в параметрах при вызове странички, либо передать только id родительской записи, а внутри странички ее "ретривить" и получать что нужно.
За это сообщение автора поблагодарили: mistah (1).
Старый 25.07.2012, 11:03   #6  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
Borisvil, благодарю!
а можно ссылку на пример?
или на моем примере:

у меня есть веб ресурс

new_page

вызываю я его так:

window.open("http://xxx/WebResources/new_page","");

и у меня есть переменная iid, как мне передать её этому вебресурсу и принять это значение вебресуром?

сам вебресурс:

X++:
<HTML><HEAD><TITLE></TITLE>
<SCRIPT type=text/javascript src="../ClientGlobalContext.js.aspx"></SCRIPT>

<SCRIPT type=text/javascript src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></SCRIPT>

<LINK rel=stylesheet type=text/css href="/_common/styles/fonts.css.aspx?lcid=1033"><LINK><LINK rel=stylesheet type=text/css href="/_common/styles/global.css.aspx?lcid=1033"><LINK><LINK rel=stylesheet type=text/css href="/_common/styles/select.css.aspx?lcid=1033"><LINK>
<META charset=utf-8></HEAD>
<BODY style="BORDER-RIGHT-WIDTH: 7px; BACKGROUND-COLOR: rgb(246,248,250); MARGIN: 0px; PADDING-LEFT: 7px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" contentEditable=true><SPAN>
<P>&nbsp;<SPAN> </P></SPAN></IMG>
<P><INPUT value=_ ="id=textfield"> 
<P>&nbsp;</P></BODY></HTML>
как, к примеру, вписать в поле textfield тот iid?
Старый 25.07.2012, 11:31   #7  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
замечание по реализации.
уже сам несколько раз сталкивался.
вы хардкодите адрес сервера. Завтра заказчик захочет подключаться по внешнему адресу и все это весело упадет.

в адресе страницы передайте параметры методом get.
window.open("http://xxx/WebResources/new_page?iid = 123456","");

на онлоаде вашей страницы получите это значение и впишите его.
__________________
Мой блог https://procrm.tv
За это сообщение автора поблагодарили: mistah (1).
Старый 25.07.2012, 11:50   #8  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Цитата:
Сообщение от mistah Посмотреть сообщение
а можно ссылку на пример?
или на моем примере:
http://ms-dynamics-crm.com.ua/2009/0...soft-crm-form/

Если вкратце, то первый параметр должен идти после знака вопрос, следующие через &.
Вызывать лучше из скрипта, который запустится по вашей кнопке, а не напрямую. Тогда и передать все что угодно сможете в параметры Как-то так:
X++:
var serverUrl = Xrm.Page.context.getServerUrl();
if (serverUrl.match(/\/$/)) {
           serverUrl = serverUrl.substring(0, serverUrl.length - 1);
        }
var emailId = window.showModalDialog(serverUrl + "/webapp?oId="+Xrm.Page.data.entity.getId()+"&oType="+type);
потом в страничке получаете их так:
X++:
string sId = Request.QueryString["oId"];
За это сообщение автора поблагодарили: mistah (1).
Старый 25.07.2012, 12:14   #9  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
А где страница aspx будет находиться?
В ISV ее нельзя размещать. это UnSupport
__________________
Мой блог https://procrm.tv
Старый 25.07.2012, 13:42   #10  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
g.Naukovych, да, спасибо, про сервер абсолютно верно подмечено

X++:
а какой конкретно синтаксис для этого, подскажите?
Старый 25.07.2012, 13:42   #11  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
Borisvil, спасибо, посмотрю!
Старый 25.07.2012, 15:41   #12  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Цитата:
Сообщение от mistah Посмотреть сообщение
g.Naukovych, да, спасибо, про сервер абсолютно верно подмечено

X++:
а какой конкретно синтаксис для этого, подскажите?
X++:
<SCRIPT type=text/javascript>

    function getQuerystring(key, default_)
    {
        if (default_ == null)
            default_=""; 
        key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
        var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
        var qs = regex.exec(window.location.href);
        if(qs == null)
            return default_;
        else
            return qs[1];
    }

window.onload = function () {
id = getQuerystring('id', null);
}
</SCRIPT>
__________________
Мой блог https://procrm.tv
За это сообщение автора поблагодарили: mistah (1).
Старый 25.07.2012, 16:50   #13  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
g.Naukovych, благодарю!


возникла следующая ситуация - передаю ссылку с параметром, при автооткрытии на онлоаде формы пишет ошибка 404
если вставить ссылку в адресную строку окна - открывается, как надо

window.open("url","");
url, по сути, равен "http://xxx/WebResources/new_page?iid = 123456"

почему так может быть?
Миниатюры
Нажмите на изображение для увеличения
Название: ччч.png
Просмотров: 375
Размер:	81.0 Кб
ID:	7824  
Старый 26.07.2012, 13:04   #14  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
ASPX в CRM2011 не поддерживается и от того приходится мудрить при его использовании, я в соседней ветке как раз вчера писал как.
За это сообщение автора поблагодарили: mistah (1).
Старый 26.07.2012, 13:54   #15  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Цитата:
Сообщение от mistah Посмотреть сообщение
g.Naukovych, благодарю!


возникла следующая ситуация - передаю ссылку с параметром, при автооткрытии на онлоаде формы пишет ошибка 404
если вставить ссылку в адресную строку окна - открывается, как надо

window.open("url","");
url, по сути, равен "http://xxx/WebResources/new_page?iid = 123456"

почему так может быть?

как Вы положили aspx в веб-ресуры?
Ресурс это скрипт, стиль html, страница .. aspx там нет
__________________
Мой блог https://procrm.tv
За это сообщение автора поблагодарили: mistah (1).
Старый 09.08.2012, 11:09   #16  
mistah is offline
mistah
Участник
 
169 / 13 (1) ++
Регистрация: 11.11.2011
Адрес: Коньково
Цитата:
как Вы положили aspx в веб-ресуры?
Ресурс это скрипт, стиль html, страница .. aspx там нет
нет, я веб-ресурс и вызываю же)

с этим я разобрался, но теперь следующая проблема:

я из ресурса пытаюсь soap-запросом получить данные и получаю ошибку. с формы любой сущности запрос отрабатывает, как надо.

подскажите, пожалуйста, в чем дело может быть?

функция из html-ресурса, ей я передаю id, хочу получить атрибут сущности с этим id

X++:
  function parsedatabyid(id)
{
alert(id);
var mass = document.createElement("p");
mass.innerText = id;
document.body.appendChild(mass);
//var CrmURL = "http://" + document.location.hostname + ":" + document.location.port;
//alert(CrmUrl);

//var authenticationHeader = GenerateAuthenticationHeader();
// Prepare the SOAP message.
var xml = "<?xml version='1.0' encoding='utf-8'?>"+ 
"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'"+
" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"+
" xmlns:xsd='http://www.w3.org/2001/XMLSchema'>"+
//authenticationHeader+ 
"<soap:Body>"+ 
"<Retrieve xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ 
"<entityName>new_pp321</entityName>"+ 
"<id>"+id+"</id>"+ 
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+ 
"<q1:Attributes>"+ 
"<q1:Attribute>new_name</q1:Attribute>"+ 
"</q1:Attributes>"+ 
"</columnSet>"+ 
"</Retrieve>"+ 
"</soap:Body>"+ 
"</soap:Envelope>";
// Prepare the xmlHttpObject and send the request.
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "http://vccrm-1.xxx:8888/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Retrieve");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Capture the result.
var resultXml = xHReq.responseXML;
// Check for errors.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0)
{
 var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
 alert(msg +"e");
}
// Display the retrieved value.
else
{
resu = resultXml.selectSingleNode("//q1:new_name").nodeTypedValue;
alert(resu);
}
}

ошибка вылетает на строке xHReq.send(xml);
Изображения
 
Старый 09.08.2012, 16:23   #17  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Цитата:
Сообщение от mistah Посмотреть сообщение
я из ресурса пытаюсь soap-запросом получить данные и получаю ошибку. с формы любой сущности запрос отрабатывает, как надо.

подскажите, пожалуйста, в чем дело может быть?
А зачем SOAP в ASPX?
Вы можете спокойно писать на C# и использовать все, что дают стандартные сборки SDK - retrieve, entity и т.д.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 8 Blog bot Dynamics CRM: Blogs 1 30.04.2016 10:26
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

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

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

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