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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.09.2013, 09:01   #1  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Ошибка в изменяемом событии поля
Доброго всем времени суток уважаемые коллеги!!

Столкнулся вот с какой проблемой:

при разработке используются скрипты на формах и многие их них отрабатывают на событиях при закрузке - или изменении полей

Так вот появляется ошибка: Ошибка в изменяемом событии поля. Поле:window Событие:Onload Ошибка:"(название функции)" - не определено

при событии изменения поля - скрипт вообще не отрабатывает.

Подскажите - в какую сторону капнуть и что можно проверить.
Старый 16.09.2013, 10:31   #2  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
1) если пишете так function name_my(){} то у вас точно синтаксическая ошибка с скобками;
2)если пишете так name_my = function(){} то у вас или вариант 1 или идет вызов функции name_my или другой до ее инициализации, актуально очень если идет деление как в Xrm.Page
Старый 16.09.2013, 10:32   #3  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
а легче всего написать слово debugger; в самом начале и пройтись пошагово по коду
Старый 16.09.2013, 13:41   #4  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Попробовал по вашему способу, ошибка точно такая же.

Попытаться смоделировать ситуацию на тестовом стенде, ошибка такая же:
Ошибка в изменяемом событии поля. Поле:window Событие:Onload Ошибка:"(название функции)" - не определено

такое ощущение что с настройками IIS что то не так

а вот что именно.
Старый 16.09.2013, 22:38   #5  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Попытаюсь объяснить что и как в деталях:

Около года назад был установлен СРМ сервер, и по техническим причинам он вышел из строя, но остались бакапы баз данных. С помощью которых был выполнен импорт организации на новый установленный сервер. Дистрибутив новый - который содержит в себе 13 UR и который возможно установить на Windows Server 2012, что в принципе и было выполнено.

С запуском самой системы проблем не возникло, все пользователи домена авторизуясь в домене подключаются к СРМ, но не работает ни один скрипт JS который на старом сервере работал.

Вот тут то собственно и уточняющий вопрос: может что то помимо самой установки сервера необходимо проверить чтоб работали скрипты?
Старый 17.09.2013, 07:17   #6  
TheMarhang is offline
TheMarhang
Участник
Аватар для TheMarhang
 
29 / 14 (1) ++
Регистрация: 02.10.2012
Адрес: Russia, Perm
Цитата:
Сообщение от Space-06 Посмотреть сообщение
Вот тут то собственно и уточняющий вопрос: может что то помимо самой установки сервера необходимо проверить чтоб работали скрипты?
Включите трассировку и выложите лог-файл
Старый 17.09.2013, 11:46   #7  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Цитата:
Сообщение от TheMarhang Посмотреть сообщение
Включите трассировку и выложите лог-файл
Вопрос а какой именно лог? При включении трассировки создаются множество файлов. Трассировку включил с помощью CrmDiagTool2011

прикладываю к сообщению файлик который генерит эта утилита
Вложения
Тип файла: zip Dynamics CRM 2011 report.zip (109.0 Кб, 59 просмотров)
Старый 18.09.2013, 16:52   #8  
Skyway is offline
Skyway
Участник
 
78 / 10 (1) +
Регистрация: 07.08.2009
Была похожая проблема с переходом на новый роллап - не работало часть JS-функций.
1. Сидите через браузер или через CRM Outlook клиент? Если второе, необходимо его обновить до той же версии роллапа.
2. Некоторые функции с 12 Rollup работают по-другому (неподдерживаемые). Попробуйте на тестовой сущности повесить на анлоад простой скрипт
function onload()
{
alert();
}
и проверить, будет ли работать. Он должен быть единственным в подключаемом веб-ресурсе.
3. Появляется ли данная ошибка, если на форме отсутствуют скрипты?
Старый 19.09.2013, 10:15   #9  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Цитата:
Сообщение от Space-06 Посмотреть сообщение
Попытаюсь объяснить что и как в деталях:

Около года назад был установлен СРМ сервер, и по техническим причинам он вышел из строя, но остались бакапы баз данных. С помощью которых был выполнен импорт организации на новый установленный сервер. Дистрибутив новый - который содержит в себе 13 UR и который возможно установить на Windows Server 2012, что в принципе и было выполнено.

С запуском самой системы проблем не возникло, все пользователи домена авторизуясь в домене подключаются к СРМ, но не работает ни один скрипт JS который на старом сервере работал.

