Регистрация документа в системе от уже прошедшей даты

В данной статье будет рассмотрен пример процесса регистрации документа от уже прошедшей даты.

В процессе используются следующие контекстные переменные:

  • Документ - тип объект Документ;
  • Дело - тип объект Дело;
  • Зарезервированный номер - тип объект Зарезервированные номера;
  • Документопоток - тип перечисление Документопоток;
  • Дата регистрации - тип Дата/Время;
  • Регистрационный номер - тип Строка.

Рис. 1. "Карта процесса"

В задаче процесса "Параметры регистрации" необходимо заполнить входные данные для резервирования регистрационного номера и регистрации документа (Рис. 2).

Рис. 2. "Параметры регистрации"

Для корректной работы бизнес-процесса сценарий создания зарезервированного номера и регистрация документа должны выполняться в разных транзакциях (Рис. 1), в противном случае в ходе бизнес-процесса возникнет ошибка.

Для создания зарезервированного номера необходимо использовать класс ReservedRegNumberManager.

Текст сценария "Резервирование номера":

var newReg = ReservedRegNumberManager.Instance.Create ();
newReg.RegNumber = context.RegNumber;
newReg.Depository=context.Delo;
newReg.Save ();
context.ZarezervirovannyyNomer = (ReservedRegNumber)newReg;

Текст сценария "Регистрация документа":

Необходимые пространства имен:

using EleWise.ELMA.API;
using EleWise.ELMA.Documents.Managers;
using EleWise.ELMA.Documents.Models.Nomenclature;

var regNumber = PublicAPI.Docflow.Document.Register(context.Dokument, context.Delo, context.Dokumentopotok.Value, context.ZarezervirovannyyNomer);
context.ZarezervirovannyyNomer = null;
context.Dokument.RegistrationCard.FirstOrDefault ().RegistrationDate = context.DateReg;

C другими примерами сценариев для регистрации документов можно ознакомиться в статье https://www.elma-bpm.ru/kb/article-69.html