Добрый день всем !
Посоветуйте, пожалуйста, есть ли возможность для своего пакета создать набор параметров сеанса, который будет инициализироваться при авторизации пользователя. Чтобы этот набор можно было читать на клиенте. Что-то вроде глобальных переменных как Terrasoft.SysValue.CURRENT_USER.value.
В моей задаче по интеграции при нажатии на кнопку, я формирую строку запроса в зависимости от двух системных настроек и данных о пользователе, для хранения которых я добавил раздел. Изучаю BPMOnline недавно, поэтому работающий код получается такой, что я запускаю три запроса подряд, хочется оптимизировать.
Привожу отрывок кода, кот. выполняется при нажатии на кнопку на форме записи Opportunity:
this.Terrasoft.SysSettings.querySysSettingsItem("SAMServerURL", function(_SAMServerUrl) {
SAMServerUrl = _SAMServerUrl;
}, this);
this.Terrasoft.SysSettings.querySysSettingsItem("SAMServerOrganizationID", function(_OrgID) {
OrganizationID = _OrgID;
}, this);
var UserName = "";
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "G2MHGroup"
});
esq.addColumn("G2FirstName", "FirstName");
esq.addColumn("G2BPMUser", "BPMUser");
esq.filters.add("G2BPMUser", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "G2BPMUser", Terrasoft.SysValue.CURRENT_USER.value));
esq.getEntityCollection(function (result) {
if (!result.success) {
this.showInformationDialog("Ошибка запроса данных схемы G2MHGroup");
return;
}
result.collection.each(function (item) {
UserName = item.get("FirstName");
ReadOnlyFlag = "false";
RequestString = SAMServerUrl + "ShowSheet.aspx?OrgID="+OrganizationID+"&Popup=Y&User="+UserName+"&Product=Bluesheet%20&ProductKey="+activeRow+"&ReadOnly="+ReadOnlyFlag+"","Blue Sheet"
var str = "width=1003, height=674, scrollbars=yes, status=0, menubar=no, resizable=yes";
window.open(RequestString, str);
});
}, this);
Хочется сделать один запрос к серверу чтобы прочитать все что нужно. И его можно сделать один раз при авторизации а не каждый раз при нажатии на кнопку.
Спасибо !
Нравится
Михаил, здравствуйте!
Начиная с версии 7.11.3, в приложении появился файловый контент
(есть статья на академии), там имеется механизм bootstraps файлов, это файлы код которых выполняется с момента загрузки JS ядра Terrasoft, но до момента загрузки конфигурации, там можно выполнить запрос в базу данных и сохранить результаты в глобальную переменную в среде JS.
Если версия более старая, то можно определить свой метод в схеме и задействовать механизм ленивой инициализации
(с кешированием в глобальной переменной в среде JS). Информацию по реализации ленивой инициализации, можно найти в интернете.
Также можно использовать механизм кеширования.
Спасибо большое ! У меня версия 7.11.1, попробую кеширование.