Skip to content

[BUG] KeyNotFoundException #690

Description

@hiroyuki0415
SELECT
    a.entitylogicalname,
    a.logicalname,
    a.displayname,
    a.attributetypename,
    os.name,
    os.displayname,
    os.optionsettype,
    'SELECT ''' + a.entitylogicalname + ''' AS [entityLogicalName], ''' + a.logicalname + ''' AS [attributeLogicalName], ' + a.logicalname + ' AS [value], ' + a.logicalname + 'name AS [valueName], ' + a.logicalname + ' AS [invalidValue] FROM ' + a.entitylogicalname + ' WHERE ' + tmp2.invalid_condition + ' GROUP BY ' + a.logicalname + ', ' + a.logicalname + 'name' AS sql
FROM
    metadata.attribute AS a
    INNER JOIN metadata.entity AS e ON a.entitylogicalname = e.logicalname
    INNER JOIN metadata.globaloptionset AS os ON a.optionset = os.metadataid
    OUTER APPLY (
        SELECT
            COUNT(*) AS count,
            STRING_AGG(CAST(st.value AS VARCHAR(MAX)), ',') AS [valid_values]
        FROM
            metadata.globaloptionsetvalue AS st
        WHERE
            st.optionsetid = os.metadataid
    ) AS tmp
    OUTER APPLY (
        SELECT
            a.logicalname + ' IS NOT NULL ' + IIF(
                tmp.count = 0,
                '',
                ' AND ' + a.logicalname + ' NOT IN (' + tmp.valid_values + ')'
            ) AS [invalid_condition]
    ) AS tmp2
WHERE
    -- e.logicalname LIKE 'prefix%' --success
    -- a.entitylogicalname LIKE 'prefix%' --error
    AND a.attributetypename IN ('PicklistType')
ORDER BY
    a.entitylogicalname,
    os.name;

If executed under the following conditions, a KeyNotFoundException occurs:

a.entitylogicalname LIKE 'prefix%'

If you run it under the following conditions, it will be successful:

e.logicalname LIKE 'prefix%' 

Environment

  • SQL 4 CDS edition: XrmToolBox
  • Results of SELECT @@VERSION:
Microsoft Dataverse - 9.2.25071.172
	SQL 4 CDS - 10.0.0.0
	7 22 2025 14:23:13
	Copyright © 2020 - 2025 Mark Carrington

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions