IBProcessStepGroups.Add

Синтаксис

Add(StepGroup: IBProcessStepGroup);

Параметры

StepGroup. Группа шагов, которую необходимо добавить в коллекцию.

Описание

Метод Add добавляет указанную группу шагов в конец коллекции.

Комментарии

По умолчанию в коллекции присутствует одна группа шагов. Новые группы шагов могут быть добавлены, если для этапа включен шлюз.

Пример

Для выполнения примера в репозитории предполагается наличие процесса с идентификатором PROCESS. В процессе создан минимум один этап.

Добавьте ссылки на системные сборки: BPM, Metabase. Также добавьте ссылку на сборку, которая необходима для работы с процессами.

Sub UserProc;
Var
    Mb: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    Process: IBProcess;
    Stage: IBProcessStage;
    DefaultStepGruop, StepGroup: IBProcessStepGroup;
    Step_: IBProcessStep;
    Duration: IBPDuration;
Begin
    Mb := MetabaseClass.Active;
    MDesc := Mb.ItemById("PROCESS");
    // Получение структуры процесса
    Process := BProcessCollection.EditByKey(MDesc.Key);
    // Получение этапа и группы шагов по умолчанию
    Stage := Process.Stages.Item(0);
    DefaultStepGruop := Stage.StepGroups.Item(0);
    // Шлюз для этапа
    Stage.GatewayType := BProcessGatewayType.Parallel;
    // Создание нового шага
    Step_ := New BProcessManualTaskStep.Create("Ручное действие", Process);
    Step_.Description := "Сбор данных";
    Duration := Step_.MaxDuration;
    Duration.Type := DurationType.Day;
    Duration.Amount := 2;
    Duration.IsAbsoluteLag := True;
    Duration.AbsoluteLag := TimeSpan.FromHours(21).ToDouble;
    // Добавление шага в первую группу шагов
    DefaultStepGruop.Steps.Add(Step_);
    // Создание новой группы шагов и шагов для неё
    StepGroup := New BProcessStepGroup.Create(Process);
    Step_ := New BProcessManualTaskStep.Create("Ручное действие 1", Process);
    Step_.Description := "Подготовка материалов";
    StepGroup.Steps.Add(Step_);
    Step_ := New BProcessManualTaskStep.Create("Ручное действие 2", Process);
    Step_.Description := "Передача материалов на следующую стадию обработки";
    StepGroup.Steps.Add(Step_);
    // Добавление группы шагов в этап
    Stage.StepGroups.Add(StepGroup);
    // Сохранение изменений
    Process.Save;
End Sub UserProc;

При выполнении примера для первого этапа будет включено использование параллельного шлюза. В этап будет добавлен шаг с ручным действием, для которого будет настроен срок выполнения. Для выполнения параллельно этому шагу будет создана группа шагов, состоящая из двух шагов с ручным действием.

См. также:

IBProcessStepGroups