是否有JCL / MVS脚本变量中要避免的特殊字符列表

时间:2013-11-01 21:45:58

标签: printing special-characters mainframe webmethods jcl

我有一个生成随机PIN码的程序。这些引脚用Java生成,然后通过 NATURAL 程序存储在主机中。从那里开始,它们最终由批量JCL作业进行物理打印,该作业调用 MVS SCRIPT 来打印表单,并在其上显示引脚代码。

我之前遇到过一些特殊字符的问题,例如:|{}![]^~<>;由于某种原因导致打印不正确。我也因OCR原因删除了0OQ1l

最近,我注意到另一个无法正确打印的字符.,但.字符时出现错误PIN码的第一个字符。

因为我遇到了这个问题,我想我会看到我是否能找到其他特殊的自然 MVS脚本字符干扰我的程序操作,以便我现在可以测试它们,希望以后不会遇到这个问题或者必须回退到只使用OCR的AlphaNumeric字符。

修改

  • Java - Web应用程序在Solaris服务器上的Tomcat 6.x下运行。
  • 自然 - 使用代理生成的类(POJO)调用自然程序。
    • 我的理解是它使用 RPC 进行实际通信。
    • 该程序验证一些数据并将PIN与记录中的GUID一起存储在ADABAS中。
  • 有一个批处理作业可以打印表单。批处理作业是用JCL编写的。
    • 我对批处理作业的维护者的理解,以及表格内容是描述表单本身以及如何打印它们的实际语言是一种过时/不受支持的语言,称为 MVS SCRIPT
  • 脚本的底部部分如下所示:
//**********************************************************************
//* PRINT SORTED FORMS TO #### USING MVS SCRIPT                      
//**********************************************************************
PRINTALL EXEC PGM=DSMSPEXEC,PARM='LIST'
//* less 'interesting' lines omitted
SYSPRINT DD SYSOUT=*
PRINT1   DD SYSOUT=A, OUTPUT=*.C####,
            RECFM=VBM,LRECL=####,BLKSIZE=####     
//* less 'interesting' lines omitted
//SYSIN  DD *
  AUTH /* redacted */
  SCRIPT FROM(MYFORMS) (MESSAGE(ID TRACE) CONT -             
                        FILE(PRINT1) PROFILE(redacted) -      
                        NOSEGLIB DEVICE(PG4A) CHARS(X0A055BC))

.C ####是一个实际数字,是一个指向所选打印机的变量。

注意:我是网络程序员,我不会说大型机,JCL,MVS等。

2 个答案:

答案 0 :(得分:5)

我认为你会发现程序(pgm =)是DSMSPEXC而不是DSMSPEXEC。

我猜(可能是错的)我们谈论的是 Script / DCF (后来成为其他平台上的IBM Bookmaster / Bookmanager)。

脚本/ DCF基本上是基于GML的语言。来自GML的是SGML派生的( HTML XML SGML 语言的突出示例)。

在脚本中启动标记,结束标记。还有一些有宏的宏。在第1栏

.* ".*" in column 1 starts a line comment
.* .fo off is Format off (like <pre> in html)
.fo off

.* Starting an ordered list
:ol.
  :li.Item in orded list
:eol.

  Script   HTML
    :       <   - Starts tag
    .       >   - end of tag Script/DCF is generally pretty tolerant of .
    &       &   - Starts a variable

大多数特殊字符都有变量(&amp; gml。= :)。


担心的字符是

: - always
& - always
. - in column one or after a :.

如果没有翻译错误,其他字符应该没问题。字符集X0A055BC(Mainframe SONORAN SANS SERIF ??)可能没有所有特殊字符。

脚本/ DCF标签有手册。

答案 1 :(得分:0)

您的数据不会以任何方式影响JCL。

我不了解ADABAS或NATURAL。如果你在这里问http://www.ibmmainframeforum.com/viewforum.php?f=25,特别是那个部分,尽可能详细,有一个非常专业的人,RDZbrog,他可能会为你回答这个问题。

对于SCRIPT / VS本身,正如Bruce Martin指出的那样,可能存在一些问题。使用.xx和:xx不会与普通文本发生冲突。但是你没有正常的文字。使用&amp;,表示SCRIPT变量,它更有可能在任何位置出现问题。

我会通过以下方式触发一些测试数据:第一个位置的PIN在“fo”和“ol”之前都是可用的标点符号,并且与您的PIN中“嵌入”的序列相同。还包括一个双&amp;和三重&amp;。

您的查询应在您的规范中解决。它不是,但我相信你会在得到解决方案时更新所有文档。