Хотел сделать функцию которая подгружает лог компиляции и перекомпилирует его.
Но выяснил, что кнопка "Перекомпилировать всё" не перекомпилирует все объекты, а только некоторые.
В классе SysCompilerOutput.reCompileElement:
X++:
likePath = SysCompilerOutput::buildLikePath('\\');
в результате чего переменная likePath становится равной "\\\\*"(Четыре бэкслеша и звёздочка).
Дальше вызывается запрос:
X++:
while select forupdate tmpCompilerOutput
group by UtilElementType, SysUtilElementName
where tmpCompilerOutput.TreeNodePath like likePath
{
compileSetInsert(tmpCompilerOutput.TreeNodePath);
}
Который отбирает некоторые элементы из лога компиляции, которые будут перекомпилироваться. Но не тот где ошибка есть.
Вопрос: Какие элементы должны быть выбраны этим запросом в чём вообще его смысл - как отработает Like?
Мне кажется что можно было бы заменить его на просто *.
Ещё не совсем понятно если TreeNodePath не указан в group by, почему он использован внутри запроса и что в нём будет?