25 lines
2.2 KiB
Markdown
25 lines
2.2 KiB
Markdown
# Повторное использование в 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
|
||
|
||
1. Legacy DOCX template inventory и безопасная копия шаблона — источник `Worder.Load`, приоритет P0.
|
||
2. Table-slot mapping/clone-row — `Worder.AddNewRowToTable`, P0.
|
||
3. Header/footer field update — `Worder.UpdateAllFields` и `WriteOutTitleBlock`, P1.
|
||
4. Plant DTO → document slots — `ReportWithWorder`, `SetMainTitle`, P0.
|
||
5. Word COM STA lifecycle/cleanup — `Worder.Load/SaveAndUnload`, P0.
|
||
6. PDF export и deterministic filename — в старом коде PDF не найден, требуется отдельный контракт, P2.
|
||
7. Plant project data adapter — `Program`, `PipingElements`, `Welds`, P0.
|