动态创建控制-M工作

时间:2015-09-29 12:11:36

标签: control-m

是否可以动态创建control-M作业。

这是我想做的事: 我想创造两个工作岗位。第一个我称之为发现工作,第二个我称之为模板工作。

发现作业针对某个数据库运行,并返回一个参数数组。然后,我想为返回的数组中的每个元素启动模板作业,并将该元素作为参数传递。因此,如果发现作业返回[a1,a2,a3],我想要启动模板作业3次,第一次使用参数a1,第二次使用参数a2,第三次使用参数a3。

仅当每个模板作业成功完成时,发现作业才会显示为已成功完成。如果其中一个模板作业实例失败,我应该能够手动重试该一个实例,当它成功时,Discovery作业应该会成功。

这可能吗?如果是这样,应该怎么做?

2 个答案:

答案 0 :(得分:0)

在Control-M的各个组件之间,这是可能的。

原始作业将具有“开/关”选项卡 - 这可以根据第一个作业的输出执行后续操作。这可以设置为以各种方式工作,但它基本上按照" do x的原则工作,如果y发生"。 ' y'可以是作业状态(好或不)退出代码(0或不)或标准输出中的文本字符串(例如"系统希望您再运行3个作业和#34;)。 ' x'也可以是一整套事物 - 工作中的需求,添加特定条件,设置变量。

您应该查看自动编辑变量(我认为他们已经在最新版本中更改了这些变量的名称),但这些是您的用户定义变量(使用ctmvar实用程序来定义/更改这些变量)。可以仅为特定作业或整个系统定义变量。

如果您没有获得所需的控制程度,那么下一步就是使用ctmcreate实用程序 - 这允许完整的即时作业定义。

答案 1 :(得分:0)

您可以做到这一点,我发现有效的方法是遍历创建脚本,然后从查找中插入变量名。然后,您可以通过使用计数器生成作业名称(如adhoc0001,adhoc0002等)来对作业编号执行相同的操作。我要做的是根据查询的需要创建n个临时作业,将它们排序为新组,然后在组完成后发送下游条件。如果失败,则可以正常运行。我使用ctmcreate -input_file。哪个有效。