Contents
Обработка ошибок в Qlikview
Существует пять специальных переменных, которые можно использовать для обработки ошибок в сценарии:
- ErrorMode
- ScriptError
- ScriptErrorDetails
- ScriptErrorCount
- ScriptErrorList
ErrorMode
Определяет действие, которое будет выполнено QlikView при возникновении ошибки во время выполнения сценария. По умолчанию переменная равна 1 (ErrorMode=1), скрипт остановится и пользователю будет предложено ввести действие («non-batch» режим). С помощью значения параметра ErrorMode=0 QlikView будет игнорировать ошибки и продолжит выполнение скрипта со следующего оператора сценария. Если установить ErrorMode=2, то QlikView выдаст сообщение «Выполнение скрипта не удалось…» при неудаче сразу же, без запроса действия от пользователя.
Пример:
1 |
set ErrorMode=0; |
ScriptError
Код ошибки последнего выполненного участка кода. Эта переменная сбрасывается в 0 после каждого успешно выполненного участка скрипта (сценария загрузки). Если произошла ошибка, то значению переменной будет присвоен код внутренней ошибки QlikView. Код ошибки представляет собой двойное значение из числа и текстового значения.
Коды ошибок:
- 1 No Error — 1 Нет ошибки;
- 2 General Error — 2 Общая ошибка;
- 3 Syntax Error — 3 Ошибка синтаксиса;
- 4 General ODBC Error — 4 Общая ошибка ODBC;
- 5 General OLEDB Error — 5 Общая ошибка OLE DB;
- 6 General XML Error — 6 Общая ошибка XML;
- 7 General HTML Error — 7 Общая ошибка HTML;
- 8 File Not Found — 8 Файл не найден;
- 9 Database Not Found — 9 База данных не найдена;
- 10 Table Not Found — 10 Таблица не найдена;
- 11 Field Not Found — 11 Поле не найдено;
- 12 File Has Wrong Format — 12 Неверный формат файла;
Пример:
1 2 3 4 5 6 |
set ErrorMode=0; load * from abc.csv; if ScriptError=8 then exit script; //no file; end if |
Есть еще один способ, который можно использовать:
1 2 3 4 5 |
set ErrorMode=0; load * from abc.csv; if '$(ScriptError)'='File Not Found' then exit script; end if |
ScriptErrorDetails
Возвращает подробное описание ошибки для некоторых кодов, которые были указаны выше. Самое главное это то, что переменная будет содержать сообщение об ошибке, которое возвращает драйвер ODBC и OLEDB для кодов ошибок 3 и 4.
ScriptErrorCount
Возвращает общее количество участков кода (statements), которые привели к ошибках во время выполнения сценария загрузки. Эта переменная всегда сбрасывается в 0 в начале выполнения скрипта.
Пример:
1 2 3 4 5 |
Set ErrorMode=0; Load * from abc.csv; if ScriptErrorCount >= 1 then exit script; end if |
ScriptErrorList
Эта переменная будет содержать объединенный перечень всех ошибок скрипта, которые произошли в ходе последней загрузки. Каждая ошибка — это отдельная строка. Значения всех вышеприведенных переменных сохраняется после выполнения скрипта. Значения ScriptError, ScriptErrorDetailed, ScriptErrorCount и ScriptErrorList для обработки ошибок в скрипте зависят от использования ErrorMode = 0.
Leave a Reply