0

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

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

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

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

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

4

2 回答 2

0

你可以这样做,我发现可行的方法是循环创建一个脚本,然后从你的查找中插入你的变量名。然后,您可以通过使用计数器生成作业名称(例如 adhoc0001、adhoc0002 等)对作业编号执行相同操作。我所做的是根据查询的要求创建 n 个临时作业,将它们排序为新的组,然后在组完成后发送下游条件。如果一个失败,那么你可以像往常一样重新运行它。我使用 ctmcreate -input_file 。这是一种享受。

于 2019-11-22T15:36:41.600 回答
0

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

原始作业将有一个 On/Do 选项卡 - 这可以根据第一个作业的输出执行后续操作。这可以设置为以各种方式工作,但它基本上是按照“如果 y 发生就做 x”的原则工作的。'y' 可以是作业状态(正常与否)退出代码(0 或否)或标准输出中的文本字符串(例如“系统希望您再运行 3 个作业”)。“x”也可以是一个完整的列表——工作中的需求、添加特定条件、设置变量。

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

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

于 2015-10-05T16:38:39.273 回答