バージョン 4.2.5
 —  システムコマンド  —

SCAN

SCAN

SCAN コマンドは、オブジェクト内の文字列を検索するために使用します。このとき、オプションとして文字列を別の文字列で置換することもできます。

対象になるのは、1 つのオブジェクト、指定した設定で始まるすべてのオブジェクト、またはライブラリ内のすべてのオブジェクトです。 SCAN も、対象を特定のオブジェクトタイプに制限できます。

重要:
ソースワークエリアは SCAN コマンドによって使用されます。 そのため、SCAN コマンドを使用する前に、SAVE または STOW コマンドを発行する必要があります。

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


メニューオプション

SCAN コマンドを入力すると、次の内容の[SCAN]メニューが表示されます。

フィールド 入力設定
コード T
統計

次の情報を返します。

  • スキャンされたオブジェクト数

  • スキャン対象値が見つかったオブジェクト数

  • スキャン対象値が見つかったソースコード行の数

L
スキャン対象値を含むオブジェクトのリスト

スキャン設定が見つかったすべてのオブジェクトのリストを表示します。 このリストから、さらに処理するために個々のオブジェクトを選択できます。

必要に応じて、結果画面の行を直接、または適切な SCAN サブコマンド(下記参照)を使用して、変更することができます。 スキャンされた行を任意のオブジェクト用に変更できます。ただし、マップおよびデータエリア、またはロックされたオブジェクト(「ソースオブジェクトのロック」を参照)を除きます。

オブジェクト全体を変更するには、E サブコマンドを入力して、対応するエディタを呼び出します。 以前に結果画面で何らかの変更を行っていた場合は、更新を確認するプロンプトが表示されます。

オブジェクトを編集し終わったら、オブジェクトを保存してエディタを終了します。 その後、スキャン処理を継続できます。

S
スキャン対象値のあるオブジェクト行

スキャン対象値が見つかった各ソースコード行を次々に表示します。

必要に応じて、結果画面の行を直接、または適切な SCAN サブコマンド(下記参照)を使用して、変更することができます。 スキャンされた行を任意のオブジェクト用に変更できます。ただし、マップおよびデータエリア、またはロックされたオブジェクト(「ソースオブジェクトのロック」を参照)を除きます。

オブジェクト全体を変更するには、E サブコマンドを入力して、対応するエディタを呼び出します。 以前に結果画面で何らかの変更を行っていた場合は、更新を確認するプロンプトが表示されます。

オブジェクトを編集し終わったら、オブジェクトを保存してエディタを終了します。 その後、スキャン処理を継続できます。

スキャン対象値

スキャンする文字列。

注意:
Natural によって小文字が大文字に変換されるのを防ぐには、端末コマンド %L を使用します。

置換値

スキャン対象値を置き換える値。

[Replace value]オプションは、マップ、データエリア、記録、ダイアログと関数、またはロックされたオブジェクト(「ソースオブジェクトのロック」)には影響しません。

Library

スキャン対象のライブラリの ID。 デフォルトは現在のライブラリです。

指定されたライブラリが SYSTEM の場合は、FUSER ファイル内のライブラリがスキャンされます。 指定されたライブラリの名前が "SYS" から開始し、SYSTEM ではない場合は、FNAT ファイル内のライブラリがスキャンされます。

オブジェクト名 スキャン対象のオブジェクト:
空白 すべてのオブジェクト
*
object-name> 名前が name 以上であるすべてのオブジェクト
object-name< 名前が name 以下であるすべてのオブジェクト
一定範囲のオブジェクト群でスキャンする場合は、システムコマンド LIST の記述と同様にして、オブジェクト名にアスタリスク表記(*)またはワイルドカード表記(?)を使用できます。

Natural の使用』ドキュメントの「オブジェクトの命名規則」も参照してください。

Object type(s) 検索は、特定のオブジェクトタイプに制限できます。 使用できるタイプの選択リストを表示するには、このフィールドに疑問符(?)を入力します。

