Files
Bridge-and-Join-s/deploy/depo/fancy-m2m/README.md
T

38 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Расширение Fancy DEPO для M2M (bj2depo) — процедуры Фонтвьель
Код написан программистом Фонтвьель (В. Кокин) как собственное дополнение к Fancy DEPO — код Fancy не меняется,
это штатная для Fancy практика. Сняты из базы SQL002/BJ_DEPO_DATA 23.09.2026 (`sys.sql_modules`), тестовые вставки удалены.
## Что делает
- `FTV_M2M_JOB` — точка входа джобы SQL Agent (bj ставит её как `bj2depo`, раз в N секунд; режим «bj» — bj вызывает сам):
берёт `FTV_M2M` со `STATE='TODO'` → `FTV_M2M_PROCESS_CREATE`; затем `FTV_M2M_EVENTS` со `STATE='TODO'` → `FTV_M2M_PROCESS_EVENTS`;
результат — `STATE` (SUCCESS/ERROR), `TimeBeg/TimeEnd`, `COMMENT` (текст ошибки // место // код).
- `FTV_M2M_PROCESS_CREATE @ID` — создаёт M2M-поручение DEPO (`OD_DOCS`, `OD_DOLS`, `D_CLISER_M2M`, `D_CLISER_M2M_DOL`, `OD_IN_DOCS/OD_OUT_DOCS`, `D_FILER`),
ищет клиента по паспорту (`OD_FACES`, `OD_CLIENTS`), наш счёт в НРД по `LINK_NUMBER`/`PLACE_NUMBER` (`OD_CLIENTS_REC`), пишет номера в `FTV_M2M.DOC`, `FTV_M2M_LINES.DOL`.
- `FTV_M2M_PROCESS_EVENTS @ID` — событие по строке (GUID+REFERENCE): решения, поручения, исполнение → операции зачисления/списания
(`U_OP_INV_ZACH`, `U_OP_INV_SPIS`) через `FTV_M2M_PROCESS_OPERATION` и проводки через `FTV_M2M_PROCESS_WIRING` (`OD_PR_INS_WIRS`, `OD_STEPS`).
- `FTV_M2M_PROCESS_OPERATION`, `FTV_M2M_PROCESS_WIRING` — служебные.
## От чего зависит на стороне Fancy (должно быть в DEPO клиента)
Таблицы поставки Fancy с поддержкой M2M (у Фонтвьель появились 25.08.2026): `D_CLISER_M2M`, `D_CLISER_M2M_DOL`, `OD_M2M_ACCS`,
`OD_ONLINE_M2M_DEPO` (+ триггер `OD_ONLINE_M2M_DEPO_II`); функции ядра `FU_NEXT_DOC_NUM`, `GEN_ID`, процедура `OD_PR_INS_WIRS`;
типы документов/шагов `OD_DOC_CATS`, `OD_STEP_TYPES`, `OD_SYS_TABS`. Наши трансферные таблицы `FTV_M2M*` создаёт bj («Трансферные таблицы DEPO»).
## Что привязано к базе Фонтвьель (параметризовать перед установкой у другого клиента)
| Где | Значение | Смысл | Как получить в чужой базе |
|---|---|---|---|
| CREATE/EVENTS/OPERATION | `@WHOS int = 383118` | ID лица депозитария (ООО «ИК Фонтвьель») — «кто» в документах | `SELECT FACE FROM OD_FACE_CODERS WHERE CODE = <код участника НРД>` (bj знает код: «Определить из DEPO») |
| EVENTS/OPERATION | `8106` | место/рынок «ММВБ — ПАО Московская Биржа» в операции | справочник мест DEPO клиента |
| EVENTS/OPERATION | `836` | тип счёта/валюта (комментарий «НОСТРО депо расчётный») | справочник DEPO клиента |
| EVENTS/OPERATION | `31` | тип документа «Отчёт депозитария» | `OD_DOC_CATS` клиента |
| все | `execute as user = 'SYSDBA'` | контекст выполнения | учётка SYSDBA есть в любой Fancy |
Предложение автору: вынести эти значения в таблицу `FTV_M2M_SETTINGS` (или вычислять по коду участника) — тогда набор ставится у любого клиента без правок.
## Порядок установки у клиента
1. bj → «Обмен Fancy → Подключение» (логин bj_user: datareader+datawriter на FTV_M2M*).
2. bj → «Трансферные таблицы DEPO»: создать (логином с правами) или скрипт DBA.
3. Этот каталог: выполнить 5 файлов в порядке WIRING → OPERATION → CREATE → EVENTS → JOB (CREATE OR ALTER, повторно безопасно).
Права: `GRANT EXECUTE ON dbo.FTV_M2M_JOB TO bj_user` (для режима «bj»).
4. bj → «Обработка DEPO»: режим `sql-auto` (bj создаёт джобу `bj2depo`: `EXEC dbo.FTV_M2M_JOB`, интервал по настройке) или `sql-manual`.
5. bj → «Проверить готовность»: событие `BJ_PING` должно получить STATE от джобы.