カテゴリ: 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#の文字列型(string)を完全解説!連結・分割・検索の方法を紹介
New3
C#
C#非同期処理の進捗状況を表示!IProgressの使い方を初心者向けに解説
New4
C#
C#の文字列フォーマット方法!String.Format・補間文字列の使い方
人気記事
No.1
Java&Spring記事人気No1
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.2
Java&Spring記事人気No2
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.3
Java&Spring記事人気No3
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.4
Java&Spring記事人気No4
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.5
Java&Spring記事人気No5
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.6
Java&Spring記事人気No6
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.7
Java&Spring記事人気No7
C#
C#でファイルのエンコーディングを指定する方法(UTF-8・Shift-JISなど)
No.8
Java&Spring記事人気No8
COBOL
COBOLのMOVE文を完全ガイド!初心者でもわかるデータ移送の基本