DEPO: справочник участников снова записывается на бою; GUID событий — NULL
На 9 (FTV_DE_DATA) FTV_M2M_EVENTS.GUID NOT NULL (создано bj раньше), событие HANDBOOK без GUID падало и откатывало всю транзакцию — справочник в DEPO не обновлялся (с 11:50 при каждом справочнике). Теперь справочник пишется в своей транзакции, событие — отдельно (не записалось — предупреждение). Структура: GUID в FTV_M2M_EVENTS — NULL (как на тесте с 12.10); для существующих таблиц — ALTER COLUMN в наборе скриптов с правами администратора (плашка обновления, скрипт .sql). Проверено на тесте (BJ2_DEPO_DATA, транзакция с откатом). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -698,16 +698,17 @@ func depoWriteHandbookCtx(pctx context.Context, rc *RuntimeConfig) error {
|
||||
}
|
||||
n++
|
||||
}
|
||||
// Сигнал Fancy, что справочник обновился: событие HANDBOOK в FTV_M2M_EVENTS (в той же
|
||||
// транзакции, что и перезапись таблицы) — по нему джоба bj2depo может перечитать справочник.
|
||||
if _, err := tx.ExecContext(ctx, fsql.QEv10); err != nil {
|
||||
tx.Rollback()
|
||||
return err
|
||||
}
|
||||
if err := tx.Commit(); err != nil {
|
||||
return err
|
||||
}
|
||||
depoHandbookWritten = time.Now()
|
||||
// Сигнал Fancy, что справочник обновился: событие HANDBOOK в FTV_M2M_EVENTS — по нему джоба bj2depo
|
||||
// переносит справочник в юрлица Fancy (FTV_M2M_UPDATE_HANDBOOK). Отдельно от записи справочника: не
|
||||
// записалось (в старой таблице GUID NOT NULL) — справочник всё равно в DEPO, а событие ждёт скриптов.
|
||||
if _, err := db.ExecContext(ctx, fsql.QEv10); err != nil {
|
||||
log.Printf("depo-events: справочник записан в FTV_M2M_HANDBOOK (%d строк), но событие HANDBOOK — нет: %v — примените скрипты DEPO (плашка «Обновление bj требует применить скрипты»)", n, err)
|
||||
return nil
|
||||
}
|
||||
log.Printf("depo-events: справочник участников записан в FTV_M2M_HANDBOOK: %d строк + событие HANDBOOK", n)
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user