Специальный сервис логики этапа согласования

Пример представляет демонстрационный вариант специального сервиса логики этапа согласования.

Сервис подменяет вычисление согласующих и на примере дополнения содержания задания показывает вариант настройки действий после создания задания.

Перечень необходимых инструментов:
  • Visual Studio 2017/2019

namespace CustomStageService
{
	public class CustomStageService : ApprovalStageService (1)
	{
		public override IEnumerable<ApprovalStageApprover> GetStageApprovers(ApprovalStage approvalStage, Document document) (2)
		{
			List<ApprovalStageApprover> approvers = new List<ApprovalStageApprover>();

			IStaffService staffService = Context.GetService<IStaffService>();
			StaffEmployee employee = staffService.FindEmpoyeeByAccountName(@"Test\TestEmployee");

			approvers.Add(CreateApprover(employee)); (3)

			return approvers;
		}

		protected override void OnTaskCreated(ApprovalStage approvalStage, ApprovalPath approvalPath, Reconcile reconcileCard, Task task) (4)
		{
			task.MainInfo.Content += Environment.NewLine + "Тест расширения"; (5)
		}
	}
}
1 Пример переопределения сервиса этапа.
2 Переопределяем вычисления согласующих для этапа.
Параметры:
  • approvalStage — текущий этап

  • document — документ

3 CreateApprover — штатный метод ApprovalStageService создающий запись согласующего из сотрудника.
4 Дополняем создание задания согласования.
Параметры:
  • approvalStage — текущий этап

  • approvalPath — маршрут

  • reconcileCard — согласование

  • task — созданное задание

5 Дополняем содержание задания.

С полным кодом примера для Специального сервиса логики этапа согласования можно ознакомиться в репозитории примеров Web-клиента на GitHub.