2016-11-21 8 views
0

Предположим, что я EXEC программу COBOL из JCL, используя SYSIN DD для предоставления данных.ПРИНЯТЬ ОТ SYSIN в подпрограмме

Если эта программа затем CALLs подпрограмма COBOL, и некоторые данные по-прежнему доступны на входе, будет ли подпрограмма прочтена с помощью инструкции ACCEPT?

Или SYSIN доступен только из основной программы блока запуска, вызванного из JCL?

Редактировать: Я считаю, что это было бы плохой практикой кодирования. Я не намерен использовать его, и мне не нужны лучшие альтернативы, о которых я знаю (например, чтение данных устройства ввода из основных данных и передача их в подпрограмму (ы) через их LINKAGE).

На самом деле я не пишу код COBOL, но изучая/обрабатывая его, поэтому меня интересует поведение «углового случая», чтобы улучшить мое понимание семантики COBOL.

+0

Я не знаю много о JCL, но в целом основная программа COBOL не «блокирует» что-либо - может зависеть от способа получения данных. Если это просто «ACCEPT» (из SYSIN), каждый «ACCEPT» будет читать до следующей строки. Как это так: Что вы уже пробовали? Как код COBOL действительно получает источник? –

+1

Нет предложения «SYSIN DD». DD - это оператор JCL, SYSIN - это имя, которое соединяет ресурс, указанный в JCL, с программой, использующей это имя внутри. Это будет ужасная идея, которая поможет понять, что ваши программы делают гораздо сложнее, чем необходимо. Если вы хотите определить несколько «функциональных кодов» на вашем SYSIN, напишите программу, которая делает ACCEPT (даже лучше, просто READ, как обычно) и CALL, что в нескольких местах. Если функции дискретны, для некоторого использования используется отдельный DD. Другие способы. Просто не пробуйте то, что вы предложили. –

+1

И нет, я не знаю, как это будет. «SYSIN» может быть достаточно «особенным» для работы, но это такая плохая идея, что я никогда не сталкивался с тем, кто ее пытался. –

ответ

0

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

+0

Спасибо за ваш ответ! Я бы с тобой согласился, но есть ли у вас какие-либо ссылки (руководство, веб-страница ...), чтобы поддержать ваше требование? Мы все согласились с тем, что иначе было бы плохой практикой; но этот вопрос касается фактического поведения во время работы в этом случае. – oparisy

 Смежные вопросы

  • Нет связанных вопросов^_^