我有一份由QSECOFR提交的批处理作业。该作业执行配置文件切换到普通用户。
然后,CHGJOB命令将作业的默认outq更改为常规用户配置文件的outq
然后运行报告。
报告总是在与QSECOFR PRTDEV相关的outq上结束。尝试更改作业PRTDEV总是失败,但有关无法更改JOB PRTDEV的例外
我需要将报告转到JOB OUTQ。
报告之前的OVRPRTF对所有报告来说都是一项非常大的努力。有什么建议吗?
答案 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
命令中有两个参数:
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中使用打印机设备。这些天我拿着打印机输出然后通过电子邮件发送。