Поиск и исправление ошибок в SRL
Ошибки синтаксиса SRL отображаются тогда, когда PolyAnalyst не может определить синтаксис вашего запроса.
Символы или последовательность символов после слова "at" в ошибке обозначают место, где PolyAnalyst впервые столкнулся с проблемой.
Проблемный символ также можно определить по номеру строки и колонки. Заворачивание текста не влияет на номер строки; это почти всегда 1, даже если ошибка произошла во второй строке. Номер строки будет другим, если вставить в выражение обрыв строки с помощью клавиш CTRL+Enter и ошибка появится на следующей строке.
Слово "Col" - сокращенное от column (колонка). Это смещение (число предшествующих символов) внутри текущей строки символа после слова "at" в сообщении об ошибке. Это еще один способ обнаружить то место, где PolyAnalyst впервые столкнулся с проблемой внутри выражения.
Иногда PolyAnalyst видит ошибку синтаксиса не там, где она в действительности допущена. Например, если мы наберем название [Моя колонка], опустив при этом закрывающую квадратную скобку, PolyAnalyst выдаст сообщение о том, что ошибка допущена около открывающей скобки, поскольку закрывающая не будет найдена.
Эта ошибка может быть вызвана несколькими факторами. Вот некоторые из них:
-
Неверное использование пробела - не забудьте отделить операторы от значений с помощью хотя бы одного пробела
-
Неверное использование квадратных скобок при указании колонки
-
Набор буквенного значения при неверном использовании кавычек
-
Отсутствие круглых скобок или лишние круглые скобки
-
Ошибка в названии функции
-
Использование лишней запятой или пропущенная запятая при указании аргументов функции
-
Неверное использование оператора, например, набор 1 + 2 без двойки. Или набор 1 + + 2, т.е. пропуск среднего числа или дублирование оператора
PolyAnalyst периодически принимает неверный синтаксис SRL
В некоторых случаях PolyAnalyst допускает неполное соблюдение правил синтаксиса, однако подобные случаи ограничены. Это выражения, которые ведут к ошибке и не должны быть запущены, но запускаются, т.к. в очень редких случаях система PolyAnalyst допускает запуск выражений. Записывать выражения таким образом не рекомендуется. Это исключение не допускает погрешностей в написании выражения, которые затрудняют его прочтение или понимание. Оно скорее распространяется на предотвращение работы с очевидными синтаксическими ошибками, поскольку это очень утомительно.
Нестрогая оценка синтаксиса иногда затрудняет поиск и исправление ошибки в выражении, которое не дает желаемое поведение. Вы можете исправить данный участок с нестрогим синтаксисом, но ваше выражение все равно может работать не так, как вы хотите, поскольку проблема может заключаться в другом участке выражения. Ниже представлены примеры нестрогого синтаксиса:
-
1,2 - запятая и число 2 пропускаются, возвращаемое значение 1 (только если 2 - последняя часть выражения).
-
(1 + 2)) - лишняя закрывающая скобка пропускается (только если это - последняя часть выражения)
-
"собака"" - лишние кавычки пропускаются (только если это - последняя часть выражения)
Поиск и исправление ошибок типа "колонка не найдена"
При наборе строки, например "abc", если заключить строку в двойные кавычки, все символы внутри этих кавычек будут рассматриваться как литеральные значения. Относительно того, что находится вне двойных кавычек, PolyAnalyst полагает, что вы пытаетесь сослаться на значение в колонке таблицы. Чтобы оценить это значение, можно набрать имя колонки. Если в имени колонки есть пробел, то нужно заключить название колонки в квадратные скобки, чтобы система понимала, что вы ссылаетесь на одну колонку, например [Моя колонка].
Такая ошибка появляется тогда, когда вы ссылаетесь на имя колонки в своем выражении, но эту колонку невозможно найти в списке существующих колонок в таблице данных. Возможно вы неправильно ввели имя колонки, либо допустили ошибку в названии. Имена колонок учитывают регистр внутри SRL-выражений, следовательно вы могли допустить ошибку в регистре. Чтобы определить, существует ли колонка в узле, например в узле Фильтрации строк или Производные колонки, необходимо соединение с предшествующим узлом, причем этот предшествующий узел должен находиться в состоянии, в котором известны выходные колонки (например, настроенный узел источника данных, или узел источника данных, который завершил выполнение). Если предшествующий узел находится в состоянии, при котором выходные колонки неизвестны для соединенных с ним узлов, то узел Фильтрация строк, узел Производные колонки, а также все узлы, в которых оцениваются SRL-выражения, будут отображать такую ошибку, поскольку в этом случае отсутствует список доступных колонок для проверки существования колонки в данном выражении.
Поиск и исправление ошибок типа "неверное число аргументов"
Данная ошибка отображается тогда, когда в функции используется неверное число аргументов.
Обратите внимание, что эта ошибка часто случается из-за того, что вы забываете использовать запятую в выражении, либо добавлена лишняя запятая. Проверьте значения между запятыми на участке выражения между двумя круглыми скобками и определите, где неверно использована запятая, либо где используется слишком много значений.
Поиск и исправление ошибок типа "несоответствие типов аргументов"
Эта ошибка отображается тогда, когда PolyAnalyst определяет использование функции внутри выражения и оценивает ее аргументы, а также определяет соответствие типа данных одного или нескольких аргументов.
В этом случае название функции обозначается как "X", например "abs": типы аргументов различаются.