PROCESS COMMAND

CHECK | EXEC | TEXT | HELP 構文:

PROCESS COMMAND ACTION

CHECK
EXEC
TEXT
HELP

USING PROCESSOR-NAME=operand1
  COMMAND-LINE (index[:index])=operand2
GIVING RESULT-FIELD (index[:index])   (「Syntax Note」を参照してください)
  RETURN-CODE  
[NATURAL-ERROR]

GET の構文:

PROCESS COMMAND ACTION
  GET USING PROCESSOR-NAME=operand1
    GETSET-FIELD-NAME=operand3
GIVING GETSET-FIELD-VALUE   (「Syntax Note」を参照してください)
  [NATURAL-ERROR]  

SET の構文:

PROCESS COMMAND ACTION
  SET USING PROCESSOR-NAME=operand1
    GETSET-FIELD-NAME=operand3
    GETSET-FIELD-VALUE=operand4
  [GIVING NATURAL-ERROR]  (「Syntax Note」を参照してください)

CLOSE の構文:

PROCESS COMMAND ACTION
  CLOSE [GIVING NATURAL-ERROR]  (「Syntax Note」を参照してください)

構文に関する注:

GIVING オプションは、レポーティングモードで、DEFINE DATA ステートメントに VIEW OF COMMAND が定義されていない場合にのみ必要です。

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連機能グループ:プログラムおよびルーチンの呼び出し


関数

Natural ユーティリティ SYSNCP で作成した Natural コマンドプロセッサは、PROCESS COMMAND ステートメントを使用して Natural プログラムから呼び出すことができます。

Natural コマンドプロセッサの作成方法の詳細については、『SYSNCP ユーティリティ』ドキュメントを参照してください。

コマンド処理に使用される DDM

重要:
PROCESS COMMAND ステートメント内の単語 COMMAND は実際のビュー名です。使用されるビューの名前は必ずしも COMMAND である必要はありませんが、同じく COMMAND という名前の DDM(データ定義モジュール)が存在するため、COMMAND を使用することをお勧めします。この DDM は、例えば COMMAND VIEW OF COMMAND など、DEFINE DATA ステートメント内で参照する必要があります。

DDM COMMAND は、PROCESS COMMAND ステートメントと併用するために特別に作成されたものです。

DB:    1 File:    1 - COMMAND                          Default Sequence: ?
  
  TYL  DB  NAME                             F LENG  S D   REMARKS
  ---  --  -------------------------------- - ----  - -  ------------------------
    1  AA  PROCESSOR-NAME                   A    8  N D DE    USING
  M 1  AB  COMMAND-LINE                     A   80  N D MU/DE USING
    1  AF  GETSET-FIELD-NAME                A   32  N D DE    USING
    1  BA  NATURAL-ERROR                    N  4.0  N         GIVING
    1  BB  RETURN-CODE                      A    4  N         GIVING
  M 1  BC  RESULT-FIELD                     A   80  N   MU    GIVING
    1  BD  GETSET-FIELD-VALUE               A   32  N D       USING; GIVING
  ***** DDM OUTPUT TERMINATED ******

DDM に含まれるフィールドは、PROCESS COMMAND ステートメントで使用されるフィールドに対応しています。これらについては、「構文要素の説明」で説明します。

注意:
コンパイルエラーやランタイムエラーを回避するため、使用前に COMMAND という名前の DDM がタイプ C(SYSDDM メニューの DDM Type フィールド)でカタログされていることを確認します。DDM を再カタログする場合、SYSDDM ユーティリティの DBID/FNR 指定は無視されます。

セキュリティに関する考慮事項

Natural Security では、コマンドプロセッサで定義された特定のキーワードや機能の使用を制限できます。特定のユーザーまたはユーザーグループに対して、キーワードや機能の使用を許可/禁止できます。詳細については、『Natural Security』ドキュメントを参照してください。

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1 C S       A                         × ×
operand2 C S A G   A   N                     × ×
operand3 C S       A   N                     × ×
operand4 C S       A   N P I                 × ×

構文要素の説明:

