COBOLとJCL連携の基本!SYSOUTとSYSINの役割と基本例を初心者向けにやさしく解説
生徒
「JCLを書いていると、SYSOUTとかSYSINって必ず出てきますけど、何をしているんですか?」
先生
「それは、COBOLプログラムの『出力』と『入力』を担当する、とても大切な役割を持っています。」
生徒
「入力と出力って、画面に表示したり、文字を渡したりすることですか?」
先生
「その通りです。では、SYSOUTとSYSINが何をしているのか、順番に見ていきましょう。」
1. SYSOUTとSYSINとは何か
SYSOUTとSYSINは、COBOLとJCL連携で必ず登場する重要なキーワードです。 とても簡単に言うと、SYSOUTは「外に出すもの」、SYSINは「中に入れるもの」です。
プログラミング未経験の方は、手紙のやり取りを想像してください。 手紙を書く行為がSYSOUT、相手から届いた手紙を読む行為がSYSINに近いです。
2. SYSOUTの役割をやさしく理解しよう
SYSOUTは、COBOLプログラムが出力した結果を受け取る場所です。 DISPLAY文で表示した文字や、処理の途中経過などがここに送られます。
メインフレーム環境では、画面に直接表示されるのではなく、 SYSOUTとしてまとめられ、あとから確認できる仕組みになっています。
3. SYSOUTの基本的なJCL記述例
SYSOUTはDD文で指定します。 DDとは「データの置き場所」を指定するための命令です。
//SYSOUT DD SYSOUT=*
この書き方は、「プログラムの出力は標準出力としてまとめてください」という意味になります。 初心者の方は、まずこの形を覚えておけば問題ありません。
4. SYSINの役割をやさしく理解しよう
SYSINは、COBOLプログラムに渡す入力データを指定するためのものです。 プログラムに「この条件で動いてください」と伝える役割を持っています。
料理に例えると、SYSINは材料表のような存在です。 どんな材料を使うかによって、出来上がる料理が変わるのと同じです。
5. SYSINの基本的なJCL記述例
SYSINもSYSOUTと同じくDD文で指定します。 データを直接JCLの中に書くこともできます。
//SYSIN DD *
TEST-DATA
/*
この例では、「TEST-DATA」という文字列がCOBOLプログラムへ入力として渡されます。
6. COBOLプログラムでSYSINを受け取る例
COBOL側では、SYSINから渡されたデータをREAD文などで受け取ります。 ここではイメージをつかむことが大切なので、簡単な例を見てみましょう。
ACCEPT WS-DATA FROM SYSIN
DISPLAY WS-DATA
SYSINから受け取ったデータを、そのままSYSOUTへ表示しています。
7. SYSOUTに表示される実行結果のイメージ
実行後、SYSOUTには次のような内容が出力されます。 これは「プログラムが正しく入力を受け取り、表示した」証拠です。
TEST-DATA
8. 初心者が混乱しやすいポイント
よくある勘違いとして、SYSOUTは画面、SYSINはキーボードだと思ってしまうことがあります。 実際には、どちらも「データの通り道」を指定しているだけです。
まずは「SYSOUTは出力」「SYSINは入力」という大きな役割を理解することが大切です。
9. SYSOUTとSYSINを理解する意味
COBOLとJCL連携では、SYSOUTとSYSINを理解していないと、 プログラムが何を受け取り、何を出したのか分からなくなります。
基本の考え方をしっかり押さえることで、ログ確認や動作チェックが楽になります。