Всем добрый день!
Появилась трудность с реализацией запуска процесса "Блокировка карты" по нажатию на кнопку.
Для страницы "Карты" создал замещающую страницу BankCardPagev2. Добавил в diff создание кнопки "CardBlock", прописал метод ProcCardBlock. Создал процесс UsrCardBlock, в котором создал параметр ProcParamCardId.
Может я что забыл сделать, можете подсказать, плиз.
2) Правильно я понимаю, что для реализации запуска процесса по кнопке, сам процесс достаточно начинать с простого начального события?
P.S. Кнопка на странице появилась, при нажатии на нее выдает ошибку: "ProcessModuleUtilities is not defined"
function(resources, GeneralDetails) {
return {
entitySchemaName: 'BankCard',
details: /**SCHEMA_DETAILS*/{
"BankAccountInBankCardDetailV2": {
"schemaName": "BankAccountInBankCardDetailV2",
"entitySchemaName": "BankCardBankAccount",
"filter": {
"masterColumn": "Id",
"detailColumn": "BankCard"
}
}
}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[
{
"operation": "merge",
"name": "StartDate",
"values": {
"layout": {
"column": 0,
"row": 0,
"colSpan": 12,
"rowSpan": 1
}
}
},
{
"operation": "merge",
"name": "EndDate",
"values": {
"layout": {
"column": 0,
"row": 1,
"colSpan": 12,
"rowSpan": 1
}
}
},
{
"operation": "merge",
"name": "BankCardStatus",
"values": {
"layout": {
"column": 12,
"row": 0,
"colSpan": 12,
"rowSpan": 1
}
}
},
{
"operation": "insert",
"name": "UsrBlockType",
"values": {
"layout": {
"column": 0,
"row": 2,
"colSpan": 12,
"rowSpan": 1
},
"bindTo": "UsrBlockType",
"caption": {
"bindTo": "Resources.Strings.BlockTypeCaption"
},
"textSize": 0,
"contentType": 3,
"labelConfig": {
"visible": true
},
"enabled": true
},
"parentName": "StatusGroupGridLayout",
"propertyName": "items",
"index": 3
},
{
"operation": "insert",
"name": "UsrBlockReason",
"values": {
"layout": {
"column": 12,
"row": 2,
"colSpan": 12,
"rowSpan": 1
},
"bindTo": "UsrBlockReason",
"caption": {
"bindTo": "Resources.Strings.BlockReasonCaption"
},
"textSize": 0,
"contentType": 3,
"labelConfig": {
"visible": true
},
"enabled": true
},
"parentName": "StatusGroupGridLayout",
"propertyName": "items",
"index": 4
},
{
"operation": "insert",
//"parentName": "LeftContainer",
"name": "NewButton",
"values": {
"itemType": Terrasoft.ViewItemType.BUTTON,
"style": Terrasoft.controls.ButtonEnums.style.RED,
"caption": "CardBlock",
"click": {"bindTo": "ProcCardBlock"}
}
}
]/**SCHEMA_DIFF*/,
attributes: {},
methods: {
ProcCardBlock: function() {
var activeRowId = this.get("ActiveRow");
var args = {
sysProcessName: "UsrCardBlock",
parameters :{
ProcParamCardID: activeRowId
}
};
ProcessModuleUtilities.runProcess(args.sysProcessName, args.parameters, this);
}
},
rules: {},
userCode: {}
};
});
Нравится
Добрый день.
Вам нужно в первых двух строчка :
define('BankCardPageV2', ['BankCardPageV2Resources', 'GeneralDetails'], function(resources, GeneralDetails) {
дописать ProcessModuleUtilities , это примерно выглядить должно так:
define('BankCardPageV2', ['BankCardPageV2Resources', 'GeneralDetails', 'ProcessModuleUtilities '], function(resources, GeneralDetails, ProcessModuleUtilities ) {
Роман, спасибо!
Теперь кнопка реагирует на нажатие :)
Но появляется ошибка
"При выполнении запроса возникла ошибка
статус ответа: 404 (Not Found)
url запроса: http://172.26.20.18:81/0/ServiceModel/ProcessEngineService.svc/UsrCardB…
метод: POST
данные запроса: {}"
Исходя из ошибки, предполагаю, что у меня косяк с процессом. Сейчас процесс сделал самый простой : начальное событие простое - открыть страницу редактирования - завершающее событие.
В методе ProcCardBlock объявлен параметр ProcParamCardId, такой же параметр создал в процессе и в странице редактирования передаю ID записи значение этого параметра.
Можете подсказать, что не так или чего не сделал, чтобы верно передать в процесс ID записи и он стартанул.
С уважением,
Дмитрий
В урл видно же что параметр не передался, точнее вместо айди передалось андефайнед:
?ProcParamCardID=undefined
Т.к. вы:
var activeRowId = this.get("ActiveRow");
пытаетесь получить в карточке, в карточке нет атрибута ActiveRow, если вам нужно Id записи карточки, то так и пишите
var activeRowId = this.get("Id");
Коллеги, добрый день.
Возникли трудности с переносом кнопки в блок кнопок "Сохранить", "Отменить", "Действия".
Как я понимаю, выбор контейнера в поле "parentName" зависит от типа страницы (новая или редактируемая).
Если использовать LeftContaner, то кнопка отлично уходит в верхний левый угол на новых записях.
А если использовать CombinedModeActionButtonsCardLeftContainer то кнопка распологается снизу слева на странице как новой так и редактируемой страницы.
Можете подсказать, что нужно изменить в коде, чтобы кнопка появились слева вверху вместе с кнопками "Сохранить", "Отменить", "Действия".
"operation": "insert", "parentName": "CombinedModeActionButtonsCardRightContainer", "propertyName" :"items", "name": "NewButton", "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "style": "red", "caption": {"bindTo": "Resources.Strings.CardBlockCapture"}, "click": {"bindTo": "ProcCardBlock"}, "layout": { "column": 1, "row": 6, "colSpan": 1