構文要素 説明
CHECK
CHECK アクション:
CHECK は、コマンドが PROCESS COMMAND EXEC ステートメントで実行可能かどうかを判断するための手段として使用します。指定コマンドプロセッサ名に対して、ランタイムチェックが 2 段階で行われます。
  • 現在のライブラリまたは STEPLIB の 1 つにコマンドプロセッサが存在するかどうかをチェックします。

  • コマンド行 COMMAND-LINE (1) の内容が受け入れ可能かどうかを判断するために分析します。

または、ランタイムアクション定義 RM、および 1-9RESULT-FIELD (1:9) に書き込まれます。

NATURAL-ERROR フィールドをビューまたは GIVING オプションで指定した場合、エラーコードが返されます。このフィールドが利用できず、コマンド分析が失敗すると、Natural システムエラーが発生します。

注意:
EXEC アクションを実行する場合は、CHECK は必要ありません。CHECKEXEC 操作に含まれています。

EXEC
EXEC アクション:

EXEC の動作は CHECK とまったく同じですが、それに加え、ランタイムアクションエディタで指定されたランタイムアクションが実行されます。

COMMAND-LINE (1) のみが必要です。RESULT-FIELD のオカレンスは 9 個まで使用できます(ただし、最適なパフォーマンスを得るためには、実際に必要なオカレンスのみを使用してください)。

注意:
EXEC は、現在アクティブなプログラムから抜けるために使用できる唯一のアクションです。ランタイムアクション定義に FETCH または STOP ステートメントが含まれる場合が該当します。

例 1 - PROCESS COMMAND ACTION EXEC」も参照してください。

TEXT
TEXT アクション:

TEXT は、コマンドプロセッサに関する全般情報およびキーワードやファンクションに関連するテキストを提供します。

このテキストは、コマンドプロセッサ定義時に SYSNCP ユーティリティのキーワードエディタやアクションエディタに入力されたものと同じです。

詳細については、以下の「TEXT アクションの入力値」のセクションを参照してください。

注意:
キーワードやファンクションに関するテキストにアクセスするには、SYSNCP ユーティリティの Processor Header Maintenance 3 画面の Catalog user texts フィールドに Y が指定されている必要があります(「その他のオプション - ヘッダー 3」セクションを参照)。

HELP
HELP アクション:

HELP は、有効なすべてのキーワード、同義語、およびオンラインヘルプウィンドウの作成などの機能のリストを返します。このリストは RESULT-FIELD のフィールド(複数可)に含まれます。返されるヘルプのタイプはコマンド行の内容に依存します。

  • COMMAND-LINE (1) には検索条件が含まれている必要があります。

  • COMMAND-LINE (2) には(指定する場合)、開始値または検索値を含める必要があります。

  • COMMAND-LINE (3) には(指定する場合)、開始値を含める必要があります。

詳細については、以下の「HELP アクションの入力値」のセクションを参照してください。

注意:
最適なパフォーマンスを得るためには、フィールド RESULT-FIELD のオカレンス数は、画面に表示する行数を超過しないようにする必要があります。最低 1 オカレンスを使用する必要があります。

GET
GET アクション:
GET は、ダイナミックに割り当てられた NCPWORK バッファから内部コマンドプロセッサ情報と現在のコマンドプロセッサ設定を読み取ります。
SET
SET アクション:
SET は、NCPWORK バッファの内部コマンドプロセッサ設定を変更します。
CLOSE
CLOSE アクション:
CLOSE では、コマンドプロセッサの使用を終了し、コマンドプロセッサバッファを解放します。

セッション中にコマンドプロセッサを使用し、CLOSE で解放しないと、ユーザーのスレッド中に NCPWORK という名前のバッファが存在します。コマンドプロセッサのランタイム部分でこのバッファが必要になります。このバッファは PROCESS COMMAND ACTION CLOSE ステートメントで解放できます。

このステートメントに続けて PROCESS COMMAND ステートメントを指定すると、コマンドプロセッサバッファが再びオープンされます。

例 2 - PROCESS COMMAND ACTION CLOSE」も参照してください。

GIVING
GIVING オプション:

このオプションは、レポーティングモードで、DEFINE DATA ステートメントに VIEW OF COMMAND が定義されていない場合にのみ必要です。

GIVING オプションはストラクチャードモードでは利用できません。DEFINE DATA ステートメントに指定されたすべてのフィールドで構成される暗黙的な GIVING オプションが存在するためです。通常、これらのフィールドはレポーティングモードの GIVING オプションで参照されます。

