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

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

Ссылка на пример на GitHub: CustomStageService.

Сервис выполняет следующие функции:
  • Подменяет вычисление согласующих.

  • Показывает вариант настройки действий после создания задания на примере дополнения содержания задания.

Пример рассчитан на версии модулей Служба фоновых операций и Windows-клиент версии 6.1 или выше.

Перечень необходимых инструментов:

Сборка и установка

  1. Откройте /Samples.sln.

  2. Соберите проект Others > CustomStageService.

Пример переопределения сервиса этапа
namespace CustomStageService
{
	public class CustomStageService : ApprovalStageService
	{
		public override IEnumerable<ApprovalStageApprover> GetStageApprovers(ApprovalStage approvalStage, Document document) (1)
		{
			List<ApprovalStageApprover> approvers = new List<ApprovalStageApprover>();

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

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

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

  • document — документ.

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

  • approvalPath — маршрут.

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

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

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

Проверка примера

  1. В файле WebCSamples\Others\CustomStageService\CustomStageService.cs заменить Test\TestEmployee на одну из своих учётных записей, присутствующих в Docsvision.

  2. Пересобрать расширение.

  3. Добавить на сервере библиотеку CustomStageService.dll из каталога bin\Debug\net6.0, если в VisualStudio выбрана конфигурация сборки "Debug" или bin\Release\net6.0, если выбрана конфигурация "Release".

    • в папку common на сервер, где установлен WorkerService (/lib/docsvision/common на Linux)

    • в папку, где установлен Windows-клиент, с которого производится настройка (например C:\Program Files (x86)\Docsvision\Client).

  4. Открыть шаблон карточки любого этапа (например, "Согласование с рецензированием" из стандартного согласования модуля "Управление документами"), перейти на вкладку "Специальная логика этапа", в поле "Имя сервиса" выбрать библиотеку.

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