Добро пожаловать в мой блог! Изначально он не задумывался как блог 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