つまり、ストラクチャードモードでは、GIVING オプションで定義されたすべてのフィールドを DEFINE DATA ステートメントで定義する必要があります。

注意:
GIVING オプションで、任意のアクションの処理結果として、コマンドプロセッサによって埋められるフィールドを指定します。

PROCESSOR-NAME その処理に使用するコマンドプロセッサの名前。

指定するコマンドプロセッサはカタログ化する必要があります。

COMMAND-LINE CHECK または EXEC で処理されるコマンド行、または TEXT または HELP アクションによりプログラムに返されるユーザーテキストやヘルプテキストに対するキーワード/コマンド。このフィールドには複数のオカレンスを指定できます。
RESULT-FIELD コマンドプロセッサ関数に定義されたランタイムアクション内で指定できるオプションの使用による結果の情報が含まれます(『Natural SYSNCP ユーティリティ』の「ランタイムアクション」を参照)。このフィールドには複数のオカレンスを指定できます。
RETURN-CODE ランタイムアクション定義内で指定された EXEC または CHECK アクションによる処理のリターンコード(「Natural SYSNCP ユーティリティ」を参照)。
NATURAL-ERROR PROCESS COMMAND アクションに返された Natural エラー。

このフィールドは、コマンドプロセッサの Natural エラーコードを返すため、DEFINE DATA ステートメントで使用することをお勧めします。フィールドが存在しない場合、エラーの発生時に Natural ランタイムエラー処理が開始されます。

GETSET-FIELD-NAME GET アクションが実行されたとき、または SET アクションによって書き込まれたときに読み込まれる定数または変数の名前。

GETSET-FIELD-NAME の使用可能な値のリストについては、「GETSET-FIELD-NAME の入力値」を参照してください。

GETSET-FIELD-VALUE GET アクションが実行されたとき、または SET アクションによって書き込まれたときに読み込まれるフィールド GETSET-FIELD-NAME で指定される定数または変数の値。

このセクションでは、次のトピックについて説明します。

GETSET-FIELD-NAME の入力値

GETSET-FIELD-NAME フィールド(A32)には、次の値を使用できます。

フィールド名 Format G/S* 内容
NAME A8 G 現在のコマンドプロセッサの名前。
LIBRARY A8 G ロード元のライブラリ。
FNR N10 G ロード元のファイル。
DBID N10 G ロード元のデータベース。
TIMESTMP A8 G 現在のコマンドプロセッサのタイムスタンプ。
COUNTER N10 G アクセスカウンタ。
BUFFER-LENGTH N10 G NCPWORK 用に割り当てられたバイト数。
C-DELIMITER A1 G/S 複数コマンドのデリミタ。
DATA-DELIMITER A1 G データの前に付けられるデリミタ。
PF-KEY A1 G/S PF キーをコマンドとして使用(Y/N)。
UPPER-CASE A1 G 大文字のキーワード(Y/N)。
UQ-KEYWORDS A1 G 一意のキーワード(Y/N)。
IMPLICIT-KEYWORD A1 G/S 暗黙的なキーワードエントリの識別子。
MIN-LEN N10 G キーワードの最小長。
MAX-LEN N10 G キーワードの最大長。
KEYWORD-SEQ A8 G/S キーワードシーケンス。
ALT-KEYWORD-SEQ A8 G/S 代替キーワードシーケンス。
USER-SEQUENCE A1 G ユーザーによる KEYWORD-SEQ の上書きを許可(Y/N)。
CURR-LOCATION N10 G/S 現在のロケーション(IFN)。
CURR-IKN1 N10 G/S 現在のロケーションの IKN1。
CURR-IKN2 N10 G/S 現在のロケーションの IKN2。
CURR-IKN3 N10 G/S 現在のロケーションの IKN3。
CHECK-LOCATION N10 G 最後にチェックされたロケーション(IFN)。
CHECK-IKN1 N10 G CHECK-LOCATION の IKN1。
CHECK-IKN2 N10 G CHECK-LOCATION の IKN2。
CHECK-IKN3 N10 G CHECK-LOCATION の IKN3。
TOP-IKN1 N10 G 先頭キーワードの IKN1。
TOP-IKN2 N10 G 先頭キーワードの IKN2。
TOP-IKN3 N10 G 先頭キーワードの IKN3。
KEY1-TOTAL N10 G タイプ 1 のキーワードの数。
KEY2-TOTAL N10 G タイプ 2 のキーワードの数。
KEY3-TOTAL N10 G タイプ 3 のキーワードの数。
FUNCTIONS-TOTAL N10 G カタログされた機能の数。
LOCAL-GLOBAL-SEQ A8 G/S ローカル/グローバル機能の確認。
ERROR-HANDLER A8 G/S 一般的なエラープログラム。
SECURITY A1 G Natural Security がインストール済み(Y/N)。
SEC-PREFETCH A1 G Natural Security データを読み取る(Y/N)または読み取り済み(D = 終了)
PREFIX1 A1 G SYSNCP ユーティリティの Processor Header Maintenance 2 画面のフィールド Prefix Character 1 に対応します(「キーワードエディタオプション - ヘッダー 2」セクションを参照)。
PREFIX2 A1 G Processor Header Maintenance 2 画面のフィールド Prefix Character 2 に対応します。
HEX1 A1 G Processor Header Maintenance 2 画面のフィールド Hex. Replacement 1 に対応します。
HEX2 A1 G Processor Header Maintenance 2 画面のフィールド Hex. Replacement 2 に対応します。
DYNAMIC A32 G 最後のエラーメッセージのダイナミック部分(:n:)。
LAST - G データとしてスタックの先頭に置かれる最後のコマンド。
LAST-ALL - G データとしてスタックの先頭に置かれる最後のコマンド群。
LAST-COM - G *COM に移された最後のコマンド。
MULTI - G 最後の複数コマンドをデータとしてスタックの先頭に挿入。
MULTI-COM - G 最後の複数コマンドをシステム変数 *COM に挿入します。

