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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.02.2009, 14:27   #1  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
? Как передать параметр в окно создания сущности
Всем привет.

Для воплощения одной безумной идеи нужно из относительно левой страницы передать параметр в окно создания сущности CRM, чтобы скриптом на этом окошке его поймать. Подскажите, плз, как это сделать?
__________________
С уважением,
Tony Green
Старый 17.02.2009, 14:36   #2  
IgorF is offline
IgorF
Учаснег
Аватар для IgorF
Ex AND Project
Лучший по профессии 2011
Лучший по профессии 2009
 
307 / 37 (2) +++
Регистрация: 23.07.2007
Адрес: Поребрик сити
Через параметр адресной строки..а потом onload его выловить.. Подходит?
__________________
http://about.me/fedorovigor
Старый 17.02.2009, 14:44   #3  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
Вполне. Если приведете еще на скорую руку примерчик на jscript, то вообще супер, респект и уважуха
__________________
С уважением,
Tony Green
Старый 17.02.2009, 15:13   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Lightbulb
Цитата:
Сообщение от Tony Green Посмотреть сообщение
Вполне. Если приведете еще на скорую руку примерчик на jscript, то вообще супер, респект и уважуха
Код:
var ParameterValue = '%значение параметра%';
var url='%ссылка открываемого онка%?Parameter=' + ParameterValue;
window.open(url);
Примерно так.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 17.02.2009, 15:19   #5  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
Простите за назойливость, но меня больше всего на свете сейчас интересует та часть скрипта, которая выковыривает параметр из адресной строки
__________________
С уважением,
Tony Green
Старый 17.02.2009, 15:27   #6  
IgorF is offline
IgorF
Учаснег
Аватар для IgorF
Ex AND Project
Лучший по профессии 2011
Лучший по профессии 2009
 
307 / 37 (2) +++
Регистрация: 23.07.2007
Адрес: Поребрик сити
можно так .. http://www.google.com/search?hl=ru&q...1%81%D0%BA&lr=
__________________
http://about.me/fedorovigor
Старый 17.02.2009, 15:32   #7  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
вот скрипт "расщипляет" строку адреса, вытаскивает из нее параметры, заносит в массив и печатает

X++:
var _GET_Keys; // Пока что пустой массив
var _GET_Values;
var _GET_Count = 0; // элементов пока нет

  get = new String(window.location);
  x = get.indexOf('?');
  if(x!=-1)
  {

    l = get.length;
    get = get.substr(x+1, l-x);

    l = get.split('&');
    x = 0;
    _GET_Count  = l.length;
    _GET_Keys   = new Array(_GET_Count);
    _GET_Values = new Array(_GET_Count);

    for(i in l)
    {
      get = l[i].split('=');
      _GET_Keys[x] = get[0];
      _GET_Values[x] = get[1];


      document.write("<p>" + _GET_Keys[x] +' '+ _GET_Values[x] + "<p>");

      x++;

    }

  }
  else ;
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 17.02.2009, 15:33   #8  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
Спасибо всем! То что нужно
__________________
С уважением,
Tony Green
Старый 19.02.2009, 09:04   #9  
Alexandr Zhuravlev is offline
Alexandr Zhuravlev
Участник
 
16 / 10 (1) +
Регистрация: 10.11.2008
Адрес: Питер
Мои 5 копеек
X++:
                var s = window.location.search;
                var re = /([^&?=]+)=([^&]*)?/g;
                var Query = new Object();
                var arr;
                while(arr = re.exec(s)) {
                    Query[ arr[1] ] = arr[2];
                }
 
                for(a in Query) {
                    document.write(a  + "=" + Query[a] + "<br>");
                }
__________________
"Hello World!" 17 errors, 31 warnings
Старый 19.02.2009, 12:17   #10  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
?
Обнаружился очень неприятный подвох: когда я пытаюсь передать параметр в форму создания сущности через очередной параметр строки, то CRM страшно ругается Типа такого:

Error Description:
CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from .

Error Details:
Выдано исключение типа "System.Web.HttpUnhandledException".

Full Stack:
[InvalidOperationException: CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx
The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from .]
в Microsoft.Crm.Application.ParameterFilter.ValidateParameter(Page page, ArrayList parameterCollection, String key, String value, String collectionName, EntityType pageEntityType)
в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking)
в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType)
в Microsoft.Crm.Application.Controls.AppPage.ValidatePageParameters()
в Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e)
в System.Web.UI.Control.InitRecursive(Control namingContainer)
в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

