Cobol 用于打印AFP的动态表单

Cobol 用于打印AFP的动态表单,cobol,mainframe,jcl,Cobol,Mainframe,Jcl,我试图将AFP打印到sysout,但JCL不知道(也不知道)FORMS参数。我目前的解决方案是创建动态JCL并将其旋转到INTRDR,但这是一个较弱的解决方案,因为作业将不在我们的调度程序的控制之下。。。因此,夜间操作员将不会注意到异常终止或其他问题 我开始发明一种通过COBOL程序打印AFP的方法。我使用BPXWDYN动态创建SYSOUT DD,这允许我根据需要设置FORMS参数。但下一步是把AFP扔给那个DD 我原以为我可以从COBOL程序中动态调用IEBGENER,但这需要S0C4 我可以

我试图将AFP打印到sysout,但JCL不知道(也不知道)FORMS参数。我目前的解决方案是创建动态JCL并将其旋转到INTRDR,但这是一个较弱的解决方案,因为作业将不在我们的调度程序的控制之下。。。因此,夜间操作员将不会注意到异常终止或其他问题

我开始发明一种通过COBOL程序打印AFP的方法。我使用BPXWDYN动态创建SYSOUT DD,这允许我根据需要设置FORMS参数。但下一步是把AFP扔给那个DD

我原以为我可以从COBOL程序中动态调用IEBGENER,但这需要S0C4

我可以在COBOL程序中将AFP记录从一个DD移动到另一个DD,但这将我限制为一个LRECL。。。在整个系统中,我对AFP有许多不同的LRECL定义,COBOL必须在编译时知道LRECL

有什么想法吗?是否可以动态调用IEBGENER而不获取S0C4?还有其他我没想到的想法吗


提前感谢…

你的问题不是很清楚,但我想知道你是否应该考虑使用APCIF程序,称为APKACIF而不是IEBGENR。该实用程序将合并您的数据,并将AFP FORMDEF、PAGEDEF对象解析为数据集或打印流。

您想过编写一个小型汇编程序吗?您可以在BPXWDYN调用中指定LRECL,DCB不需要指定LRECL;它将在打开时从DCB参数获取。模拟IEBGENER的程序非常简单

或者,查看使用FIELDS=COPY参数调用SORT。SORT也不需要LRECL。或者编写一个REXX脚本


有很多方法可以做到这一点;你只需要看看COBOL盒子外面

ACIF用于将AFP流划分为资源、索引和数据。这不是印刷用的。即使如此,您的解决方案也没有解决这个问题:dynamic FORMS=打印的参数。让我知道什么地方不清楚,我会尽量解决它以增加清晰度。实际上,ACIF可以用于打印,我们经常使用它将AFP传送到互联网浏览器。只是一个不同的“打印机”设备。您提到的那些“资源”恰好是与打印流关联的formdef/pagedef和OGL。我不清楚的是你的目标是什么。ACIF可能很不合适,但不清楚你的目标是什么。照目前情况看,你似乎从其他人那里得到了合适的答案。我不确定我能添加什么。我不同意(你不能添加任何东西)。我很想听到更多关于使用ACIF打印的信息。IBM有一款安装在web浏览器中的产品。您可以在谷歌上搜索IBM AFP查看器插件。下面是一个讨论同一主题的链接:我们使用APKACIF实用程序将AFP文档转换为打印流,以捕获输出数据集中的资源。然后,我们以二进制模式将文档FTP到工作站(或服务器),在那里,在web浏览器中安装了插件的用户可以调出文档并查看它们,就像它们是打印在纸上一样。APKACIF还提供索引服务,以便您可以选择特定的文档进行查看。a)我们这些低级的应用程序程序员只能在我的商店中使用COBOL应用程序,b)我的汇编程序太生锈了,需要几个月才能恢复到最快的速度。雷克斯在生产中处于劣势。排序不写入动态窗体=参数。但我明白你的意思。。。调用SORT而不是IEBGENER。那可能有用!p、 我的整个应用程序将很快转移到Unix,所以这将只是一个不愉快的记忆:-)汇编程序就像骑自行车一样。它很快就会回来。:)你忘了一部分。。。就像骑没有座位的自行车一样!:-)S0C4是在排序。最后,我想我可以使用SORT In standalone将任何AFP数据集复制到LRECL 30000,然后使用它。我的AFP文件没有一个比这更大,这应该能满足COBOL的需要。我的整个系统将很快转移到Unix,所以我现在不愿意增加太多的复杂性。