カテゴリ: 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#の出力と入力の基本をマスター!初心者でもわかるConsole.WriteLine()とConsole.ReadLine()の使い方
New3
C#
C# GUIアプリでファイルダイアログを使う方法!WinFormsとWPFの基本操作を完全解説
New4
Azure
Azure SQL Databaseの認証設定を徹底解説!Entra ID(旧Azure AD)統合でセキュアなデータベース管理を実現する方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
C#
C# WinForms入門!初心者でも簡単にWindowsアプリを作る方法
No.5
Java&Spring記事人気No5
C#
C#の文字列を数値に変換する方法(int.Parse・TryParse)をわかりやすく解説!
No.6
Java&Spring記事人気No6
C#
C#のログ出力入門!SerilogとNLogの使い方を徹底解説
No.7
Java&Spring記事人気No7
Azure
Azure Bastionの使い方を徹底解説!踏み台サーバー不要で安全にRDP/SSH接続
No.8
Java&Spring記事人気No8
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド