запускать рабочий процесс Informatica на основе столбца состояния в таблице оракула

Я хочу реализовать приведенный ниже сценарий без использования процедуры или триггера pl/sql.

  1. У меня есть таблица emp_details с столбцами (empno,ename,salary,emp_status,flag,date1).

  2. Если кто-то обновит столбцы emp_status='abc' и flag='y', Informatica WF 1 будет находиться в постоянном рабочем состоянии и проверять значение emp_status «ABC».

  3. Если он нашел запись/записи, запросите все записи, и он вызовет WF 2.

  4. WF 1 передаст значение ename,salary,Date1 в WF 2 (Wf2 заполнит и вставит записи в таблицу emp_details2).

Как я могу сделать это, используя информационный подход вместо plsql или триггера?


person RonuRaj    schedule 07.11.2014    source источник


Ответы (3)


Если вы хотите добиться этого в режиме реального времени, запишите выходные данные WF1 в очередь сообщений, а во втором рабочем процессе WF2 подпишитесь на очередь сообщений, созданную из WF1.

Если у вас есть пакетный процесс. Создайте выходной файл из WF1 и используйте этот выходной файл в WF2. Вы можете легко настроить эту зависимость с помощью планировщиков заданий.

person Nav    schedule 07.11.2014
comment
Привет Бхарадвадж, Спасибо за ваш ответ. но я не разбираюсь в концепциях очереди сообщений. Не могли бы вы рассказать об этом подробнее? - person RonuRaj; 07.11.2014
comment
Привет, вы можете создать очередь сообщений с помощью бесплатной JMS или использовать IBM Websphere для MQ. Затем из Informatica вы можете создать источники и цели MQ, а затем вам нужно создать соединение с этой очередью. Используйте это соединение для чтения или записи данных в очереди. Как создать MQ, вероятно, выходит за рамки, потому что требуется много кодирования и настройки конфигурации. - person Nav; 07.11.2014
comment
Привет, Бхардвадж. Есть ли другой способ без использования очередей сообщений? - person RonuRaj; 07.11.2014

Я не понимаю, зачем вообще нужны два рабочих процесса. Почему бы не выполнить emp_details2 обновление таблицы с помощью того же рабочего процесса, который ищет различия.

В любом случае, это можно сделать с помощью файла индикатора:

  1. WF1, работающий непрерывно, должен создать файл, если были обнаружены какие-либо изменения.
  2. WF2 должен работать непрерывно с EventWait, настроенным на ожидание файла индикатора, указанного выше. После обнаружения он должен использовать Assignment Task для переименования/удаления файла и извлечения нужных данных из источника и заполнения таблицы emp_details2.

Если вам так нужно, вы можете передать данные через файл индикатора

person Maciejg    schedule 07.11.2014

Вы можете сделать это в одном рабочем процессе. Создайте фиктивный сеанс, который проверяет наличие флага в таблице, после чего разделите поток на два на основе приведенных ниже условий ссылки.

Первый поток: условие связи, Session.Status=SUCCEEDED и SOURCE_SUCCESS_ROWS(count)>=1, затем запустите фактический сеанс, который загрузит данные

Второй поток: условие связи, Session.Status=SUCCEEDED и SOURCE_SUCCESS_ROWS=0, подключите его к задаче управления и отметьте рабочий процесс как завершенный.

Убедитесь, что вы запланировали рабочий процесс на уровне Informatica для непрерывного выполнения.

Ваше здоровье

person Volamr    schedule 19.11.2014