Утилиты ODI (также называемые командами) это команды, предоставляемые для выполнения определенных задач. Это могут быть простейшие команды, вроде ожидания определенного времени или вывода звукового сигнала, или это могут быть сложные процедуры выполнения ANT скриптов или чтения электронной почты с сервера.
Вызовы этих утилит могут быть добавлены в пакеты, процедуры или модули знаний. Также возможно вызывать их прямо из командной строки операционной системы.
Добавление вызова утилиты в пакет:
- Откройте пакет и перейдите на вкладку Diagram.
- Если окошко с утилитами не отображается - нажмите на иконку.
- Выберите необходимую утилиту из общего списка, или найдите нужную команду в соответствующей группе.
- Кликните на названии утилиты, а затем на пустом месте на диаграмме пакета.
- После выбора нужных утилит закройте окно с утилитами или просто выберите инструмент Free choice.
- На вкладке свойств можно установить параметры с которыми будет вызываться выбранная утилита.
- Сохраните внесенные изменения.
Возможна организация потока выполнения нескольких команд в зависимости от результата (успешное или неуспешное выполнение) текущей команды.
Примеры:
Отправка почты из ODI или Как установить параметры вызова сценария через команду.
Использование в процедурах и модулях знаний:
Примечание. Возможно использование команд ODI как на источнике (вкладка Source), так и на приемнике (вкладка Target).
Примечание. Технология Sunopsis API не поддерживает опции транзакций или опцию Commit.
Вызов утилит из командной строки:
startcmd <команда> [<параметры>]*
Внимание! На платформе Windows необходимо обрамлять аргументы содержащие знак равно (=) или пробелы при помощи двойных кавычек. Таким образом, вызовы команд могут немного отличаться в Windows и Unix.
Внимание! Наименование команды регистрозависимо.
Пример:
startcmd.bat OdiSleep "-DELAY=5000" (Windows)
./call startcmd.sh OdiSleep -DELAY=5000 (UNIX)
Расширенное использование утилит ODI.
Существует возможность прямого использования в параметрах вызова команд ODI переменных, последовательностей, вызовов ODI API или результатов запроса (Select).
Переменные и последовательности.
Использовать переменные или последовательности в командах достаточно просто. Вы можете указать полное наименование переменной в формате #Код_Проекта.Наименование_Переменной в том месте команды, где необходимо использовать значение переменной или последовательности.
Нет необходимости обрамлять наименование кавычками. При использовании редактора выражений указание наименования проекта или слова Global для глобальных переменных также не обязательно.
Пример:
OdiOutFile -FILE=/temp/testsequence.txt
Значение (следующее) последовательности: #SEQ01_NEXTVAL, значение переменной: #VAR01
Вызовы Oracle Data Integrator API.
Методы API используются для генерации кода из метаданных, хранящихся в репозитории. Далее результаты этой генерации могут быть использованы в командах ODI.
Примечание: Доступность вызовов методов API зависит от места использования команд ODI. Например, метод getOption, используемый для получения опций процедуры или модуля знаний не имеет смысла использовать как шаг пакета.
Пример:
OdiOutFile -FILE=/temp/testoption.txt Опция модуля знаний под названием MY_KM_OPTION имеет следующее значение: <%=odiRef.getOption( "MY_KM_OPTION" )%>
Использование результатов запроса (Select).
При разработке модуля знаний или шага процедуры, есть возможность определить для вкладки Source некое SQL SELECT выражение (для технологий, имеющих возможности использования языка запросов SQL), а затем на вкладке Target использовать результаты этого SELECT-а (для технологии Sunopsis API).
Смотри, например, как организовано получение наименования схемы (каталога) БД в заметке Сбор статистики для таблиц MS SQL Server.
Для каждой строки, возвращенной выражением SELECT, будет выполнен запуск команды ODI. Значения колонок, возвращаемых селектом, можно использовать как фактические параметры команды ODI. Для этого необходимо поставить перед именем колонки префикс #. Далее, в процессе выполнения, вместо имени колонки будет подставлено ee значение.
Примечание: При использовании алиасов для колонок, необходимо в команду передавать именно наименование алиаса вместе с префиксом.
Пример:
Source Command (Oracle):
select COUNTRY_NAME, POPULATION/1000 as POP_SMALL from COUNTRY
Target Command (Sunopsis API):
OdiOutFile -FILE=/temp/testsequence.txt
В стране #COUNTRY_NAME около #POP_SMALL тысяч жителей.
Что есть интересного помимо документации по этому поводу? Например, вот что нашлось в самом главном файле startcmd.bat, который запускает команды ODI.
Ну а дальше происходит вызов Java и вызывается конкретный класс вместе с параметрами:
%ODI_JAVA_START% com.sunopsis.dwg.tools.%*
< Предыдущая | Следующая > |
---|