AX 2012 R3
В настройках для плана счетов есть форма из темы. Есть возможность задавать критерии с условием "начинается с".
В итоге все это потом прилетает в запрос с участием таблицы DimensionConstraintNodeCriteria (\Classes\DimensionAttributeValueGroupValidation\findConstraintNodeByParentValue)
Одно из условий в запросе:
X++:
(_displayValue like dimensionConstraintNodeCriteria.WildCardString)
_displayValue - собственно значение аналитики которое проверяется.
Наткнулся на то что запрос не возвращает то что должен бы был. Упростил, посмотрел трассировку. Первый запрос просто сделал чтобы показать, что есть на самом деле в таблице. Второй запрос возвращает строку. Третий не возвращает ничего:
X++:
SELECT * FROM DIMENSIONCONSTRAINTNODECRITERIA T1
WHERE ((PARTITION=5637144576) AND (RECID = 5637213979 OR RECID = 5637213968))
SELECT * FROM DIMENSIONCONSTRAINTNODECRITERIA T1
WHERE ((PARTITION=5637144576) AND ((N'48\_0000' LIKE WILDCARDSTRING ESCAPE '\' ) AND RECID = 5637213979))
SELECT * FROM DIMENSIONCONSTRAINTNODECRITERIA T1
WHERE ((PARTITION=5637144576) AND ((N'58\_0303040302' LIKE WILDCARDSTRING ESCAPE '\' ) AND RECID = 5637213968))
В _displayValue значение были без бэкслэша. Их аксапта сама подставляет.
Это что так плохо реагирует like на подчеркивание в тексте кода?
И что с этим собственно сделать малой кровью?