Как обновить деталь в мобильном приложении, если изменения были сделаны на бэке?
Доброго дня!
Возникла следующая ситуация...
В мобильном приложении за невозможностью сформировать печатную форму, был реализован механизм ее сохранения в деталь Файлы и ссылки. Для этого был добавлен пункт в меню Действия, по нажатию на который запускается на бэкенде веб-сервис, который формирует docx-файл и сохраняет его в деталь Файлы и ссылки.
Проблема в том, что сейчас, чтобы увидеть этот прикрепленный файл, приходится релогиниться в приложении. Как обновить деталь, чтобы подтянулись актуальные данные из базы?
Сервис возвращает коллбэк после своей работы. Оттуда в идеале нужно вызвать какой-то метод для обновления, но все это происходит в схеме этого самого действия, которое было добавлено в меню действий. Там доступна запись Активности (этот функционал реализуется в активностях), из которой было совершено действие по формированию ПФ.
Ниже привожу фрагмент кода для наглядности
Ext.define("Terrasoft.ActionContactNote", { extend: "Terrasoft.ActionBase", config: { useMask: false, title: "MobileActionContactNoteTitle", iconCls: "atc-action-contact-note" }, execute: function(record, config) { this.callParent(arguments); var serviceName = "AtcPrintablesAttachmentService"; var methodName = "Attach"; Terrasoft.ServiceHelper.issueRequest({ serviceName: serviceName, methodName: methodName, success: function(response) { // Здесь необходимо обновить деталь "Файлы и ссылки" }, failure: function(response) { Terrasoft.MessageBox.showMessage("Error in webservice"); }, scope: this }); this.executionEnd(true); } });
Нравится
Есть похожее дополнение для бизнес-процессов
https://marketplace.creatio.com/template/refresh-active-page-process-el…
Здраствуйте,
Можно попробовать добавить следующий код в тело экшена:
var embeddedDetailId = Terrasoft.util.getColumnSetId(record.modelName, "detailName", pageConfig.viewMode);
var embeddedDetail = Ext.getCmp(embeddedDetailId);
embeddedDetail.setIsCollapsed(false);
var f = CaseFile.create({
Case: record,
Name: "xxx"
});
f.phantom = false;
embeddedDetail.addRecord(f);