我想构建一个作业,轮询邮箱中几封带有附件的电子邮件之一(不要问我为什么企业不愿意为网络服务付费,但我们就是这样)。电子邮件可以按任意顺序出现,该过程将轮询邮箱,下载找到的附件,然后返回一个状态代码,该代码包含基于遇到的文件的状态位位掩码。
我希望 autosys 批处理随后为每个文件启动一个处理作业,具体取决于状态结果中的相关位是否已设置。对于少量作业,后备方案是检查每个唯一的位组合,并启动与返回的数字相对应的适当作业。但是,超过 2-3 个状态位,这将开始变得难以处理。
Autosys 是否可以以某种方式查看返回值中的特定位 - 相当于:
- 如果设置了位 0(结果 & 0x01 = 0x01),则运行作业 A
- 如果设置了位 1(结果 & 0x02 = 0x02),则运行作业 B
- 如果设置了位 2(结果 & 0x04 = 0x04),则运行作业 C
... 等等?
答案1
听起来你正在寻求实现某种流程控制。请记住,Autosys 对你的电子邮件或自定义代码等一无所知。它根据先决条件和工作流程做出决策。
就您而言,我会做类似的事情,其中我有 MAIL_BATCH 框。里面有一个 MAIL_CHECK 命令,它会执行轮询等操作,然后返回退出代码 (0,1,2,3)。因此,0-2 是作业 A、B、C 的条件,3 是错误条件。接下来,您有 MAIL_JOB_A、MAIL_JOB_B、MAIL_JOB_C 命令,并且您根据之前的返回代码做出执行决定。因此,MAIL_JOB_A 具有前提条件 S(MAIL_JOB_CHECK) AND E(MAIL_JOB_CHECK)=0。下一个作业将检查 E(MAIL_JOB_CHECK)=1 等。