Skip to content
RegisterBench

STRUCT-FK - Cross-template references must resolve (B_01.02, B_01.03, B_02.01, B_02.02, B_02.03, B_03.01, B_03.02, B_03.03, B_04.01, B_05.01, B_05.02, B_06.01, B_07.01)

A cross-template reference does not resolve: the value in the source row has no matching row in the target template.

Layer
STRUCT
Severity
blocking
Templates
B_01.02, B_01.03, B_02.01, B_02.02, B_02.03, B_03.01, B_03.02, B_03.03, B_04.01, B_05.01, B_05.02, B_06.01, B_07.01
Columns
c0010, c0020, c0030, c0040, c0050, c0060, c0110
Taxonomy version
eba-4.0-errata5
Status
founder-approved

Reviewed at gate 1 (founder) on

Content last changed

Official control text (EBA, verbatim)

The reported data must follow the key-foreign key contraints defined in the DPM

Source: EBA technical check 807 (sheet "Technical checks", category "Additional Plain-csv" in the official overview of the RoI technical checks). The RoI Builder runs it as structural check STRUCT-FK.

Note on the official control text: the EBA artifact publishes this text with the typo "contraints". The page documents the text exactly as published; the check runs exactly as published.

What this rule checks

The check enforces the 22 key-foreign-key relations (R1-R22) defined in the taxonomy package, including 2 composite relations and 3 self-references on fact columns (c0060 in B_01.02, c0030 in B_02.01, c0110 in B_05.01). Typical relations: the arrangement reference number of a child row (B_02.03, B_03.01, B_03.02, B_03.03, B_04.01, B_05.02, B_07.01) must exist as c0010 in B_02.01; a signing entity LEI in B_03.01 must exist as c0010 in B_01.02; a provider code used in the supply chain (B_05.02) must exist as c0010 in B_05.01.

For every source row, the referenced value (or value combination, for composite relations) must match an existing row of the target template by its natural key. The finding anchors at the SOURCE row, names the first source column of the relation, and carries the verbatim relation name, the target template and the offending value(s). This is the only cross-template mechanics of the validation stack - measured, W2 has zero cross-template rules.

Null handling (interim, documented in the mapping spec as an open point of the official artifacts): a reference with ANY empty source component is skipped, never reported. Nothing legitimate escapes - empty KEY columns are already blocking via STRUCT-MANDATORY, and the three fact columns carrying self-references are optional fields.

This is a structural check (STRUCT layer, severity: blocking). If it fails, the package is technically rejected on receipt (feedbackMain = REJECTED). The structural layer is the only layer that blocks a filing.

Most common causes

  • The child row was entered first and the target row never followed - e.g. an arrangement referenced in B_03.01 was never added to B_02.01.
  • A typo in the reference cell: the value differs from the target key by one character (the match is exact).
  • The target row was deleted (or renumbered) after the referencing rows were created.

How to fix it, step by step

  1. Open the flagged source row - the finding gives the template, the row, the column and the relation name with the target template (e.g. "must match_B_02.01").
  2. Check whether the target row exists in the target template with exactly that key value.
  3. Either add the missing target row (e.g. enter the arrangement in B_02.01), or correct the reference cell in the source row to an existing key.
  4. For composite relations (e.g. B_02.02 into B_06.01: function identifier plus entity LEI), make sure EVERY component matches the same target row.
  5. Run the validation again and confirm the finding is gone.

Example: fails vs passes

Fails - B_02.01 (target) holds only arrangement CTR-1, while the B_03.01 row (source) references CTR-2. The finding anchors at the B_03.01 row, column c0010, relation "R10 Contractual arr. reference number must match_B_02.01":

B_02.01 (target):

c0010 (Contractual arrangement reference number)
CTR-1

B_03.01 (source, flagged):

c0010 (Contractual arrangement reference number) c0020 (LEI of the entity signing the contractual arrangement)
CTR-2 549300Q5EH2NP82EPE32

Passes - either add the CTR-2 row to B_02.01, or correct c0010 of the B_03.01 row to CTR-1.

  • STRUCT-KEY-UNIQUE - references resolve against the target template's natural keys; those keys must be unique.
  • STRUCT-MANDATORY - empty key cells are reported there; references with an empty source component are skipped here.
  • STRUCT-EMPTY-REGISTER - with no data at all, the register stops there before any reference is examined.

Fix it in the RoI Builder - it points at the exact row and cell and re-checks as you type.

This page describes what the software does. It is neither legal advice nor an interpretation of any regulation, and using the product does not by itself make any submission complete, correct or acceptable to any authority. The responsibility for what is filed stays with the entity that files it.