Есть ли список специальных символов, которых следует избегать в переменных сценария JCL/MVS

У меня есть программа, которая генерирует случайные пин-коды. Эти выводы генерируются в Java, а затем сохраняются в мэйнфрейме с помощью программы NATURAL. Оттуда они в конечном итоге физически печатаются пакетным заданием JCL, которое вызывает MVS SCRIPT для печати формы с пин-кодом на ней.

Я сталкивался с некоторыми проблемами со специальными символами, такими как: |{}![]^~<>; что по той или иной причине не печатать должным образом. Я также удалил 0OQ1l по причинам OCR.

Недавно к моему вниманию пришла ошибка с другим персонажем, который печатается неправильно, . но . символ пропадает только тогда, когда он является первым символом PIN-кода.

Так как я столкнулся с этой проблемой, я подумал, что смогу найти другие специальные символы jcl, Natural или MVS Script, которые могут помешать работе моих программ, чтобы я мог проверить их сейчас и, надеюсь, не столкнуться с этой проблемой позже или приходится использовать только буквенно-цифровые символы OCR.

РЕДАКТИРОВАТЬ

  • Java - веб-приложение работает под управлением Tomcat 6.x на сервере Solaris.
  • Natural - Программа Natural вызывается с использованием классов, сгенерированных веб- брокером (POJO).
    • Насколько я понимаю, он использует RPC для реального общения.
    • Программа проверяет некоторые данные и сохраняет ПИН-код в сочетании с 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 ответа

Решение

Я думаю, вы найдете программу (pgm=) DSMSPEXC, а не DSMSPEXEC.

Я предполагаю (может быть ошибочным) мы говорим о Script/DCF (который впоследствии стал IBM Bookmaster / Bookmanager на других платформах).

Script/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

Существуют переменные (&gml. =:) для большинства специальных символов.


Персонажи для беспокойства

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

Другие символы должны быть в порядке, если нет ошибок перевода. В кодировке X0A055BC (мейнфрейме SONORAN SANS SERIF??) могут отсутствовать все специальные символы.

Есть руководства для тегов Script/DCF.

Ваши данные никак не повлияют на JCL.

Я не знаю об ADABAS или ЕСТЕСТВЕННО. Если вы спросите здесь, http://www.ibmmainframeforum.com/viewforum.php?f=25, особенно об этой части, с максимально подробной информацией, вы можете найти очень опытного парня, RDZbrog, который, вероятно, может ответить это для тебя.

Для самого SCRIPT/VS, как отметил Брюс Мартин, могут быть некоторые проблемы. С.xx и:xx нет столкновения с обычным текстом. Но у вас нет нормального текста. С &, который указывает переменную SCRIPT, это более вероятно, будет проблематично и в любом месте.

Я бы отправил некоторые тестовые данные через: Ваши PIN-коды с первой позицией - это все доступные знаки препинания, предшествующие "fo" и "ol", и то же самое с теми последовательностями, "встроенными" в ваши PIN-коды. Также включают двойной и тройной &.

Ваш запрос должен быть разрешен в вашей спецификации. Это не так, но я уверен, что вы получите обновленную документацию, когда получите разрешение.

Другие вопросы по тегам