Асинхронное обновление данных в связанных классах#

Асинхронное обновление данных в связанных классах позволяет на событие в одном документе обновить атрибуты в другом, который может быть заблокирован в данное время.

Обновление происходит каждые пять минут.

Внимание

На выполнение операции обновления даётся десять попыток, то есть в течении пятидесяти минут атрибуты обновятся или нет, если документ всё ещё заблокирован.

Что бы добавить обновить данные в связанном классе, необходимо зарегистрировать её в очереди:

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 дней.