Добрый день всем !
Посоветуйте, пожалуйста, есть ли возможность для своего пакета создать набор параметров сеанса, который будет инициализироваться при авторизации пользователя. Чтобы этот набор можно было читать на клиенте. Что-то вроде глобальных переменных как 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);
Хочется сделать один запрос к серверу чтобы прочитать все что нужно. И его можно сделать один раз при авторизации а не каждый раз при нажатии на кнопку.
Спасибо !