создать задание control-M на лету

Можно ли динамически создавать задания control-M.

Вот что я хочу сделать: я хочу создать две рабочие места. Первую я называю заданием по обнаружению, второе — заданием по шаблону.

Задание обнаружения выполняется для некоторой базы данных и возвращается с массивом параметров. Затем я хочу запустить задание шаблона для каждого элемента в возвращаемом массиве, передавая этот элемент в качестве параметра. Итак, если задание обнаружения вернуло [a1,a2,a3], я хочу запустить задание шаблона 3 раза, первый раз с параметром a1, второй с параметром a2 и третий с параметром a3.

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

Это возможно ? И если да, то как это нужно сделать?


person ward    schedule 29.09.2015    source источник


Ответы (2)


Между различными компонентами Control-M это возможно.

Исходное задание будет иметь вкладку «Вкл./выполнить» — с ее помощью можно выполнять последующие действия на основе выходных данных первого задания. Это можно настроить по-разному, но в основном это работает по принципу «сделай x, если произойдет y». «y» может быть статусом задания (в порядке или нет), кодом выхода (0 или нет) или текстовой строкой в ​​стандартном выводе (например, «система хочет, чтобы вы выполнили еще 3 задания»). «Х» также может быть целым списком вещей — требование в работе, добавление определенного условия, установка переменных.

Вы должны проверить переменные автоматического редактирования (я думаю, они изменили их имена в последних версиях), но это ваши определяемые пользователем переменные (используйте утилиту ctmvar для их определения/изменения). Переменные могут быть определены только для конкретного задания или для всей системы.

Если вы не получаете желаемой степени контроля, то следующим шагом будет использование утилиты ctmcreate — это позволяет полностью определить задание «на лету».

person Mark    schedule 05.10.2015
comment
Спасибо, Марк, за ответ, выглядит многообещающе... нужно взглянуть на эту утилиту ctmcreate! - person ward; 07.10.2015

Вы можете сделать это, и способ, которым я обнаружил, что это сработало, заключался в цикле создания скрипта, который затем подключается к вашему имени переменной из вашего поиска. Затем вы можете сделать то же самое для номера задания, используя счетчик для создания имени задания, такого как adhoc0001, adhoc0002 и т. д. Что я сделал, так это создал n количества специальных заданий, как того требует запрос, упорядочив их в новом порядке. group, а затем, как только группа будет завершена, отправьте условия нисходящего потока. Если один из них не работает, вы можете повторно запустить его как обычно. Я использую ctmcreate -input_file . Который работает удовольствие.

person Andy Wrench    schedule 22.11.2019