如何在PARM参数(JCL)中使用句点?

时间:2014-02-05 15:46:10

标签: mainframe period jcl zos

情况如下。 我有PARM参数:

CSQ1            - Queue manager name
CARD.PAYMENTS   - Request queue name
CCD3050.REPLY   - Reply queue name
CCD3050         - Contestant user ID
400.05          - Payment amount
"MY PAYMENT"    - Payment description

在我的JCL中,我这样写了:

//PAYMENT  EXEC PGM=PAYMENT,REGION=1024K,                               
//             PARM='CSQ1,CARD.PAYMENTS,CCD3050.REPLY,CCD3050,          
//             400.05,"MY PAYMENT"'

我遇到了麻烦。我写道:

//             PARM=('CSQ1,CARD.PAYMENTS,CCD3050.REPLY,CCD3050',
//             '400.05,MY PAYMENT')

也遇到了麻烦。 然后我写道:

PARM=(CSQ1,CARD.PAYMENTS,CCD3050.REPLY,CCD3050,400.05,MY PAYMENT)
  • 和!!! 有这个: 2 IEFC624I在PARM领域不正确使用期间 这是什么意思? 以及如何正确使用JCL的期限?我没有在任何地方找到这个信息...... 求救!

1 个答案:

答案 0 :(得分:4)

如果您有.=, ' ( ) (可能会有更多,我作为PARM的的一部分,我不想尝试使用它,那么你需要确保它们不会被转换器/解释器解释。

您可以通过使用单引号或括号绑定内容来实现此目的,或者您可以将它们组合在一起,但如果您的PARM 包含此类内容,则必须保护它们(就像您{{{ 1}}其他操作系统,语言中的东西。)

这是JCL语言参考的链接。您可以按照页面内的链接完全浏览手册,或下载PDF。 http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/iea2b690/16.8.1?SHELF=&DT=20090526233806&CASE=

关于你的另一个问题,我已经向你展示了一个可以包含所有这些值的PARM。

escape

// PARM=('CSQ1,CARD.PAYMENTS,CCD3050.REPLY,CCD3050,400.05,MY PAYMENT')

就JCL而言,是否有效。

您可以通过多种方式保护// PARM='CSQ1,CARD.PAYMENTS,CCD3050.REPLY,CCD3050,400.05,MY PAYMENT'

那些PARM都适合一条线。它们很难维护。把它们放在括号中,每行一个元素:

.