# Trigger Integration Map: `10.0.0.11`

This document records the trigger-to-object dependency view for host `10.0.0.11`, generated from the read-only metadata snapshot captured on `2026-04-22`.

The map combines trigger definitions with direct SQL object references and transitive object references reached through `CALL`ed stored procedures.

## Summary

| Metric | Value |
| --- | --- |
| Triggers | 6 |
| Schemas with triggers | 2 |
| Source tables with triggers | 3 |
| Direct target objects | 3 |
| Called routines | 1 |
| Downstream routine target objects | 7 |
| Triggers with cross-schema impact | 1 |

## Key Findings

- Trigger activity is concentrated in 2 schemas across 3 source tables.
- `cfidebtors.tri_LedgerInsert` is the clearest cross-schema bridge: it fires on `cfidebtors.ledgertransaction`, calls `cfidebtors.proc_LedgerTransfer_Stage1`, and reaches `cficore.accountmapping`, `cficore.financialweek`, `cficore.ledgertransfer`, `cficore.period`.
- The `cfidebtors.sourcedocument_*` triggers act like an audit/validation fan-out into `cfidebtors.sourcedocumentvalidator` while also reading debtor metadata.
- The `cficore.ledgertransfer` triggers stay inside `cficore`, but they still create a second write path by inserting ledger rows into `cficore.LedgerTransaction` before the source row is committed.

## Mermaid Trigger Flow

The diagram below shows source table -> trigger -> called routine -> touched object paths. Downstream objects reached through stored procedures are included so cross-schema side effects are visible in one place.

```mermaid
flowchart LR
    source_table_cficore_ledgertransfer["cficore.ledgertransfer<br/>source table"]
    trigger_cficore_tri_LedgerTransfer["tri_LedgerTransfer<br/>BEFORE INSERT"]
    target_object_cficore_ledgertransaction["cficore.ledgertransaction<br/>direct touch"]
    trigger_cficore_tri_LedgerTransferUpdate["tri_LedgerTransferUpdate<br/>BEFORE UPDATE"]
    source_table_cfidebtors_ledgertransaction["cfidebtors.ledgertransaction<br/>source table"]
    trigger_cfidebtors_tri_LedgerInsert["tri_LedgerInsert<br/>AFTER INSERT"]
    routine_cfidebtors_proc_LedgerTransfer_Stage1["cfidebtors.proc_LedgerTransfer_Stage1<br/>called routine"]
    target_object_cficore_accountmapping["cficore.accountmapping<br/>downstream object"]
    target_object_cficore_financialweek["cficore.financialweek<br/>downstream object"]
    target_object_cficore_ledgertransfer["cficore.ledgertransfer<br/>downstream object"]
    target_object_cficore_period["cficore.period<br/>downstream object"]
    target_object_cfidebtors_debtor["cfidebtors.debtor<br/>downstream object"]
    target_object_cfidebtors_ledgertransaction["cfidebtors.ledgertransaction<br/>downstream object"]
    target_object_cfidebtors_sourcedocument["cfidebtors.sourcedocument<br/>downstream object"]
    source_table_cfidebtors_sourcedocument["cfidebtors.sourcedocument<br/>source table"]
    trigger_cfidebtors_sourcedocument_after_delete["sourcedocument_after_delete<br/>AFTER DELETE"]
    target_object_cfidebtors_sourcedocumentvalidator["cfidebtors.sourcedocumentvalidator<br/>direct touch"]
    trigger_cfidebtors_sourcedocument_after_insert["sourcedocument_after_insert<br/>AFTER INSERT"]
    trigger_cfidebtors_sourcedocument_after_update["sourcedocument_after_update<br/>AFTER UPDATE"]
    source_table_cficore_ledgertransfer -->|"BEFORE INSERT"| trigger_cficore_tri_LedgerTransfer
    trigger_cficore_tri_LedgerTransfer -->|"direct touch"| target_object_cficore_ledgertransaction
    source_table_cficore_ledgertransfer -->|"BEFORE UPDATE"| trigger_cficore_tri_LedgerTransferUpdate
    trigger_cficore_tri_LedgerTransferUpdate -->|"direct touch"| target_object_cficore_ledgertransaction
    source_table_cfidebtors_ledgertransaction -->|"AFTER INSERT"| trigger_cfidebtors_tri_LedgerInsert
    trigger_cfidebtors_tri_LedgerInsert -->|"CALL"| routine_cfidebtors_proc_LedgerTransfer_Stage1
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cficore_accountmapping
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cficore_financialweek
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cficore_ledgertransfer
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cficore_period
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cfidebtors_debtor
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cfidebtors_ledgertransaction
    routine_cfidebtors_proc_LedgerTransfer_Stage1 -->|"downstream touch"| target_object_cfidebtors_sourcedocument
    source_table_cfidebtors_sourcedocument -->|"AFTER DELETE"| trigger_cfidebtors_sourcedocument_after_delete
    trigger_cfidebtors_sourcedocument_after_delete -->|"direct touch"| target_object_cfidebtors_debtor
    trigger_cfidebtors_sourcedocument_after_delete -->|"direct touch"| target_object_cfidebtors_sourcedocumentvalidator
    source_table_cfidebtors_sourcedocument -->|"AFTER INSERT"| trigger_cfidebtors_sourcedocument_after_insert
    trigger_cfidebtors_sourcedocument_after_insert -->|"direct touch"| target_object_cfidebtors_debtor
    trigger_cfidebtors_sourcedocument_after_insert -->|"direct touch"| target_object_cfidebtors_sourcedocumentvalidator
    source_table_cfidebtors_sourcedocument -->|"AFTER UPDATE"| trigger_cfidebtors_sourcedocument_after_update
    trigger_cfidebtors_sourcedocument_after_update -->|"direct touch"| target_object_cfidebtors_debtor
    trigger_cfidebtors_sourcedocument_after_update -->|"direct touch"| target_object_cfidebtors_sourcedocumentvalidator

    classDef source fill:#d9f2ff,stroke:#1177aa,stroke-width:2px,color:#0f2f3f;
    classDef trigger fill:#ffe8c2,stroke:#c47a00,stroke-width:2px,color:#4d2f00;
    classDef routine fill:#e7f8e8,stroke:#2f8f46,stroke-width:2px,color:#16361d;
    classDef target fill:#f0f0f0,stroke:#616161,stroke-width:2px,color:#1f1f1f;
    class source_table_cficore_ledgertransfer,source_table_cfidebtors_ledgertransaction,source_table_cfidebtors_sourcedocument source;
    class trigger_cficore_tri_LedgerTransfer,trigger_cficore_tri_LedgerTransferUpdate,trigger_cfidebtors_tri_LedgerInsert,trigger_cfidebtors_sourcedocument_after_delete,trigger_cfidebtors_sourcedocument_after_insert,trigger_cfidebtors_sourcedocument_after_update trigger;
    class routine_cfidebtors_proc_LedgerTransfer_Stage1 routine;
    class target_object_cficore_ledgertransaction,target_object_cficore_accountmapping,target_object_cficore_financialweek,target_object_cficore_ledgertransfer,target_object_cficore_period,target_object_cfidebtors_debtor,target_object_cfidebtors_ledgertransaction,target_object_cfidebtors_sourcedocument,target_object_cfidebtors_sourcedocumentvalidator target;
```