*G = フィールド名は GET アクション とともに使用できます。
*S = フィールド名は SET アクション とともに使用できます。

TEXT アクションの入力値

以下の入力値が TEXT アクションから異なる情報を返すために使用されます。

全般的な情報の TEXT

全般的な情報については、COMMAND-LINE (*)、つまりすべてのコマンド行を空白にする必要があります。以下の情報を含む、最大 9 個の RESULT-FIELD フィールドが返されます。

RESULT-FIELD Format Contents
1 テキスト(A40) Header 1 for User Text
2 テキスト(A40) Header 2 for User Text
3 テキスト(A16) テキスト "First Entry used as"
4 テキスト(A16) テキスト "Second Entry used as"
5 テキスト(A16) テキスト "Third Entry used as"
6 数値(N3) エントリ 1 のキーワード数
7 数値(N3) エントリ 2 のキーワード数
8 数値(N3) エントリ 3 のキーワード数
9 数値(N7) カタログされた機能数
キーワード情報の TEXT

キーワード情報については、COMMAND-LINE (1) には対応するキーワードが含まれている必要があります。COMMAND-LINE (2) にはオプションでキーワードタイプ(1、2、3、または P)を含めることができます。COMMAND-LINE (3:6) は空にする必要があります。

RESULT-FIELD Contents Format
1 キーワードコメントテキスト テキスト(A40)
2 完全な長さのキーワード テキスト(A16)
3 一意の短縮形キーワード テキスト(A16)
4 "Keyword used as" エントリ テキスト(A16)
5 内部キーワード番号(IKN) 数値(N4)
6 キーワードの最小長 数値(N2)
7 キーワードの最大長 数値(N2)
8 キーワードタイプ(1、2、3、1S、2S、3S、P) テキスト(A2)
機能情報の TEXT

機能情報については、COMMAND-LINE (1:3) に目的のロケーションを指定するキーワードが含まれている必要があります。COMMAND-LINE (4:6) には目的の機能を指定するキーワードが含まれている必要があります。例えば、グローバルコマンド ADD USER に関する情報を返す場合、コマンド行 1、2、3、6 が空白であり、コマンド行 4 にはテキスト文字列 ADD、コマンド行 5 にはテキスト文字列 USER がそれぞれ含まれている必要があります。

