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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.11.2012, 15:26   #1  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
extraqs и JQuery+JSON2 на OnLoad
Стоит такая задача:
1) с CRM открываем внешний сайт передаем на него параметры в url-строке (GET)
2) выполняем действия на сайте, получаем нужные данные которые нужно передать на форму создания нужной сушности

Что делаю:
1) все просто window.open и не парюсь
2) собираю нужные данные и создаю
Код:
url = http://наш crm/main.aspx?etc=код сущности&pagetype=entityrecord&extraqs= а здесь поля и их значения
Для примера:
Код:
/main.aspx?etn=account&extraqs=name%3DNew%20Account&pagetype=entityrecord
Все делал по SDK http://msdn.microsoft.com/en-us/library/gg334375.aspx

Так вот если на открытой форме есть ajax запрос с типом json (всеми любимый REST запрос), то он "крашится" в jquery и выдает ошибку ajax syntax error json.parse

Если передаю пустой &extraqs= то все норм работает.

В чем может быть проблема? Уже даже не знаю где искать.
И можно ли как-то с сайта (другой домен) вызвать форму CRM на создания и предзаполнить ей поля ?
Старый 29.11.2012, 15:31   #2  
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
Цитата:
Сообщение от spectr Посмотреть сообщение
Стоит такая задача:
1) с CRM открываем внешний сайт передаем на него параметры в url-строке (GET)
2) выполняем действия на сайте, получаем нужные данные которые нужно передать на форму создания нужной сушности

Что делаю:
1) все просто window.open и не парюсь
2) собираю нужные данные и создаю
Код:
url = http://наш crm/main.aspx?etc=код сущности&pagetype=entityrecord&extraqs= а здесь поля и их значения
Для примера:
Код:
/main.aspx?etn=account&extraqs=name%3DNew%20Account&pagetype=entityrecord
Все делал по SDK http://msdn.microsoft.com/en-us/library/gg334375.aspx

Так вот если на открытой форме есть ajax запрос с типом json (всеми любимый REST запрос), то он "крашится" в jquery и выдает ошибку ajax syntax error json.parse

Если передаю пустой &extraqs= то все норм работает.

В чем может быть проблема? Уже даже не знаю где искать.
И можно ли как-то с сайта (другой домен) вызвать форму CRM на создания и предзаполнить ей поля ?
Сталкивались с такой проблемой и решить её не смогли. По сути проблема возникает только если в в строку предзаполнения передаются русские символы. Как только уберёте русские символы всё заработает. Если так же найдте решение проблемы - родина вас не забудет.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: spectr (1).
Старый 29.11.2012, 15:48   #3  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Цитата:
Сообщение от a33ik Посмотреть сообщение
Сталкивались с такой проблемой и решить её не смогли. По сути проблема возникает только если в в строку предзаполнения передаются русские символы. Как только уберёте русские символы всё заработает. Если так же найдте решение проблемы - родина вас не забудет.
Еще интересный факт, если есть больше одной формы, то после краша на первой при переходе на вторую все отрабатывает отлично и поля тоже предзаполнены.

За англ. символы спасибо, пока вижу решение с использованием перекодировщика "кириллица-латиница" и обратно (Бред но что делать)
Старый 29.11.2012, 16:01   #4  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Цитата:
Сообщение от spectr Посмотреть сообщение
Код:
extraqs= а здесь поля и их значения
Использовать что-то вроде encodeURIComponent(str) и encodeURI(str). не пробовали?
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
За это сообщение автора поблагодарили: spectr (-1).
Старый 29.11.2012, 16:08   #5  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Цитата:
Сообщение от slivka_83 Посмотреть сообщение
Использовать что-то вроде encodeURIComponent(str) и encodeURI(str). не пробовали?
Ггг ну это уже смешно. Если я дал ссылку на мсдн где написано:
Цитата:
When you open a new form by using the URL address, you can include arguments in the extraqs parameter to set field values. The following requirements must be met:

You must encode the parameters passed in the extraqs parameter. To encode the parameters, use encodeURIComponent.

The names of the query string arguments must match or include the names of attributes for the entity.

The values passed must be valid.

The value cannot be a script.
Старый 29.11.2012, 16:39   #6  
Артем 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
Андрей, я ж тебе присылал уже ссылку на функции кодирования-декодирования: http://www.w3schools.com/jsref/jsref_obj_global.asp
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 29.11.2012, 16:51   #7  
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
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Андрей, я ж тебе присылал уже ссылку на функции кодирования-декодирования: http://www.w3schools.com/jsref/jsref_obj_global.asp
Пробовали. Результат - всё равно не работает.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.11.2012, 16:53   #8  
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
Цитата:
Сообщение от spectr Посмотреть сообщение
Еще интересный факт, если есть больше одной формы, то после краша на первой при переходе на вторую все отрабатывает отлично и поля тоже предзаполнены.

За англ. символы спасибо, пока вижу решение с использованием перекодировщика "кириллица-латиница" и обратно (Бред но что делать)
Если у вас всё крутится в одном домене сайта, то можно предзаполнять поля при помощи JS через

window.top.opener.getElementById('contentIFrame').contentWindow.Xrm.Page.getAttribute()....

Если в коде ошибся - не серчайте, но надеюсь идея понятна.

UPD. Перечитал, что у вас внешний сайт. Не сработает, к сожалению...
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 29.11.2012 в 16:56.
Старый 29.11.2012, 17:17   #9  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев

Еще одна интересная вещь если делаю двойное encodeURIComponent:
Код:
extraqs=encodeURIComponent("new_param="+encodeURIComponent("что там"));
То в поле на форме получаю "что там" а не %D1%87%D1%82%D0%BE%20%D1%82%D0%B0%D0%BC

UPD.
А вот 3 уже катит:
Код:
extraqs=encodeURIComponent("new_param="+encodeURIComponent(encodeURIComponent("что там")));
Тем самым чтобы не реализовывать перекодировщик "кириллица-латиница" можно сделать так и на OnLoad написать скрипт который сделает decodeURIComponent

Последний раз редактировалось spectr; 29.11.2012 в 17:33.
За это сообщение автора поблагодарили: a33ik (5).
Старый 29.11.2012, 17:38   #10  
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
Жестяка. Респект и уважуха.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
XmlHttpRequest onLoad: ошибка выполнения для некоторых пользователей spirius Dynamics CRM: Разработка 2 04.09.2012 13:25
mscrmblog: jQuery 1.4.2 Visual Cheet Sheet Blog bot Dynamics CRM: Blogs 0 14.07.2010 07:07
CRM DE LA CREME! Some more useful javascripts for MS CRM Blog bot Dynamics CRM: Blogs 0 04.05.2010 11:05
Объединение двух скриптов на одном событие OnLoad Alberto Farinacci Dynamics CRM: Разработка 2 04.08.2009 20:35
Не вызывается OnLoad() heon Dynamics CRM: Разработка 3 23.09.2008 22:22

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

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

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