[HttpUnhandledException: Выдано исключение типа "System.Web.HttpUnhandledException".]
в System.Web.UI.Page.HandleError(Exception e)
в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
в System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
в System.Web.UI.Page.ProcessRequest()
в System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
в System.Web.UI.Page.ProcessRequest(HttpContext context)
в ASP.vkpmdev_userdefined_edit_aspx.ProcessRequest(HttpContext context)
в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Помогите передать параметр другим способом или обойти эти проверки плз
__________________
С уважением,
Tony Green
Старый 19.02.2009, 12:32   #11  
Артем 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
По мне так эту задачу проще через dom решать. Это на кастом страницу можно что угодно в параметрах пеердавать, у CRM вполне разумные ограничения. Вот пример того, как из одного окна дотянуться до другого:
Client Side Scripting - Accessing properties of the parent form
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Tony Green (1).
Старый 19.02.2009, 12:37   #12  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Lightbulb
Цитата:
Сообщение от Tony Green Посмотреть сообщение
Обнаружился очень неприятный подвох: когда я пытаюсь передать параметр в форму создания сущности через очередной параметр строки, то CRM страшно ругается Типа такого:

Error Description:
CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from .

Error Details:
Выдано исключение типа "System.Web.HttpUnhandledException".

Full Stack:
[InvalidOperationException: CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx
The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from .]
в Microsoft.Crm.Application.ParameterFilter.ValidateParameter(Page page, ArrayList parameterCollection, String key, String value, String collectionName, EntityType pageEntityType)
в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking)
в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType)
в Microsoft.Crm.Application.Controls.AppPage.ValidatePageParameters()
в Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e)
в System.Web.UI.Control.InitRecursive(Control namingContainer)
в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

[HttpUnhandledException: Выдано исключение типа "System.Web.HttpUnhandledException".]
в System.Web.UI.Page.HandleError(Exception e)
в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
в System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
в System.Web.UI.Page.ProcessRequest()
в System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
в System.Web.UI.Page.ProcessRequest(HttpContext context)
в ASP.vkpmdev_userdefined_edit_aspx.ProcessRequest(HttpContext context)
в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Помогите передать параметр другим способом или обойти эти проверки плз
Создал такой микросайт для того, чтобы показать, как можно передать. К CRM, думаю, сами сможете привинтить.

Первая страница (родительская из которой выполняется вызов

PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" >
<
head>
    <
title>Untitled Page</title>
<
script language="javascript" type="text/javascript">
// <!CDATA[

var ParamVal "Parent Test";

function 
Button1_onclick() 
{
    
window.open('Child.htm');
}

// ]]>
</script>
</head>
<body>
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />

</body>
</html> 
Вторая страница (дочерняя, вызываемая):
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" >
<
head>
    <
title>Untitled Page</title>
    <
script language="javascript" type="text/javascript">
        function 
loading()
        {
            
alert(window.opener.ParamVal);
        }
    
</script>
</head>
<body onload="loading();">

</body>
</html> 
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Tony Green (1).
Старый 19.02.2009, 13:59   #13  
Alexandr Zhuravlev is offline
Alexandr Zhuravlev
Участник
 
16 / 10 (1) +
Регистрация: 10.11.2008
Адрес: Питер
В CRM 4.0 для каждой страницы в атрибутах класса страницы жестко прописано какие параметры она может получать. Поэтому просто добавить свой не выйдет.

Говорят есть возможность проверку отключать http://blogs.msdn.com/rextang/archiv...4/8962549.aspx

Я не пробовал - мне повезло в форму среди прочих шел "ненужный" параметр, который не использовался. В него я вставил то, что мне нужно было.
__________________
"Hello World!" 17 errors, 31 warnings
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значение поля одной сущности при обработке формы другой сущности zhenek Dynamics CRM: Разработка 25 05.07.2011 16:19
Присвоение одного атрибута сущности значения другого атрибута связанной сущности vital.mih Dynamics CRM: Функционал 38 08.09.2010 10:53
Как создать экземпляр кастомной сущности через SOAP? Tony Green Dynamics CRM: Разработка 7 27.02.2009 08:37
Создание объекта сущности из другого объекта! SnSS Dynamics CRM: Разработка 5 29.05.2008 13:38
Каким образом самопальный лукап привязывается к сущности? tatra Dynamics CRM: Разработка 4 25.09.2007 12:58

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

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

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