logo

[ELMA3] Смена статуса жизненного цикла документа в сценарии

Для того, чтобы поменять статус жизненного цикла документа в сценарии, необходимо полю Status документа присвоить новое значение типа LifeCycleStatus.

Пример сценария с использованием PublicAPI

Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.

Контекстные переменные:

context.Doсument – переменная типа Документ.

Пространство имен:

using EleWise.ELMA.API;

Текст сценария:

var statusFilter = PublicAPI.Docflow.Objects.LifeCycleStatus.Filter().Query("Name LIKE ’Начало’").Filter;
var new_status = PublicAPI.Docflow.Objects.LifeCycleStatus.Find(statusFilter, null).FirstOrDefault();
//смена статуса документа
if (new_status != null)
{
PublicAPI.Docflow.Document.ChangeStatus(context.Document, new_status);
}

Пример сценария без использования PublicAPI

Для корректной работы сценария необходимо подключить сборки:

EleWise.ELMA.Documents
EleWise.ELMA.Documents.Docflow

Пространства имен:

using EleWise.ELMA.Documents.Models;
using EleWise.ELMA.Model.Managers;

Текст сценария:

var statusFilter = InterfaceActivator.Create<Filter>();
statusFilter.Query = "Name LIKE ’Начало’";
//поиск нужного статуса жизненного цикла документа
var new_status = EntityManager<LifeCycleStatus>.Instance.Find(statusFilter, null).FirstOrDefault();
//смена статуса документа
if (new_status != null) context.Document.Status = new_status;
//сохранение нового состояния документа
context.Document.Save();