Как использовать период в параметрах PARM (JCL)?

Ситуация следующая. У меня есть параметры 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? Я нигде не нашел этой информации... Помогите пожалуйста!

person user3275068    schedule 05.02.2014    source источник
comment
К вашему сведению, у меня возникла проблема — бесполезное утверждение. Он не говорит, что вы наблюдали или что система сказала вам неправильно.   -  person Ross Patterson    schedule 07.02.2014


Ответы (1)


Если у вас ., =, , ' ( ) (there may be more, I'm not trying to be exhastive) as part of the value of the PARM, then you need to ensure they don't get interpreted by the converter/interpreter.

You do this by bounding things with single quotes, or parenthesis, or you can have combinations of those, but if your PARM values contain such things you have to protect them (as you would escape что-то в других ОС, языках).

Вот ссылка Справочник по языку JCL. Вы можете перейти по ссылкам на странице, чтобы полностью изучить руководство, или загрузить его в формате PDF. http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/iea2b690/16.8.1?SHELF=&DT=20090526233806&CASE=

По другому вашему вопросу я уже показал вам PARM, который может содержать все эти значения.

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

or

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

Будет работать, насколько это касается JCL.

Вы можете защитить .s разными способами.

Оба этих PARM помещаются в одну строку. Их будет сложно поддерживать. Поместите их в круглые скобки, по одному элементу в строке:

// PARM=(CSQ1,
//       'CARD.PAYMENTS',
//       'CCD3050.REPLY',
//       CCD3050,
//       '400.05',
//       'MY PAYMENT')
person Bill Woodger    schedule 05.02.2014
comment
Большое спасибо, но я пробовал разные варианты - и ни один не работал. Справочник по языку JCL я уже читал, и сделал как там описано - но безрезультатно. - person user3275068; 05.02.2014