Есть ли список специальных символов, которых следует избегать в переменных сценария 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-коды. Также включают двойной и тройной &.
Ваш запрос должен быть разрешен в вашей спецификации. Это не так, но я уверен, что вы получите обновленную документацию, когда получите разрешение.