RESULT-FIELD Format Contents
1 テキスト(A40) ランタイムアクション定義にオプション T で定義されたテキスト。
2 数値(N10) 指定したロケーションの内部機能番号(IFN)。
3 数値(N10) 指定した機能の内部機能番号(IFN)。

HELP アクションの入力値

以下の入力値が HELP アクションから異なる情報を返すために使用されます。

キーワードの HELP

このアクションは、アルファベット順にソートされたキーワードまたは同義語を内部キーワード番号(IKN)付きで返します。

コマンド行 Contents
1 インジケータ K で始める必要があります。
次のキーワードタイプが返されます。
* すべてのタイプのキーワード
1 タイプ 1 のキーワード
2 タイプ 2 のキーワード
3 タイプ 3 のキーワード
P タイプ P(パラメータ)のキーワード
オプション:
I キーワードと IKN を返します。
T キーワードの一部を大文字で示します(可能な省略形を示すため)。
S 同義語とキーワードを返します。
X 指定したキーワードの同義語のみを返します。
A 内部キーワードも返されます。
+ 検索には開始値は含まれません。
2 キーワード検索の開始値(オプション)。

デフォルトでは、検索は開始値から始まります。ただし、プラス(+)オプションを指定すると、開始値自体は検索に含まれず、次に高い値から検索されます。

フィールド RESULT-FIELD (1:n)) は、指定したリストを返します。

例:

Command Line 1:    K*X     Returns all synonyms of all keyword types.
Command Line 1:    K123S   Returns all keywords of type 1, 2 and 3 including synonyms.
同義語の HELP

指定された IKN に対して、このアクションは元のキーワードとすべての同義語を返します。

コマンド行 Contents
1 インジケータ S で始める必要があります。
オプション:
T キーワードの一部を大文字で示します(可能な省略形を示すため)。
2 フォーマット N4 のキーワードの内部キーワード番号(IKN)。

フィールド RESULT-FIELD (1) は、元のキーワードを返します。フィールド RESULT-FIELD (2:n) は、このキーワードに関連する同義語を返します。

例:

入力: 出力:
Command Line 1:    S
Command Line 2:    1003
Result-Field 1:    Edit
Result-Field 2:    Maintain
Result-Field 3:    Modify
グローバル機能の HELP

このアクションは、すべてのグローバル機能のリストを返します。

コマンド行 Contents
1 インジケータ G で始める必要があります。
オプション:
I 内部機能番号(IFN:Internal Function Number)も返されます。
T キーワードの一部を大文字で示します(可能な省略形を示すため)。
S RESULT-FIELD に返されたキーワードは列に整列されます。
A 内部キーワードも返されます。
1 タイプ 1 の特定のキーワードを含む機能のみが返されます。
2 タイプ 2 の特定のキーワードを含む機能のみが返されます。
3 タイプ 3 の特定のキーワードを含む機能のみが返されます。
+ 検索には開始値は含まれません。
2 グローバル機能検索の開始値。キーワードは 123 の順序で指定する必要があります。

デフォルトでは、検索は開始値から始まります。ただし、プラス(+)オプションを指定すると、開始値自体は検索に含まれず、次に高い値から検索されます。

3 空白にする必要があります。
4 特定のキーワードを含むグローバル機能のみを検索するには、ここにそのキーワードを指定します。

キーワードを指定する場合、オプション(上記参照)としてキーワードタイプ(1、2、または 3)を指定する必要もあります。

フィールド RESULT-FIELD (1:n)) は、指定したリストを返します。

例:

入力: 出力:
Command Line 1:    G
Command Line 2:    ADD
Result-Field 1:    ADD CUSTOMER
Result-Field 2:    ADD FILE
Result-Field 3:    ADD USER
ローカル機能の HELP

このアクションは、指定したロケーションのすべてのローカル機能のリストを返します。

コマンド行 Contents
1 インジケータ L で始める必要があります。
オプション:
I 内部機能番号(IFN:Internal Function Number)も返されます。
T キーワードの一部を大文字で示します(可能な省略形を示すため)。
S RESULT-FIELD に返されたキーワードは列に整列されます。
A 内部キーワードも返されます。
1 タイプ 1 の特定のキーワードを含む機能のみが返されます。
2 タイプ 2 の特定のキーワードを含む機能のみが返されます。
3 タイプ 3 の特定のキーワードを含む機能のみが返されます。
C 現在のロケーションに定義されている機能のみが返されます(コマンド行 3 は無視されます)。
F ローカル機能の "再帰的な" リストを呼び出します。つまり、現在のロケーション/指定したロケーションに関連するすべてのローカルコマンドが返されます。
2 ローカル機能検索の開始値(オプション)。

