操作制御言語(OCL) は、IBM System/3、System/32、System/34、およびSystem/36 ミニコンピュータファミリの制御言語です。下位互換性のために、 IBM iの System/36 環境でサポートされています。これは、古い制御言語JCL ( System/370 ) に似ていますが、後の制御言語( System/38およびIBM AS/400 ) やREXX (AS/400) とは無関係です。
概要
OCL ステートメントは、実行と呼ばれるプロセスで、ユーザー プログラムまたはシステム プログラムを直接メモリにロードし、システム リソースを割り当て、システム制御を転送するために使用されます。プログラムがコンピューターのディスク ドライブに保存されているという事実自体では、コンピューターがプログラムを処理または実行するわけではありません。
OCL ステートメントはキーボードから手動で入力できますが、通常はプロシージャ メンバーとして保存されます。プロシージャ メンバーはライブラリ内の自由に編集可能なメンバーであり、ソース ファイルです。S/32、S/34、および S/36 では、プロシージャはコンパイルされず、解釈されます。
例
OCL ステートメントは通常、2 つのスラッシュと少なくとも 1 つのスペース文字で始まります。System/36 にメンバー PROC1 として保存されているプロシージャの例を次に示します。
** 手順 PROC1 オプションのドキュメント
**
** ジョー・ユーザー 2006-05-29 執筆
**
**
// * 'PROC1 プロシージャが実行中です'
// * ' '
// IFF ACTIVE-'PROC2,PROC3' が OK になる
** IFF は「偽の場合」を意味します
** ACTIVE-'name1,name2'はtrueを意味します
** リストされているプログラムの少なくとも1つが現在実行されている場合
** GOTO xxxはステートメントにスキップすることを意味します
** TAG xxxを持ち、処理を再開する
// PAUSE '他の給与計算が実行中のため続行できません'
** メッセージを表示して実行を停止します
// CANCEL このプロシージャの実行を停止します
// タグOK
// IFF DATAF1-PFILE1 IFF DATAF1-PFILE2 GOTO NODELT
// * 「注意、支払いデータが存在します」端末に情報を表示します
// * ' '
// * '1 を押して続行し、既存のファイルを削除します'
// IFF '1'=?1R? CANCEL パラメータは数字を囲む疑問符で示されます
** 疑問符の間に1Rを使用すると、
** パラメータは必須です
** 処理はユーザー入力を待機します。
** CANCEL は、ジョブの終了に直ちに進むことを意味します。
// LOAD $DELET $DELETはファイルを削除するために使用されます
// 走る
** このプログラムは、
** END文までの後続の文をデータとして
// IF DATAF1-PFILE1 スクラッチユニットF1、ラベルPFILE1
** 既存のディスクファイルを条件付きで削除します
// IF DATAF1-PFILE2 スクラッチユニットF1、ラベルPFILE2
// 終わり
**
// タグノード
// LOAD PR101 PR101はRPGまたはCOBOLプログラムである可能性があります
// ファイル名-PAYMAST、DISP-SHR PAYMASTは給与マスターファイルです
// ファイル名-PFILE1、表示-新規、レコード-100、拡張-100
** 新しいファイルPFILE1が作成され割り当てられます
** 100件のレコードがPFILE1に割り当てられます
** すべて使用されると、システムはさらに100ずつ拡張しようとします
** 満杯になるたびに。
// 走る
** END文は必須です
** 有効になっているプログラムの場合
** 以下のステートメントをデータとして処理する
** このようなデータはOCLのようにフォーマットする必要はありません
// SWITCH 1XX0XXXX フラグ U1 から U8 を SETON (1)、OFF (0)、または以前の設定 (X) のままにします。
**
// LOCAL OFFSET-1,DATA-'PROC1' PROC1をローカルデータエリア(LDA)に配置します
// LOCAL OFFSET-101、DATA-'?USER?' オペレータのユーザーIDを置き換えます
** LDAはRPGプログラム内のデータ構造UDSを介してアクセスされます
** LDAとユーザースイッチ(フラグ)は後続のプログラムでも利用可能
** 別途設定するまで
** 呼び出されたサブプロシージャのメンバーとロードされたプログラムのソースコードを検査する必要がある
** LDAとユーザースイッチが実際に読み取られたり変更されたりするかどうか
// PR102 をロード
// FILE NAME-PAYMAST、DISP-SHR DISP-SHRはファイルが排他的アクセスではなく共有されていることを意味します
** 他のプログラムもPAYMASTを同時に使用できます
// FILE NAME-PFILE、LABEL-PFILE1 NAME/LABELはRPGファイル名参照時に使用されます
** 実際のディスクファイルラベルは異なります
// 走る
// RETURN 呼び出しプロシージャに戻る、そうでない場合はジョブ終了
このプロシージャ メンバーには、さまざまな OCL ステートメント、プロシージャ制御式 (PCE)、リソース (主にファイルが割り当てられる)、およびいくつかのジョブ ステップ (プログラムが実行される) が組み込まれています。
コメントは列 1 のアスタリスクで表され、それ以外は自由形式です。または、末尾のコンマのように次の行へのステートメント継続を示すインジケータがない場合は、ステートメントの論理的な終了の後に配置することもできます。
外部リンク
IBM は、OCL 36 を含むマニュアルをオンラインで無料でダウンロードできるようにしています。
- 「System/36 環境プログラミング」(1995) v6r1
- 「System/36 環境リファレンス」(1995) v6r1
