2.2 KiB
2.2 KiB
Повторное использование в DocumentAutomation
| Компонент | Классификация | Решение |
|---|---|---|
| DTO title block и строки таблицы | REUSE_AFTER_ISOLATION | сделать чистые record-модели |
| группировка материалов/элементов | REIMPLEMENT_WITH_SAME_BEHAVIOR | покрыть golden tests, не переносить DataRow-зависимости |
| DCF/Plant чтение | USE_AS_REFERENCE_ONLY | отдельный Plant 2019/2026 adapter |
жесткое заполнение Tables[1]/Cells[n] |
REIMPLEMENT_WITH_SAME_BEHAVIOR | schema/slot IDs, диагностика отсутствующих слотов |
| копирование шаблона и временный output | REUSE_AFTER_ISOLATION | безопасный atomic output и cleanup |
| Word COM cleanup | DO_NOT_REUSE | переписать с STA worker, try/finally и release proxy |
| SautinSoft fallback | USE_AS_REFERENCE_ONLY | отдельно подтвердить лицензию и round-trip |
| обновление полей | REUSE_AFTER_ISOLATION | адаптер Word/Open XML и тест headers/footers |
DocumentAutomation уже имеет смысл использовать как единый document engine, но контракт P_Rec_BOP сначала нужно зафиксировать на golden sample. Существующий P_Rec_BOP-код не переносить автоматически.
Required DocumentAutomation Skills
- Legacy DOCX template inventory и безопасная копия шаблона — источник
Worder.Load, приоритет P0. - Table-slot mapping/clone-row —
Worder.AddNewRowToTable, P0. - Header/footer field update —
Worder.UpdateAllFieldsиWriteOutTitleBlock, P1. - Plant DTO → document slots —
ReportWithWorder,SetMainTitle, P0. - Word COM STA lifecycle/cleanup —
Worder.Load/SaveAndUnload, P0. - PDF export и deterministic filename — в старом коде PDF не найден, требуется отдельный контракт, P2.
- Plant project data adapter —
Program,PipingElements,Welds, P0.