logo

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

В данной статье приведено описание сценария, с помощью которого можно зарегистрировать документ в системе от прошедшей даты.

Пример процесса, в ходе которого используется данный сценарий, приведен на рис. 1.

Рис. 1. Пример процесса, в котором используется сценарий регистрации от прошедшей даты

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

Рис. 2. Форма задачи ввода параметров регистрации

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

Контекстные переменные, используемые в сценариях:

  • context.Dokument – регистрируемый документ;
  • context.RegNumber – регистрационный номер для резервирования и регистрации;
  • context.Delo – дело для резервирования и регистрации (Depository);
  • context.Dokumentopotok – документопоток для регистрации (DocumentFlowType);
  • context.DateReg – дата, на которую будет создана регистрация;
  • context.ZarezervirovannyyNomer – переменная для хранения зарезервированного номера перед регистрацией.

Сценарий "Резервирование номера":

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

Сценарий "Регистрация документа" (с использованием PublicApi):

Примечание

Актуальная документация по PublicAPI доступна по ссылке.

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

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-5550.html