Добрый день, коллеги. Необходимо добавить кнопку на панель визирования (помимо approve и reject).

Как я заметил данная панель геренируется по модулю ApprovalDashboardItemViewModel, но модули замещать нельзя. Как можно выкрутиться из такой ситуации? Кто-нибудь сталкивался с такой необходимостью?

Нравится

1 комментарий

Замещать как и расширять модули можно, если делать это правильно.
Вот пример замещения модуля BaseCommunicationViewModel.
Создаем новый модуль, в данном случае будем замещать (override, можно использовать расширение extend(вместо override заменить)). Затем, где нужно, вызываете реализованный вами модуль.
Например в детали: 
define("AppFormCommunicationDetail", ["ScBaseCommunicationViewModel"],

Реализация модуля:

define("ScBaseCommunicationViewModel", ["BaseCommunicationViewModel"],
function() {
	Ext.define("Terrasoft.ScBaseCommunicationViewModel", {
		override: "Terrasoft.BaseCommunicationViewModel",
		alternateClassName: "Terrasoft.ScBaseCommunicationViewModel",
		getLinkUrl: function(value) {
			//нужная реализация метода
		}
	});
	return Terrasoft.ScBaseCommunicationViewModel;
});

 

Показать все комментарии

Добрый день, коллеги.

В кейсе раздела на каждом этапе присутствует виза, положительный ответ на которую переводит запись на следующую стадию. После перехода на вторую стадию другому пользователю приходит виза. Также на этой стадии в бизнес-правилах поле «Примечание» становится обязательным, однако если не заполнить это поле и утвердить визу – ошибок не произойдет, стадия перейдет на 3-ью, запись сохранится, процесс согласно кейсы пойдет дальше.

 

 

Такой вопрос – как запретить утверждение визы, если необходимые поля не заполнены?

P.S. Поле примечание выбрано как пример, в реальном процессе на второй стадии выбирается пользователь, виза которому пойдет на третьей стадии. Но так как пользователь не выбран, а запись перешла на третью стадию - виза уходит в никуда.

Нравится

1 комментарий
Лучший ответ

Добрый день.

Недавно подобная проблема обсуждалась в этом посте.

Добрый день.

Недавно подобная проблема обсуждалась в этом посте.

Показать все комментарии

Добрый день, коллеги.

Подскажите пожалуйста, как на странице карточки отловить нажатие на кнопки Утвердить/Отклонить визы (на ActionsDashboardContainer, не детали)? Дело в том, что нужно запретить пользователю утверждать визу без сохранения карточки.

Нравится

3 комментария

Логика этих кнопок реализована в схеме VisaDetailV2 в функциях, которые так и называются approve и reject:

/**
 * @inheritdoc Terrasoft.BaseGridDetailV2#addRecordOperationsMenuItems
 * @override
 */
addRecordOperationsMenuItems: function(toolsButtonMenu) {
	this.callParent(arguments);
	toolsButtonMenu.addItem(this.getButtonMenuItem({
		Caption: {bindTo: "Resources.Strings.Approve"},
		Click: {bindTo: "approve"},
		Enabled: {bindTo: "getEditRecordButtonEnabled"},
		ImageConfig: this.get("Resources.Images.ApproveImage")
	}), 0);
	toolsButtonMenu.addItem(this.getButtonMenuItem({
		Caption: {bindTo: "Resources.Strings.Reject"},
		Click: {bindTo: "reject"},
		Enabled: {bindTo: "getEditRecordButtonEnabled"},
		ImageConfig: this.get("Resources.Images.RejectImage")
	}), 1);
 
.....
 
/**
 * Approval of the selected record.
 * @private
 */
approve: function() {
	var activeRow = this.getActiveRow();
	if (!this.checkState(activeRow)) {
		return;
	}
	VisaHelper.approveAction(activeRow, this.visaHelperActionsCallBack, this);
},
 
/**
 * Rejected approval.
 * @private
 */
reject: function() {
	var activeRow = this.getActiveRow();
	if (!this.checkState(activeRow)) {
		return;
	}
	VisaHelper.rejectAction(activeRow, this.visaHelperActionsCallBack, this);
},

 Там можно добавить интересующую проверку. А передача информации между карточкой и деталью делается через «песочницу».

Зверев Александр,

Здравствуйте Александр, спасибо за ответ!

Правда решил кейс другим способом: оверрайдом класса ApprovalDashboardItemViewModel, затем в SectionActionsDashboard указал зависимость от нового класса и передачу информацию в карточку реализовал через песочницу.

Видимо, мы с Вами имели в виду разные элементы интерфейса. Я как раз имел в виду кнопки детали, сходу не вижу разделов и с ActionsDashboard, и с деталью виз одновременно.

Показать все комментарии

Коллеги, приветствую!

Есть ли возможность отправлять на визирование разным сотрудникам в зависимости от условия? Например, если отправить заявку начальнику, но если начальник в отпуске, то его заместителю.

Благодарю заранее.

Нравится

1 комментарий
Лучший ответ

Здравствуйте!

Вы можете все это реализовать в бизнес-процессе - переход по разным веткам в зависимости от условия (в отпуске начальник или нет). Если в отпуске, определяете, кто является его замом и создаете визу на зама, если нет - создаете визу на начальника.

Обратите внимание, что для реализации такого алгоритма (проверки в отпуске начальник или нет) Вам нужно, чтобы в срм хранилась информация о календаре отпусков сотрудников.

Здравствуйте!

Вы можете все это реализовать в бизнес-процессе - переход по разным веткам в зависимости от условия (в отпуске начальник или нет). Если в отпуске, определяете, кто является его замом и создаете визу на зама, если нет - создаете визу на начальника.

Обратите внимание, что для реализации такого алгоритма (проверки в отпуске начальник или нет) Вам нужно, чтобы в срм хранилась информация о календаре отпусков сотрудников.

Показать все комментарии

Коллеги, добрый день!

 

Подскажите, пожалуйста, как в визировании (в бизнес-процессе) при отказе сделать причину отказа обязательной для заполнения?

 

Без средств программирования, пожалуйста.

Нравится

3 комментария
Лучший ответ

Попробуйте через мастер детали настроить такое бизнес-правило обязательности поля 'Причина отказа' от статуса визы.

Также можно попробовать настроить автогенерируемую страницу с причиной отказа обязательной для заполнения и потом результат выбора пользователя, то есть значение причины отказа передавать в элемент 'Изменить данные' для этой визы. Но этот вариант не совсем корректный, так как пользователь может закрыть окно без выбора значения причины отказа.

Как подготовка к аттестации в целом? 

Попробуйте через мастер детали настроить такое бизнес-правило обязательности поля 'Причина отказа' от статуса визы.

Также можно попробовать настроить автогенерируемую страницу с причиной отказа обязательной для заполнения и потом результат выбора пользователя, то есть значение причины отказа передавать в элемент 'Изменить данные' для этой визы. Но этот вариант не совсем корректный, так как пользователь может закрыть окно без выбора значения причины отказа.

Екатерина, получилось ли сделать причину отказа обязательной ? Нигде не могу найти решение этой задачи.

Показать все комментарии
Доброго времени суток.
Вопрос по визированию.
В базовом функционале реализован механизм визирования следующего плана:
на деталь визы приходит запись с заполнением поля "Визирующий", 
которое ссылается на таблицу SysAdminUnit. После для пользователей, указанных в поле "Визирующий", в коммуникационной панели
появляются уведомления.
Возникла необходимость выполнить следующее: добавить на деталь "Визы" поле "Должность"(справочник Job).
Вместо визирующего выбирать должность. То есть получается на деталь "Визы" упадет запись с заполненным полем
"Должность", но с пустым полем "Визирующий". Уведомления нужно разослать всем пользователям, в контактах которых
указана должность соответствующая той, которая указна на записи детали "Визы". Базовый механизм убирать не нужно. Пользователь будет выбирать или визирующего, или
должность.

Разбирался с базовым механизмом визирования. Там все строго заточено под визирующего. То есть выбираются записи(с заполненным полем "Визирующий") из деталей визы,
соответствующие текущему пользователю.

Вопрос: насколько проблематично допилить такой функционал? 

Нравится

1 комментарий

Есть готовое дополнение Approval for bpm'online, которое реализует более сложные правила визирования.

Показать все комментарии

Добрый день.

Пытаюсь выбрать шаблон письма в элементе БП "Визирование", но список пуст. Если при этом перейти в расширенный режим, то в "Шаблоне письма визирующего" шаблон выбрать можно, но при отправке письма, информация о счете, что была добавленна с помощью макроса не заполняется. В чем может быть проблема? Объект счёт вроде указан, на счёт ссылка есть, но всё равно значения в письме пусты. Такая же ерунда если выбрать Договора, Заказы.

Скрины прилагаю.

Изображение удалено.

Нравится

2 комментария

Добрый день!

Описанная Вами проблема связана с тем, что для указанного объекта нет созданных шаблонов. Вам необходимо, чтобы в поле "Источник макросов" в выбранном шаблоне был указан объект "Виза счета", а не "Счет": http://prntscr.com/jxkfg3
 

Анна Журавель,

Спасибо, заработало!

Показать все комментарии

Здравствуйте, у нас такая проблема с визированием: в предприятии ввели новую должность, мы создали контакт, наделили всеми проваии. Теперь необходимо чтоб при визировании все документы проходили через этого человека. Где это настраивается?
На данный момент при нажатии отправить на визирование документ отправляется в определеной последовательности лицам на согласование, где изменить эту последовательность?

Нравится

2 комментария

В тип виз добавили, но нужно чтоб при нажатии кнопки отправить на визирование документ уходил на подпись всем лицам от низщего звена до директора, в даный момент эта функция работает но необходимо в этот список добавить еще одного пользователя, если нажимать добавить визу и вручную выбрать то все работает, но нужно автоматом

Александр, эта логика с цепочками визирования разработана в ходе проекта. По её настройке уточните у тех, кто её разработали.

Показать все комментарии

Начну, пожалуй, с описания кейса.
Есть некий раздел, который называется "Заявки АХО".
В этом разделе необходимо добавить функционал визирования (как в договорах, например).

Что готово на данный момент:
1. Полностью реализованы бизнес-процессы (главный и саб-процесс).
2. Готовы нужные системные настройки.
3. Добавлено администрирование по записям, для объекта визы.
4. Настроен шаблон email уведомления (не совсем уверен, что настроен правильно).

Проблемы.
1. Не удается правильно сконфигурировать NotificationProvider.
На данном этапе постоянно сыпятся ошибки в гугл-консоли.
Не совсем конкретно понятно какие колонки где и как должны присутствовать.
2. В центре уведомлений перестал функционировать отдел, отвечающий за уведомления по визам.

Итак прилагаю все возможные скриншоты и готов приложить больше если потребуется.
Так же прикрепляю два файла:
1. HTML-код шаблона для уведомления.
2. C# код для провайдера, тот самый с которым нужна помощь.

Нравится

2 комментария

Дополнение.
Список и содержимое localizableStrings:
BodyTemplate - Заявка АХО {0} от {1} требует визы.
TitleTemplate - Требуется утверждение.
DateMacros - dd.MM.yyyy

Обновление.
Тема нынче не актуальна, со всем разобрался.

P.s. если у кого-нибудь возникнут вопросы по визированию, можете стучаться ко мне в личные сообщения или на почту.

Показать все комментарии

Доброго времени суток!
Столкнулся с такой задачей, что необходимо отправить на визирование произвольный объект.
Например, есть раздел Командировка и необходимо осуществить возможность отправления записей этого раздела на визирование.
Собственно вопрос, кто знает где можно подсмотреть как происходит процесс визирования или может кто объяснить этот процесс?

Нравится

1 комментарий

Добрый день, Михаил!

С информацией по базовой логике работы процесса Вы можете ознакомиться в руководстве пользователя, на примере процесса визирования заказов: https://academy.terrasoft.ua/documents/sales-commerce/7-9/process-vizir…
С информацией по использованию базовых элементов при построении процесса визирования можно ознакомится в руководстве по процессам. Например в теме: https://academy.terrasoft.ua/documents/technic-bpms/7-9/kak-ispolzovat-…
А в общем для создания собственного процесса Вы можете в качестве примера развернуть бесплатную демо-версию и в библиотеке процессов открыть на просмотр схему процесса. В результате сделать свой по аналогии. Для наглядности прикреплены скриншоты.

Показать все комментарии