В MS CRM 365 версии изменился подход в работы с JS функциями.
Начиная с CRM 2011(v 5.x) основным js объектом для взаимодействия с формой был Xrm.Page в CRM 365 (v 9.x) этот способ все еще работает, однако уже стал "Deprecated". В этой статье будут записаны js методы, применяемые мной на практике сигнатуре CRM 365(v 9.x) и более ранних версиях.
Наиболее полный список JS методов можно найти на по ссылке https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/referenceПолучить значение из поля
formContext.getAttribute("[AttirubeSchemaName]").getValue(); // CRM 365:
Xrm.Page.getAttribute("[AttirubeSchemaName]").getValue(); //CRM2016:
Получить значение из поля типа Lookup
// CRM365
var lookup = new Array();
lookup = Xrm.Page.getAttribute("[AttirubeSchemaName]").getValue();
if (lookup != null)
{
var name = lookup[0].name; //название записи
var id = lookup[0].id; // id записи
var entityType = lookup[0].entityType; // название сущности
}
//CRM2016
var lookup = new Array();
lookup = Xrm.Page.getAttribute("[AttirubeSchemaName]").getValue();
if (lookup != null)
{
var name = lookup[0].name; //название записи
var id = lookup[0].id; // id записи
var entityType = lookup[0].entityType; // название сущности
}
Получить значение из поля типа OptionSetValue
formContext.getAttribute("[AttirubeSchemaName]").getValue(); //CRM 365
Xrm.Page.getAttribute("[AttirubeSchemaName]").getValue(); //CRM2016
Задать значение для поля
formContext.getAttribute("[AttirubeSchemaName]").setValue(); // CRM 365:
Xrm.Page.getAttribute("[AttirubeSchemaName]").setValue(); //CRM2016:
Задать обязательность для поля
// возможные варианты для requirementLevel
// none Необязательный для заполнения
// required Обязательный для заполнения
// recommended Рекомендован для заполнения
formContext.getAttribute("[AttirubeSchemaName]").setRequiredLevel(requirementLevel); // CRM 365:
Xrm.Page.getAttribute("[AttirubeSchemaName]").setRequiredLevel(requirementLevel); //CRM2016:
Задать значение для поля типа Lookup
formContext.getAttribute("[AttirubeSchemaName]").setValue //CRM 365
(
[{ id: recorid, name: recordname, entityType: entityname}]
);
Xrm.Page.getAttribute("[AttirubeSchemaName]").setValue //CRM2016
(
[{ id: recorid, name: recordname, entityType: entityname}]
);
//recorid: GUID записи
//recordname: текст, который будет отображаться Lookup
//entityname: Название сущности, на которую настроен Lookup
Скрыть/показать поле на форме
// в зависимости от значения параметра, который передается
// в фи-ю setVisible поле будет отображаться или скрываться
formContext.getControl("[AttirubeSchemaName]").setVisible(bool); //CRM 365
Xrm.Page.getControl("[AttirubeSchemaName]").setVisible(bool); //CRM2016
Сделать поле на форме неактивным/активным(Enable/Disable)
// в зависимости от значения параметра, который передается
// в фи-ю setVisible поле будет отображаться или скрываться
formContext.getControl("[AttirubeSchemaName]").setDisabled(bool); //CRM 365
Xrm.Page.getControl("[AttirubeSchemaName]").setDisabled(bool); //CRM2016
Тип формы
//
//0 Undefined
//1 Create
//2 Update
//3 Read Only
//4 Disabled
//6 Bulk Edit
formContext.ui.getFormType();// CRM 365
Xrm.Page.ui.getFormType(); //CRM2016:
Добавить обработчик OnChange для поля
formContext.getAttribute(arg).addOnChange(myFunction) // CRM 365:
Xrm.Page.getAttribute(arg).addOnChange(myFunction) //CRM2016:
Сохранить форму
//CRM 365
formContext.data.save(); //Сохранить
formContext.data.entity.save("saveandclose"); //Сохранить и закрыть
formContext.data.entity.save("saveandnew"); //сохранить и запустить новый
// отмена сохранения
function preventAutoSave(executionContext) {
var eventArgs = executionContext.getEventArgs();
if (eventArgs.getSaveMode() == 70) { // отменяет автосохранение
eventArgs.preventDefault(); // вызывает отмену соханения на форме
}
}
//CRM2016
Xrm.Page.data.save(); //Сохранить
Xrm.Page.data.entity.save("saveandclose"); //Сохранить и закрыть
Xrm.Page.data.entity.save("saveandnew"); //сохранить и запустить новый
Закрыть форму
formContext.ui.close();//CRM 365
Xrm.Page.ui.close();//CRM2016
ID текущей записи
formContext.data.entity.getId();//CRM 365
Xrm.Page.data.entity.getId();//CRM2016
ID текущего пользователя
//CRM 365
var userSettings = Xrm.Utility.getGlobalContext().userSettings;
userSettings.userId
//CRM2016
Xrm.Page.context.getUserId();
Получение URL CRM
//CRM 365
var globalContext = Xrm.Utility.getGlobalContext();
globalContext.getClientUrl();
//CRM2016
Xrm.Page.context.getClientUrl();
//в еще более старых версиях
Xrm.Page.context.getServerUrl();
Обновить Ribbon
formContext.ui.refreshRibbon();//CRM 365
Xrm.Page.ui.refreshRibbon();//CRM2016
Комментариев нет:
Отправить комментарий