Проверка завершения задач (Активности)

Здравствуйте! Вопрос по бизнес процессу.

В процессе через скрипт создаются задачи в зависимости от выбранных данных (количество произвольное).
Процесс должен продолжаться только после завершения всех этих задач.

Скрипт:

bool ScriptTask1Execute(ProcessExecutingContext context) {
    var s = new Select(context.UserConnection)
        .Column("Id")
        .From("Contact")
        .Where("BusinessConsultant").IsEqual(Column.Const(1));

    // create activities
    ((Select)s).ExecuteReader((IDataReader reader) => {
           CreateActivity(context.UserConnection, reader.GetGuid(0));
    });
}

Метод CreateActivity:
Entity CreateActivity(UserConnection userConnection, Guid ownerId) {
    var schema = userConnection.EntitySchemaManager.GetInstanceByName("Activity");
    var entity = schema.CreateEntity(userConnection);
       
    entity.SetDefColumnValues();
    entity.SetColumnValue("Title", "Создать выборку целевой аудитории");
    entity.SetColumnValue("OwnerId", ownerId);
    entity.SetColumnValue("TypeId", "FBE0ACDC-CFC0-DF11-B00F-001D60E938C6");
    entity.Save();

    return entity;
}

Как реализовать проверку завершения всех созданных задач?

Нравится

2 комментария

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу

Без ухищрений, думаю, не получится.
Можно сохранять идентификаторы созданных активностей в EntityCollection параметр процесса. И ожидать завершения первой задачи из коллекции. При завершении идти в скрипт, в котором удалять из коллекции активности, которые завершены. Если после скрипта, коллекция не будет пуста - идти снова ожидать завершения первого элемента коллекции, если пуста - значит условие соблюдено и можно двигаться дальше по процессу.

Показать все комментарии