## Trigger Inventory

| Source table | Trigger | Timing/event | Direct object touches | Called routines | Downstream routine objects | Cross-schema objects | Preview |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `cficore.ledgertransfer` | `cficore.tri_LedgerTransfer` | BEFORE INSERT | cficore.ledgertransaction | None | None | None | BEGIN DECLARE var\_LedgerTransID BIGINT(20); IF(NEW.CoreLedgerAccountID>0 && NEW.PeriodID>0 && NEW.FinancialWeekID>0) THEN INSERT INTO cfico... |
| `cficore.ledgertransfer` | `cficore.tri_LedgerTransferUpdate` | BEFORE UPDATE | cficore.ledgertransaction | None | None | None | BEGIN DECLARE var\_LedgerTransID BIGINT(20); IF(NEW.CoreLedgerAccountID>0 && NEW.PeriodID>0 && NEW.FinancialWeekID>0) THEN INSERT INTO cfico... |
| `cfidebtors.ledgertransaction` | `cfidebtors.tri_LedgerInsert` | AFTER INSERT | None | cfidebtors.proc\_LedgerTransfer\_Stage1 | cficore.accountmapping, cficore.financialweek, cficore.ledgertransfer, cficore.period, cfidebtors.debtor, cfidebtors.ledgertransaction, cfidebtors.sourcedocument | cficore.accountmapping, cficore.financialweek, cficore.ledgertransfer, cficore.period | BEGIN CALL proc\_LedgerTransfer\_Stage1(NEW.LedgerTransactionID, NEW.TransactionDate, NEW.Description, NEW.TransactionTypeID, NEW.LedgerAccou... |
| `cfidebtors.sourcedocument` | `cfidebtors.sourcedocument_after_delete` | AFTER DELETE | cfidebtors.debtor, cfidebtors.sourcedocumentvalidator | None | None | None | BEGIN DECLARE reference VARCHAR(25) DEFAULT CONCAT( CASE OLD.SourceDocumentTypeID WHEN 1 THEN "INV" WHEN 2 THEN "CNT" WHEN 3 THEN "REC" WHE... |
| `cfidebtors.sourcedocument` | `cfidebtors.sourcedocument_after_insert` | AFTER INSERT | cfidebtors.debtor, cfidebtors.sourcedocumentvalidator | None | None | None | BEGIN DECLARE reference VARCHAR(25) DEFAULT CONCAT( CASE NEW.SourceDocumentTypeID WHEN 1 THEN "INV" WHEN 2 THEN "CNT" WHEN 3 THEN "REC" WHE... |
| `cfidebtors.sourcedocument` | `cfidebtors.sourcedocument_after_update` | AFTER UPDATE | cfidebtors.debtor, cfidebtors.sourcedocumentvalidator | None | None | None | BEGIN DECLARE reference VARCHAR(25) DEFAULT CONCAT( CASE NEW.SourceDocumentTypeID WHEN 1 THEN "INV" WHEN 2 THEN "CNT" WHEN 3 THEN "REC" WHE... |

## Schema Touch Summary

| Source schema | Target schema | Triggers | Target objects |
| --- | --- | --- | --- |
| `cficore` | `cficore` | cficore.tri\_LedgerTransfer, cficore.tri\_LedgerTransferUpdate | cficore.ledgertransaction |
| `cfidebtors` | `cficore` | cfidebtors.tri\_LedgerInsert | cficore.accountmapping, cficore.financialweek, cficore.ledgertransfer, cficore.period |
| `cfidebtors` | `cfidebtors` | cfidebtors.sourcedocument\_after\_delete, cfidebtors.sourcedocument\_after\_insert, cfidebtors.sourcedocument\_after\_update, cfidebtors.tri\_LedgerInsert | cfidebtors.debtor, cfidebtors.ledgertransaction, cfidebtors.sourcedocument, cfidebtors.sourcedocumentvalidator |

## Notes

- Direct object touches come from SQL statements inside the trigger body itself.
- Downstream routine objects come from stored procedures called by a trigger, including nested procedure calls when present.
- Object references are derived from SQL-text parsing and may miss dynamic SQL or references hidden behind application code.
