STRUCT-ENUM-VALUE - Closed-list columns take dictionary codes only (B_01.01, B_01.02, B_02.01, B_02.02, B_03.02, B_04.01, B_05.01, B_05.02, B_06.01, B_07.01)
A closed-list cell holds a value outside the column's DPM dictionary; canonical values are codes like eba_CO:x1, not labels.
- Layer
- STRUCT
- Severity
- blocking
- Templates
- B_01.01, B_01.02, B_02.01, B_02.02, B_03.02, B_04.01, B_05.01, B_05.02, B_06.01, B_07.01
- Columns
- c0020, c0030, c0040, c0050, c0060, c0070, c0080, c0090, c0100, c0110, c0120, c0140, c0170, c0180
- Taxonomy version
- eba-4.0-errata5
- Status
- founder-approved
Reviewed at gate 1 (founder) on
Content last changed
Official control text (EBA, verbatim)
Extensible main property and explicit key dimension must only be reported with one of the restricted value of a hierarchy
Source: EBA technical check 503 (sheet "DPM Technical Checks", category "DPM Technical Checks" in the official overview of the RoI technical checks). The RoI Builder runs it as structural check STRUCT-ENUM-VALUE.
What this rule checks
The check covers the enum-typed closed-list columns. Measured in eba-4.0-errata5, these are 30 columns across 10 templates - for example c0040 (Type of entity) in B_01.01 and B_01.02, c0020 (Type of contractual arrangement) in B_02.01, c0060 (Type of ICT services) in B_02.02, c0050 (Criticality or importance assessment) in B_06.01, c0050 (Substitutability of the ICT third-party service provider) in B_07.01. Selection is metadata-driven via the column's data type and its dictionary key (enum_key). The country and currency columns have their own validators of the same EBA check 503: STRUCT-COUNTRY-VALUE and STRUCT-CURRENCY-VALUE.
Every non-empty cell must be one of the column's allowed DPM values. The source of truth is the curated taxonomy dictionary set (AllowedValue sets of the taxonomy package). The comparison is exact, character by character, against the verbatim value codes - the canonical cell value is the prefixed dictionary code (e.g. eba_CO:x1), never the human-readable label. The finding parameters carry the offending value, the dictionary key, a sample of allowed codes and the total size of the list.
An empty cell is skipped here: emptiness of key columns (e.g. c0060 Type of ICT services in B_02.02) is STRUCT-MANDATORY; requiredness of data columns is W2 business (warnings).
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 label was typed instead of the code: "Standalone arrangement" instead of eba_CO:x1.
- The prefix is missing or wrong: x1 or CO:x1 instead of eba_CO:x1.
- A code from a different column's dictionary was used - each column has its OWN allowed list.
- A stray space or different letter case - the comparison is exact.
How to fix it, step by step
- Open the flagged template and find the row - the finding gives the row number, the key values and the offending value.
- Read the finding parameters: they show sample allowed codes of the column's dictionary and its total size.
- Replace the cell content with the exact dictionary code (with the prefix, e.g. eba_CO:x1) that matches what you meant.
- Run the validation again and confirm the finding is gone.
Example: fails vs passes
Fails - the label instead of the code; the finding points at column c0020 of this B_02.01 row (dictionary ei1418, 3 codes):
| c0010 (Contractual arrangement reference number) | c0020 (Type of contractual arrangement) |
|---|---|
| CTR-1 | Standalone arrangement |
Passes - the dictionary code:
| c0010 (Contractual arrangement reference number) | c0020 (Type of contractual arrangement) |
|---|---|
| CTR-1 | eba_CO:x1 |
The code eba_CO:x1 carries the label "Standalone arrangement" in the dictionary - the cell must hold the code, the label stays in the UI.
Related rules
- STRUCT-COUNTRY-VALUE - the same EBA check 503 on the 8 country columns (eba_GA codes).
- STRUCT-CURRENCY-VALUE - the same EBA check 503 on the 3 currency columns (eba_CU codes).
- STRUCT-MANDATORY - emptiness of the key dictionary columns (e.g. c0060 in B_02.02) is reported there.
- v8804_m - an example of a W2 rule that reads dictionary codes (type of entity) inside its condition: dictionaries also drive warning-level logic.
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.