Асинхронное обновление данных в связанных классах
Асинхронное обновление данных в связанных классах#
Асинхронное обновление данных в связанных классах позволяет на событие в одном документе обновить атрибуты в другом, который может быть заблокирован в данное время.
Обновление происходит каждые пять минут.
Внимание
На выполнение операции обновления даётся десять попыток, то есть в течении пятидесяти минут атрибуты обновятся или нет, если документ всё ещё заблокирован.
Что бы добавить обновить данные в связанном классе, необходимо зарегистрировать её в очереди:
Btk_SyncDataQueueApi().register(
sOperCode = "UpdateDocVerByDoc",
sJexl =
"""var ropDocVer = Wf_DocVerApi.load(123L);
|Wf_DocVerApi.setsCaption(ropDocVer, "new Caption");
|""".stripMargin,
gidSrc = parent_Rop.gid,
gidPurpose = purpose_Rop.gid,
isOnlyLastExecute = false,
isExecuteAnotherBySrcOnError = true
)
Очередь группируется по „Коду операции“ и „Глобальному идентификатору объекта источника“ и образует подгруппу выполняемых скриптов. В свою очередь подгруппа сортируется по дате создания и внутри по идентификатору записи очереди.
Флаг isOnlyLastExecute
означает, что в подгруппе будет выполнен только последний скрипт,
остальные будут помечены как не обязательные. Если признак выставлен только на одной записи в подгруппе,
он повлияет на всю группу.
Флаг isExecuteAnotherBySrcOnError
означает, что если текущий скрипт был выполнен с ошибкой, то
последующие скрипты всё равно будут выполняться. Если признак не стоит, то последующие скрипты не будут выполнены,
но у них будет увеличен счётчик пропуска.
Журнал очереди обновления данных можно посмотреть в приложении «Настройка системы» -> «Настройки и сервисы» -> «Очередь синхронизации данных классов». В этом же отображении можно внепланово синхронизировать данные.
Все исполненные операции автоматически очищаются через 180 дней после создания. А все не исполненные через 365 дней.