具有配置文件交换和作业outq的AS / 400批处理作业

时间:2017-06-22 17:05:00

标签: ibm-midrange

我有一份由QSECOFR提交的批处理作业。该作业执行配置文件切换到普通用户。

然后,CHGJOB命令将作业的默认outq更改为常规用户配置文件的outq

然后运行报告。

报告总是在与QSECOFR PRTDEV相关的outq上结束。尝试更改作业PRTDEV总是失败,但有关无法更改JOB PRTDEV的例外

我需要将报告转到JOB OUTQ。

报告之前的OVRPRTF对所有报告来说都是一项非常大的努力。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

简答:您可能需要设置输出队列而不是打印机设备。

长答案: 从IBM i打印是一个黑盒子,具有无数的配置。让我们来看看一些默认值。选择打印位置所涉及的完整对象列表包括系统值,作业描述,用户配置文件,工作站描述,打印机文件和SBMJOB本身。在这种情况下,我们只关心打印机文件和作业。

打印机文件

从打印机文件开始,所有打印输出都通过打印机文件,甚至使用程序描述的输出输出。默认打印机文件是QSYSPRT,它包含适当属性的默认值,它们是:

Device:                          DEV                      
  Printer  . . . . . . . . . . .                *JOB______

Spool the data . . . . . . . . . SPOOL          *YES______        
Spooled output queue . . . . . . OUTQ           *JOB______        
  Library  . . . . . . . . . . .                  __________          

如果SPOOL*YES,则输出将转到OUTQ属性的输出队列,否则会直接打印到DEV属性中指定的打印设备。请注意,默认情况下,打印机输出是假脱机的,因此会被发送到指定的输出队列。

OUTQ属性

OUTQ属性有两个特殊值,*JOB*DEV*JOB是默认值,并导致从作业本身获取输出队列。请注意,如果我们使用默认值,则不使用打印机文件中的DEV属性。事实上,在打印机文件中使用DEV属性进行假脱机打印输出的唯一方法是在*DEV属性中指定OUTQ。这里的第三个选项是指定从此打印机文件假脱机的文件转到特定的命名输出队列。

工作 - CHGJOB

当作业通过启动作业的命令,作业说明和系统值的复杂混合启动时,将选择作业的输出队列和打印设备。幸运的是,一旦作业运行,我们不必理解这一点来重定向输出。请记住,从打印机文件中,如果输出是假脱机的,则默认情况下会将其定向到输出队列,而不是打印机设备。 CHGJOB命令可用于更改当前作业的输出队列。我们可能感兴趣的CHGJOB命令中有两个参数:

Print device . . . . . . . . . . PRTDEV         *SAME_____   
Output queue . . . . . . . . . . OUTQ           *SAME_____     
  Library  . . . . . . . . . . .                  __________

如果我们使用打印机文件中的默认值,设置PRTDEV参数将无效,因为我们将输出发送到输出队列。我们需要设置OUTQ参数。我们仍然可以通过将PRTDEV参数设置为OUTQ来告诉作业使用*DEV参数,但这里只需设置OUTQ参数就更容易了。这里还有其他选择。对于交互式作业,如果我们希望将用户的打印输出定向到工作站附近的打印机,我们可以使用*WRKSTN将作业的输出定向到工作站描述中指定的输出队列。使用或将用户的打印输出发送到用户配置文件中指定的输出队列。正如您所知,有一百万个配置选项,我甚至没有在这个答案中涵盖大部分配置。如果需要更多信息,可以查看IBM Knowledge Center中的“工作管理和打印手册”。 https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzahg/rzahgprint.htm

答案 1 :(得分:0)

这可以追溯到早期,如果用户在pensacola上登录终端,程序将在pensacola中使用打印机设备。这些天我拿着打印机输出然后通过电子邮件发送。