カテゴリ: COBOL 更新日: 2026/01/03

COBOLとJCL連携の基本!SYSOUTとSYSINの役割と基本例を初心者向けにやさしく解説

SYSOUTとSYSINの役割と基本例
SYSOUTとSYSINの役割と基本例

先生と生徒の会話形式で理解しよう

生徒

「JCLを書いていると、SYSOUTとかSYSINって必ず出てきますけど、何をしているんですか?」

先生

「それは、COBOLプログラムの『出力』と『入力』を担当する、とても大切な役割を持っています。」

生徒

「入力と出力って、画面に表示したり、文字を渡したりすることですか?」

先生

「その通りです。では、SYSOUTとSYSINが何をしているのか、順番に見ていきましょう。」

1. SYSOUTとSYSINとは何か

1. SYSOUTとSYSINとは何か
1. SYSOUTとSYSINとは何か

SYSOUTとSYSINは、COBOLとJCL連携で必ず登場する重要なキーワードです。 とても簡単に言うと、SYSOUTは「外に出すもの」、SYSINは「中に入れるもの」です。

プログラミング未経験の方は、手紙のやり取りを想像してください。 手紙を書く行為がSYSOUT、相手から届いた手紙を読む行為がSYSINに近いです。

2. SYSOUTの役割をやさしく理解しよう

2. SYSOUTの役割をやさしく理解しよう
2. SYSOUTの役割をやさしく理解しよう

SYSOUTは、COBOLプログラムが出力した結果を受け取る場所です。 DISPLAY文で表示した文字や、処理の途中経過などがここに送られます。

メインフレーム環境では、画面に直接表示されるのではなく、 SYSOUTとしてまとめられ、あとから確認できる仕組みになっています。

3. SYSOUTの基本的なJCL記述例

3. SYSOUTの基本的なJCL記述例
3. SYSOUTの基本的なJCL記述例

SYSOUTはDD文で指定します。 DDとは「データの置き場所」を指定するための命令です。


//SYSOUT   DD SYSOUT=*

この書き方は、「プログラムの出力は標準出力としてまとめてください」という意味になります。 初心者の方は、まずこの形を覚えておけば問題ありません。

4. SYSINの役割をやさしく理解しよう

4. SYSINの役割をやさしく理解しよう
4. SYSINの役割をやさしく理解しよう

SYSINは、COBOLプログラムに渡す入力データを指定するためのものです。 プログラムに「この条件で動いてください」と伝える役割を持っています。

料理に例えると、SYSINは材料表のような存在です。 どんな材料を使うかによって、出来上がる料理が変わるのと同じです。

5. SYSINの基本的なJCL記述例

5. SYSINの基本的なJCL記述例
5. SYSINの基本的なJCL記述例

SYSINもSYSOUTと同じくDD文で指定します。 データを直接JCLの中に書くこともできます。


//SYSIN    DD *
TEST-DATA
/*

この例では、「TEST-DATA」という文字列がCOBOLプログラムへ入力として渡されます。

6. COBOLプログラムでSYSINを受け取る例

6. COBOLプログラムでSYSINを受け取る例
6. COBOLプログラムでSYSINを受け取る例

COBOL側では、SYSINから渡されたデータをREAD文などで受け取ります。 ここではイメージをつかむことが大切なので、簡単な例を見てみましょう。


ACCEPT WS-DATA FROM SYSIN
DISPLAY WS-DATA

SYSINから受け取ったデータを、そのままSYSOUTへ表示しています。

7. SYSOUTに表示される実行結果のイメージ

7. SYSOUTに表示される実行結果のイメージ
7. SYSOUTに表示される実行結果のイメージ

実行後、SYSOUTには次のような内容が出力されます。 これは「プログラムが正しく入力を受け取り、表示した」証拠です。


TEST-DATA

8. 初心者が混乱しやすいポイント

8. 初心者が混乱しやすいポイント
8. 初心者が混乱しやすいポイント

よくある勘違いとして、SYSOUTは画面、SYSINはキーボードだと思ってしまうことがあります。 実際には、どちらも「データの通り道」を指定しているだけです。

まずは「SYSOUTは出力」「SYSINは入力」という大きな役割を理解することが大切です。

9. SYSOUTとSYSINを理解する意味

9. SYSOUTとSYSINを理解する意味
9. SYSOUTとSYSINを理解する意味

COBOLとJCL連携では、SYSOUTとSYSINを理解していないと、 プログラムが何を受け取り、何を出したのか分からなくなります。

基本の考え方をしっかり押さえることで、ログ確認や動作チェックが楽になります。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方