Вот тут то собственно и уточняющий вопрос: может что то помимо самой установки сервера необходимо проверить чтоб работали скрипты?
1) Старый и новый СРМ 2011 ?
2) На старом СРМ скрипты случайно не с СРМ 4.0 ?
3) На старый СРМ скрипты случайно не переходили с СРМ 4.0 через мигрейшен тулз ?
4) Названия в функциях в библиотеках случайно не OnLoad, OnChange_название поля ?

И дайте посмотреть хоть на одну скриптовую библиотеку

Последний раз редактировалось spectr; 19.09.2013 в 10:40.
Старый 26.09.2013, 21:25   #10  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
доброго времени суток, долго не отвечал был в командировке и до разработок не доходило время.

Вообщем в простой форме на Онлоад событии простой алерт срабатывает

а не работает вот какая функция:

на Форме (контакта, звонка или любой другой сущности) необходимо получить данные родительского клиента, такие как область, город, телефон и т.д.

использую для этого функционал XrmServiceToolkit.Soap.Retrive
X++:
retrievedAccount = XrmServiceToolkit.Soap.Retrieve("account", Xrm.Page.data.entity.attributes.get("to").getValue()[0].id, ["telephone2", "address1_city", "address1_stateorprovince"]);
a = retrievedAccount.attributes["address1_city"].value;
 .. 
//далее по коду присваиваю значения нужным полям на форме
но вот тут то собственно и ошибка:

если вдруг в родительской сущности отсутствует одно из значений, необходимых для получения (не проставлен телефон или область и т.д.)
сразу же при загрузке формы, в отладчике пишет "не удалось получить значение Value объект не определен или его значение равно Null

вот тут и думаю каким образом возможно перебором определить - какое значение удалось получить а какое нет и в конечном результате на целевую сущность их вставить.

пользуюсь вот такой проверкой: if (retrievedAccount.attributes["address1_city"] !== "undefined") {a = retrievedAccount.attributes["address1_city"].value;}

и в результате все равно попадаю на эту ошибку. Из за ошибки весь скрипт с последующими функциями перестает работать. А раньше ведь точно такой же скрипт работал

Может сталкивался кто из вас коллеги - с проверкой подобной - как проверить есть ли входные данные или нет и продолжить работу если отсутствуют таковые
Старый 27.09.2013, 09:07   #11  
TheMarhang is offline
TheMarhang
Участник
Аватар для TheMarhang
 
29 / 14 (1) ++
Регистрация: 02.10.2012
Адрес: Russia, Perm
Цитата:
if (retrievedAccount.attributes["address1_city"] !== "undefined") {a = retrievedAccount.attributes["address1_city"].value;}
сразу что бросилось в глаза - "!==" опечатка тут или в коде?)
и если я правильно понимаю логику (я не разработчик, но все же) undefined - если поле вообще никогда не заполнялось, null - если оно заполнялось, но сейчас данных нет (я не утверждаю на 100%). и поэтому нужна проверка на null.
Старый 27.09.2013, 17:51   #12  
Space-06 is offline
Space-06
Участник
 
57 / 10 (1) +
Регистрация: 23.01.2013
Из положения вышел примерно таким способом:

X++:
function set_accountinfo()
{
  	var id = Xrm.Page.data.entity.attributes.get("to").getValue()[0].id;
	var cols = ["telephone2", "address1_city", "address1_stateorprovince"];
	var outcols = ["new_telephone2", "new_city", "new_province"]
	var retrievedAccount = XrmServiceToolkit.Soap.Retrieve("account", id, cols);
	var param = {};
  for (var i in cols){
  if (retrievedAccount.attributes[cols[i]]){//alert("Поле " + cols[i]);
  //param[cols[i]] = 
  Xrm.Page.data.entity.attributes.get(outcols[i]).setValue(retrievedAccount.attributes[cols[i]].value);
  }}}
Входной массив полей получаемой и запрашиваемой сущности должны быть сопоставлены по типам полей, телефон в телефон, адрес в адрес и т.д.


Спасибо всем за участие!!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: Ошибка выполнения запроса в динамическом маркетинговом списке Blog bot Dynamics CRM: Blogs 0 28.02.2013 16:11
Ошибка JavaScript "Ошибка произошла при получении даты", CRM 4.0 Буденый Dynamics CRM: Администрирование 0 16.10.2012 12:25
Ошибка при инициализации SalesOrderDetail spirius Dynamics CRM: Разработка 3 01.04.2012 17:16
Ошибка синхронизации Outlook 2007 и MS CRM 4 absurdperson Dynamics CRM: Администрирование 9 02.03.2012 10:56
Импорт данных. Ошибка превышения длины поля dbassman Dynamics CRM: Функционал 2 03.10.2010 10:58

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

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

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