このフィールドを空白のままにするかアスタリスク(*)を入力した場合は、任意のタイプのオブジェクトがスキャンされます。

完全スキャン Y スキャンが "完全" に行われます。つまり、スキャンされる値は、より長い文字列の一部であっても、任意のフォームで見つかります。
N デフォルトでは、完全スキャンは行われません。

注意:
データエリアでは、このパラメータの値に関係なく、スキャンは常に完全スキャンです。

Selection list Y ライブラリ、名前、コード T または S のタイプ(上記を参照)で指定されたオブジェクトのリストを表示します。 このリストから、さらに処理するために(任意の文字でマーキングして)個々のオブジェクトを選択できます。
N デフォルトでは、選択リストは表示されません。
Trace Y トレース機能を有効にします。
N デフォルトでは、トレース機能は無効になります。

Top of page

SCAN のサブコマンド

次のサブコマンドを、スキャン操作によって生成された結果画面のコマンド行に入力できます。

コマンド 機能
空白 通常のスキャン処理を続けます。
Q スキャン処理を終了します。
.
E フルスクリーンエディタを使用してオブジェクトを編集します。
EDT エディタを使用してオブジェクトを編集します。
LIST 現在ソースワークエリアに表示されているオブジェクトをリストします。
LET 最後に Enter キーが押された後に行われたすべての行変更を無視します。
I 現在スキャン中のオブジェクトを無視し、いずれの変更も保存せず、次のオブジェクトに移ってスキャンを続行します。
.D 行を削除します。 行の横に、削除されたことを示す "D" が表示されます。
.L 最後に Enter キーが押された後に行われたすべての変更を無視します。 行コマンド .D で以前に削除された行も復元します。

編集ルール

Top of page

SCAN キーワード

SCAN 機能は、次のキーワードを指定することにより、バッチモードまたはオンラインモードで呼び出すことができます。

キーワード 説明
FUNC ファンクションコード
SVAL スキャン対象値
LIB Library
RVAL 置換値
OBJ オブジェクト名
TYPE オブジェクトタイプ
ABSOL 完全スキャン

注意:
ダイレクトコマンドでは、意図しないスキャン/置換結果を回避するために、空白が埋め込まれた値を避ける必要があります。 オンラインモードでは、空白が埋め込まれた値のスキャンは、[SCAN]メニューでのみ使用できます。

キーワードを使用した SCAN コマンドの例:

SCAN FUNC=S,SVAL=value,LIB=SYSTEM,OBJ=PGM0*,TYPE=S
SCAN FUNC=S,SVAL=value,RVAL=value,OBJ=PGM1

Top of page

バッチモードでの SCAN

SCAN コマンドは、呼び出しごとに 1 つの機能のみ処理して、指定された無効なデータの影響を最小化します。 で説明したキーワードまたは位置パラメータを使用できます。

位置パラメータは次のように指定します。

SCAN func, scan-value, replace-value, library, object-name, object-type, absolute

位置パラメータに使用できる値は、「メニューオプション」で説明しています。

重要:
小文字または埋め込みの空白を含む値をスキャンするには、SCAN コマンドと同じバッチジョブの行に scan-value を指定せずに、別のデータ行で、オンラインマップに従ったデータを入力します。「メニューオプション」を参照してください。

埋め込みの空白があるスキャン/置換値の使用例:

SCAN S,MOVE LEFT,MOVE RIGHT,SYSTEM,PGM0*,N,*,N,N

Top of page

Natural Security 環境での SCAN

Natural Security 環境で SCAN を使用できるようにするには、システムコマンド LISTEDTEDIT および READ を現在のライブラリのセキュリティプロファイルで許可する必要があります。 [Replace value]オプションを使用する場合、またはソースを変更可能にする場合は、システムコマンド SAVE も許可する必要があります。

Natural Security 環境では、SCAN コマンドが一部のライブラリで使用できない場合があります。

ライブラリに対してストラクチャードモードのみ許可されている場合、レポーティングモードのオブジェクトはスキャンできますが、変更はできません。

Top of page