Здравствуйте! Возникла следующая задача: есть БП, в нём выполняется шарпный код, по таймеру, и при завершении процесса, в параметры этого процесса, записываются значения, и мне необходимо после выполнения этого БП, на клиенте анализировать эти параметры и выводить соответствующие информационные уведомления. Но я чего-то не пойму как передать в callback, выполнения БП, эти самые параметры?
Нравится
Здравствуйте! Попробуйте передавать по каналу web-socket
Код на стороне БП
var userConnection = Get<UserConnection>("UserConnection");
var messageToUser = Get<string>("AbMessageToUser");
Terrasoft.Configuration.MsgChannelUtilities.PostMessage(userConnection, "AbCreatingSmsAudienceProcess", messageToUser);
return true;На клиенте следующий код
define("ContactSectionV2", [], function() {
return {
entitySchemaName: "Contact",
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
methods: {
init: function () {
this.callParent(arguments);
this.subscriptionFunction();
},
subscriptionFunction: function() {
Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE,
this.onAbCreatingSmsAudienceProcessMessage, this);
},
onAbCreatingSmsAudienceProcessMessage: function(scope, message) {
if (!message || message.Header.Sender !== "AbCreatingSmsAudienceProcess") {
return;
}
var message2 = message.Body;
if (!this.Ext.isEmpty(message2)) {
this.Terrasoft.showInformation(message2);
}
}
},
messages: {}
};
});
Если процесс живёт сам по себе, запускается по таймеру, то в момент его завершения никакого клиента с открытым браузером может и не быть. В таком случае результаты процесса нужно писать в базу, в объекта какого-то справочника или детали, а в клиентской логике оттуда вычитывать результаты последнего завершённого запуска.