キーワードは 123 の順序で指定する必要があります。

3 返されるリストに対応するロケーションを指定します。

キーワードは 123 の順序で指定する必要があります。

ロケーションを指定しなかった場合、コマンドプロセッサの現在のロケーションが使用されます。

4 キーワードの制限(オプション):

キーワード、またはフォーマット N4 の IKN を指定した場合、このキーワードを含む機能のみが返されます。

フィールド RESULT-FIELD (1:n)) は、指定したリストを返します。

IKN の HELP

指定された内部キーワード番号(IKN)に対して、このアクションは元のキーワードを返します。

コマンド行 Contents
1 IKN で始まる必要があります。
オプション:
A 内部キーワードが示されます。
T キーワードの一部を大文字で示します(可能な省略形を示すため)。
2 変換する IKN をフォーマット N4 で指定します。

フィールド RESULT-FIELD (1) は、キーワードを返します。

例:

入力: 出力:
Command Line 1:    IKN
Command Line 2:    0000002002
Result-Field 1:    CUSTOMER
IFN の HELP

指定された内部機能番号(IFN)に対して、このアクションは機能のキーワードを返します。

コマンド行 Contents
1 IFN で開始する必要があります。
オプション:
A 内部キーワードを含む機能は省略されません。
2 変換する IFN をフォーマット N10 で指定します。
3 その他のオプション:
S IFN に属すキーワードが RESULT-FIELD (1:3) に返されます。
T キーワードの一部を大文字で示します(可能な省略形を示すため)。
L IFN をロケーションとして使用した場合、IFN が返されます。
C IFN をコマンドとして使用した場合、IFN が返されます。

フィールド RESULT-FIELD(1) は、機能を返します。オプション S を使用した場合、機能は RESULT-FIELD (1:3) に返されます。

例:

入力: 出力:
Command Line 1:    IFN
Command Line 2:    0001048578
Result-Field 1:    DISPLAY INVOICE

このセクションで示すプログラム例に加えて、SYSNCP システムライブラリにプログラム例が記載されています。これらのプログラムはすべて EXAM で始まります。

SYSNCPEXAM プログラムを実行することにより、PROCESS COMMAND で使用可能なすべてのアクションをテストできます。その後で、メニューからアクションを選択できます。

例 1 - PROCESS COMMAND ACTION EXEC

/* EXAM-EXS - Example for PROCESS COMMAND ACTION EXEC (Structured Mode)
/**********************************************************************   
DEFINE DATA LOCAL
  01 COMMAND VIEW OF COMMAND
     02 PROCESSOR-NAME
     02 COMMAND-LINE (1)
     02 NATURAL-ERROR
     02 RETURN-CODE
     02 RESULT-FIELD (1)
  01 MSG (A65) INIT <'Please enter a command.'>
END-DEFINE
/*
REPEAT
  INPUT (AD=MIT' ' IP=OFF) WITH TEXT MSG
    'Example for PROCESS COMMAND ACTION EXEC (Structured Mode)' (I)
  / 'Command ==>' COMMAND-LINE (1) (AL=64)
  /*******
 PROCESS COMMAND ACTION EXEC
    USING
      PROCESSOR-NAME = 'DEMO'
      COMMAND-LINE (1) = COMMAND-LINE (1)
  /*******
  COMPRESS 'NATURAL-ERROR =' NATURAL-ERROR TO MSG
END-REPEAT
END

例 2 - PROCESS COMMAND ACTION CLOSE

/* EXAM-CLS - Example for PROCESS COMMAND ACTION CLOSE (Structured Mode)
/***********************************************************************   
DEFINE DATA LOCAL
  01 COMMAND VIEW OF COMMAND
END-DEFINE
/*
PROCESS COMMAND ACTION CLOSE
/*
DEFINE WINDOW CLS
INPUT WINDOW = 'CLS'
  'NCPWORK has just been released.'
/*
END