3

我有一个生成随机密码的程序。这些引脚在 Java 中生成,然后通过NATURAL程序存储在大型机中。从那里,它们最终由批处理 JCL 作业进行物理打印,该作业调用MVS SCRIPT来打印表单,上面有 pin 码。

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

最近,我注意到另一个字符无法正确打印的错误,.但该.字符在它是PIN 码的第一个字符时才会失败。

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

编辑

  • Java - Web 应用程序在 Solaris 服务器上的 Tomcat 6.x 下运行。
  • Natural - 使用 Broker 生成的类 (POJO) 调用 Natural 程序。
    • 我的理解是它使用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#### 是一个实际数字,是一个指向所选打印机的变量。

注意:我是一名 Web 程序员,我不会说大型机、JCL、MVS 等。

4

2 回答 2

5

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

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

Script/DCF 基本上是一种基于GML的语言。SGML是从 GML派生的(HTMLXMLSGML语言的突出例子)。

在 Script :开始一个标签,. 结束一个标签。还有一些宏有一个 . 在第 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.

IE

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

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


需要担心的角色是

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

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

周围有 Script/DCF 标签的手册。

于 2013-11-02T08:45:55.663 回答
0

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

我不知道 ADABAS 或 NATURAL。如果你在这里问,http: //www.ibmmainframeforum.com/viewforum.php?f= 25,特别是关于那部分,你可以提供尽可能多的细节,有一个非常专家,RDZbrog,他可能会回答给你的。

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

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

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

于 2013-11-02T11:37:01.280 回答