Регистрация документа в системе от уже прошедшей даты
Для того, чтобы зарегистрировать документ от прошедшей даты, необходимо зарезервировать для него регистрационный номер.
В процессе используются следующие контекстные переменные:
- Документ – тип объект Документ;
- Дело – тип объект Дело;
- Зарезервированный номер – тип объект Зарезервированные номера;
- Документопоток – тип перечисление Документопоток;
- Дата регистрации – тип Дата/Время;
- Регистрационный номер – тип Строка.
Рис. 1. "Карта процесса"
В задаче процесса "Параметры регистрации" необходимо заполнить входные данные для резервирования регистрационного номера и регистрации документа (Рис. 2).
Рис. 2. "Параметры регистрации"
Для корректной работы бизнес-процесса сценарий создания зарезервированного номера и регистрация документа должны выполняться в разных транзакциях (Рис. 1), в противном случае в ходе бизнес-процесса возникнет ошибка.
Для создания зарезервированного номера необходимо использовать класс ReservedRegNumberManager.
Контекстные переменные:
- context.Dokument – регистрируемый документ;
- context.RegNumber – регистрационный номер для резервирования и регистрации;
- context.Delo – дело для резервирования и регистрации (Depository);
- context.Dokumentopotok – документопоток для регистрации (DocumentFlowType);
- context.DateReg – дата, на которую будет создана регистрация;
- context.ZarezervirovannyyNomer – переменная для хранения зарезервированного номера перед регистрацией.
Текст сценария "Резервирование номера":
1 2 3 4 5 | 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;
Текст сценария:
1 2 3 | 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