Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
Передача параметров в форму
Запись от Артем Enot Грунин размещена 09.09.2009 в 15:42
Обновил(-а) Артем Enot Грунин 14.09.2009 в 12:36
Обновил(-а) Артем Enot Грунин 14.09.2009 в 12:36
Теги java script
В среднем раз в месяц на форуме задается вопрос из серии: "Мне нужно, чтобы по нажатии кнопки открывалось окно заполненное так-то". Вариантов решения предлагается масса, от подобного до "пишите свою aspx страницу" (почему не php, опять же?). Между тем, ларчик открывается довольно просто. Совсем недавно я заметил, что обновился раздел SDK URL Addressable Forms and Views. Приятным нововведением версии 4.0 является возможность передавать параметры в форму создания записи через строку запроса. Например так:
http://crm:5555/sfa/conts/edit.aspx?firstname=Иван
К сожалению, для текущей версии CRM, данный подход не работает с формами действий. Все параметры будут просто игнорироваться.
Формат передачи параметра зависит от типа передаваемого поля. Так, например, для полей Lookup, помимо идентификатора записи потребуется передавать дополнительный текстовый параметр - строку для отображения поля лукапа, а для поля типа Customer еще и typecode сущности. Словом, читайте SDK. Для удобства я обернул эти запросы в функции, которые вы можете использовать :
Пример использования:
Скрипты формы отрабатывают нормально. Атрибуты отсутствующие на форме игнорируются без ошибок. Тем не менее, если в запросе передаются неверные параметры, например, текст опции пиклиста вместо ее кода, то пользователь увидит лишь сообщение об ошибке.
http://crm:5555/sfa/conts/edit.aspx?firstname=Иван
К сожалению, для текущей версии CRM, данный подход не работает с формами действий. Все параметры будут просто игнорироваться.
Формат передачи параметра зависит от типа передаваемого поля. Так, например, для полей Lookup, помимо идентификатора записи потребуется передавать дополнительный текстовый параметр - строку для отображения поля лукапа, а для поля типа Customer еще и typecode сущности. Словом, читайте SDK. Для удобства я обернул эти запросы в функции, которые вы можете использовать :
Код:
//Text, Bool, Picklist function appVal(fieldname, value) { return fieldname + '=' + value; } // DateTime function appDate(fieldname, value) { var d = (value.getMonth() + 1) + "/" + value.getDate() + "/" + value.getFullYear(); return appVal(fieldname, d); } // Lookup function appLookup(fieldname, value, name) { return fieldname + "=" + value + "&" + fieldname + "name=" + name; } // Customer function appCustomer(fieldname, value, name, typecode) { var url = appLookup(fieldname, value, name); url += "&" + fieldname + "type=" + typecode; return url; }
Код:
var url = "http://crm:5555/sfa/conts/edit.aspx?"; url += appVal("firstname", "Нафазаил"); // text url += "&"; url += appDate("birthdate", new Date()); // date url += "&"; url += appCustomer("parentcustomerid", "{6794723D-A63B-DD11-9D00-001B7895C8E2}", "OOO Эвакуация умерших", "account"); //customer url += "&"; url += appVal("isbackofficecustomer", 1); // bit url += "&"; url += appVal("accountrolecode", 1); // picklist window.open(url);
Всего комментариев 0