サブプログラムでの SYSMAIN の使用

MAINUSER サブプログラムは、一種のアプリケーションプログラミングインターフェイスです。ユーザーは SYSMAIN ユーティリティメニューを使わずに、ユーザー記述オブジェクト(サブルーチン、プログラム、またはサブプログラム)から SYSMAIN ユーティリティ機能を実行できるようになります。SYSMAIN 機能が完了した時点でユーティリティは終了し、制御は要求を発行したオブジェクトに戻されます。MAINUSER は、オンラインモードでもバッチモードでも使用することができます。呼び出し可能なルーチンの例として、SYSMAIN システムライブラリで提供される MAINCALL プログラムがあります。

このセクションでは、MAINUSER の使用手順に加えて、SYSMAIN ユーティリティ機能の実行用コマンドを指定するときに使用する構文について説明します。


MAINUSER の呼び出しと実行

Start of instruction setMAINUSER を呼び出して実行するには

  • 次の構文要素を指定して CALLNAT ステートメントを発行します。

    CALLNAT 'MAINUSER' command error message library

    ここでの各変数値は次のパラメータを表します。

    パラメータ Natural データフォーマット/データ長 説明
    command A250 SYSMAIN で実行するコマンド文字列の詳細については、「コマンドの使用」を参照してください。
    error N4 処理の最後に SYSMAIN によって発行される、処理の正常終了またはエラーを示すリターンコード。
    message A72 オンラインでのエラーに対応したメッセージ。
    library A8 ユーティリティ SYSMAIN を含むライブラリの名前。デフォルトでは、ライブラリ SYSMAIN がこれに当たります。(このパラメータは、互換性保持の目的でのみ提供されています)。

コマンドの使用

SYSMAIN 機能は、MAINUSER サブプログラムのパラメータとして発行するコマンドを使用することで実行できます。

command は、キーワードと変数値で構成されます。実行される SYSMAIN 機能ごとに、対応する構文図でキーワードと変数値を示し、「コマンドのキーワードと変数」で説明します。構文図の記号は、システムコマンドで使用される構文記号に対応します。これらの記号の詳細については、『システムコマンド』ドキュメントの「システムコマンド構文」を参照してください。

コマンド構文の順序は必ずしも固定されていません。以下のルールが適用されます。

  • SYSMAIN 機能、オブジェクトタイプ、およびオブジェクト名は、コマンド文字列の最初の 3 つのパラメータとして指定する必要があります。

  • ピリオド(.)は、コマンドの終わりを示します。この文字がコマンド文字列内で検出されると、後続のデータはすべて無視されます。

  • 構文図では、読みやすくするために FROM キーワードの代わりに FM または IN を使用していますが、常に FROMFM または IN の同義語として使用でき、その逆も可能です。

  • where-clause および with-clause の構文は、すべてのコマンドで同じです。

LIST および FIND コマンド構文

次のコマンド構文は、リスト機能および検索機能に適用されます。

LIST
FIND

ALL
CATALOGED
SAVED
STOWED
VIEW

name

IN [LIBRARY] lib-name

[where-clause] [with-clause]

例:LIST および FIND

LIST VIEW * IN TESTLIB
L SAVED TEST* IN TESTLIB TYPE PNS FNR 6
L SA TEST* IN TESTLIB FNR 6 DBID 2 TYPE PM FMDATE 2007-01-01
FIND PROG1 IN * DBID 1 FNR 6
F STOWED MAINMENU IN SYS* WHERE DBID 1 FNR 5
FIND ALL PROG2 IN PROD* FNR 27 DBID 1

COPY および MOVE コマンド構文

次のコマンド構文は、コピーおよび移動機能に適用されます。

COPY
MOVE

ALL
CATALOGED
SAVED
STOWED
VIEW
RESOURCE

         
name

FM [LIBRARY] lib-name

[where-clause]
    TO [LIBRARY] lib-name [where-clause] [with-clause]

例:COPY および MOVE

COPY PROG1 FM TESTORD TO ORDERS DBID 1 FNR 6 REP
C PGM* FM TESTLIB TO PRODLIB WITH REP TYPE PNS
C VIEW PERS FM OLDLIB FNR 10 TO NEWLIB FNR 16 REPLACE
MOVE VIEW PERSONNEL FM OLDLIB FNR 20 TO NEWLIB FNR 24
M PROG1 TO NEWLIB
M STOWED * FM OLDLIB TO NEWLIB WHERE DBID 100 FNR 160 WITH XREF Y

DELETE コマンド構文

次のコマンド構文は、削除機能に適用されます。

DELETE

ALL
CATALOGED
SAVED
STOWED
VIEW
RESOURCE

name

IN [LIBRARY] lib-name

[where-clause] [with-clause]

例:DELETE

DELETE SA * IN LIBTEST TYPE GLA
D * IN TESTORD TYPE PM
D VIEW FINANCE IN TESTLIB DBID 12 FNR 27

RENAME コマンド構文

次のコマンド構文は、名前の変更機能に適用されます。

RENAME

ALL
CATALOGED
SAVED
STOWED
VIEW
RESOURCE

   
   
name AS new-name [with-clause]
  FM [LIBRARY] lib-name [where-clause]
  TO [LIBRARY] lib-name [where-clause]

例:RENAME

RENAME PGM1 AS PROG1
R PGM1 AS PROG1 FM TESTLIB DBID 1 FNR 5 TO PRODLIB DBID 2 FNR 6

IMPORT コマンド構文

以下のセクションでは、インポート機能に適用されるコマンド構文を示します。

オブジェクトをインポートする前に考慮する必要がある事項については、インポート機能の説明を参照してください。

IMPORT

ALL
CATALOGED
SAVED
STOWED
VIEW
RESOURCE

   
   
name FM [PATH] path-name
  TO [LIBRARY] lib-name [where-clause] [with-clause]

例:IMPORT

IMPORT ALL PGM* FM D:\NAT-PROGRAMS TO IMP-LIB
I RES res1.bmp FM D:\RESOURCES TO IMP-LIB

where-clause

[WHERE] [DBIDdbid] [FNRfnr]
  [DIC (dbid,fnr,password,cipher)]
  [SEC (dbid,fnr,password,cipher)]

セパレータ

DIC および SEC キーワードに続く各値の間に、または値がない場合に、セパレータとしてコンマを使用する必要があります。例えば、次のようになります。DIC (10,,secret,2a)ID セッションパラメータ(『パラメータリファレンス』の「ID - INPUT デリミタ文字」も参照)がコンマに設定されている場合は、値を区切るセパレータとしてスラッシュ(/)を使用します。

with-clause

[WITH] [TYPEtype] [FMDATE date] [FMTIME time]
  [USER user-id]

XREF

Y
N

  [REPLACE] [RCOP] [NOPROMPT] [HELP]
 

STRUCT
SM
REPORT

           

コマンドのキーワードと変数

このセクションでは、コマンドで使用するキーワードと、必要に応じて、対応する変数値について説明します。

キーワードはアルファベット順に示しています。斜体の文字はキーワードで指定する必要がある変数値です。変数値ごとに Natural データのフォーマットと長さが示されています。

キーワード

Natural データフォーマット/
データ長

説明
ALL name A9 プログラミングオブジェクトにのみ適用されます。

処理されるオブジェクトの名前または名前の範囲(「名前の範囲の指定」を参照)。保存(ソース)オブジェクトおよびカタログ化オブジェクトのいずれかまたは両方が処理されます。

CATALOGED name A9 プログラミングオブジェクトにのみ適用されます。

処理されるカタログ化オブジェクトの名前または名前の範囲(「名前の範囲の指定」を参照)。

SAVED name A9 プログラミングオブジェクトにのみ適用されます。

処理される保存(ソース)オブジェクトの名前または名前の範囲(「名前の範囲の指定」を参照)。

STOWED name A9 プログラミングオブジェクトにのみ適用されます。

保存(ソース)オブジェクトおよびカタログ化オブジェクトが処理されるオブジェクトの名前または名前の範囲(「名前の範囲の指定」も参照)。保存(ソース)オブジェクトおよびカタログ化オブジェクトの両方として存在するオブジェクトのみが処理されます。

この例外はコピーコードとテキストで、両方ともカタログ化できません。ただし、このオプションを指定すると処理対象になります。

VIEW name A32 DDM にのみ適用されます。

処理される DDM の名前または名前の範囲(「名前の範囲の指定」を参照)。

RESOURCE name A255 共有リソースにのみ適用されます。

処理される共有リソースの名前または名前の範囲(「名前の範囲の指定」を参照)。

FROM
または
FM
または
IN

lib-name
または
path-name

A8
または
A253

ソースライブラリまたはソースパスを指定します。

ソースライブラリまたはソースパスは、処理対象のオブジェクトを含みます。

TO lib-name A8 ターゲットライブラリを指定します。
AS new-name

A8
または
A32
または
A255

RENAME コマンドで名前を変更するときに、オブジェクトに付ける新しい名前。フォーマット/長さは、プログラミングオブジェクトには A8、DDM には A32、共有リソースには A255 が適用されます。

LIBRARY lib-name A8 ソースライブラリまたはターゲットライブラリの名前(lib-name)を示すオプションキーワード。キーワードと各値を省略すると、SYSMAIN を呼び出す前にログオンしたライブラリが処理に使用されます。

ソースライブラリは、処理対象のオブジェクトを含みます。ターゲットライブラリは、オブジェクトのコピー先または移動先のライブラリです。オブジェクト名はここで変更されることがあります。

lib-name は、FROM/FM/IN または TO キーワードの直後に指定する必要があります。LIBRARY は、使用する場合は FROM/FM/IN または TOlib-name の間に入力する必要があります。

PATH path-name A253 IMPORT コマンドにのみ適用されます。

ソースパスの名前(path-name)を示すオプションキーワード。有効なパス名については、「オブジェクト指定ウィンドウのフィールドの使用」の PATH を参照してください。

path-name は、FROM/FM/IN または TO キーワードの直後に指定する必要があります。PATH は、使用する場合は FROM/FM/IN または TOpath-name の間に入力する必要があります。

WHERE where-clause - where-clause の開始を示すオプションキーワード。

where-clause は常に、FROM/FM/IN または TO キーワードおよび該当する場合はライブラリ名(lib-name)またはパス名(path-name)の後に入力する必要があります。節内のキーワードと値の順序は任意です。

DBID dbid N5 ソースシステムファイルまたはターゲットシステムファイルのデータベース ID(DBID)。

ソースシステムファイルは、処理対象のオブジェクトを含みます。ターゲットシステムファイルは、オブジェクトのコピー先または移動先のシステムファイルです。必要に応じてオブジェクト名が変更されます。

有効な DBID は 165535 です。

DBID または FNR(ファイル番号)を指定しない場合は、次の処理が適用されます。
現在のライブラリが含まれているシステムファイルの DBID と FNR が常に使用されます。
例:FUSER システムファイルに含まれているライブラリを指定した場合は、このシステムファイルの DBID と FNR が使用されます。

FNR fnr N5 ソースシステムファイルまたはターゲットシステムファイルのファイル番号(FNR)。

ソースシステムファイルは、処理対象のオブジェクトを含みます。ターゲットシステムファイルは、オブジェクトのコピー先または移動先のシステムファイルです。必要に応じてオブジェクト名が変更されます。

有効な FNR は 165535 です。

DBID(データベース ID)または FNR を指定しない場合は、次の処理が適用されます。
現在のライブラリが含まれているシステムファイルの DBID と FNR が常に使用されます。
例:FUSER システムファイルに含まれているライブラリを指定した場合は、このシステムファイルの DBID と FNR が使用されます。

DIC

dbid
fnr
password
cipher

A80 データベース ID(dbid)、ファイル番号(fnr)、Adabas パスワード(password)、Adabas サイファコード(cipher)など、FDIC ソースシステムファイルとターゲットシステムファイルのいずれかまたは両方の環境を指定します。
SEC

dbid
fnr
password
cipher

A80 データベース ID(dbid)、ファイル番号(fnr)、Adabas パスワード(password)、Adabas サイファコード(cipher)など、FSEC ソースシステムファイルとターゲットシステムファイルのいずれかまたは両方の環境を指定します。
WITH with-clause - with-clause の開始を示すオプションキーワード。

with-clause のキーワードと値は任意の順序で指定でき、with-clause はコマンド文字列内の最初の 3 つの位置を除く任意の位置に配置できます。

TYPE type A20 以下の「TYPE の指定」でリストしている、処理対象オブジェクトのタイプ。
FMDATE date A10

期間の開始日。
指定した日付以降に保存またはカタログ化されたすべてのオブジェクトが処理されます。

日付は有効な Natural 日付フォーマットで指定する必要があります。デフォルトフォーマットは、2007-05-20 のように、国際標準フォーマットの YYYY-MM-DDYYYY = 年、MM = 月、DD = 日)です。

FMTIME time A5 FMDATE を指定した場合にのみ適用されます。

開始時刻を指定します。
指定した日時以降に保存またはカタログ化されたすべてのオブジェクトが処理されます。

時刻は次の形式で指定する必要があります:HH: IIHH = 時間、II = 分)。例:11:33

USER user-id A8

ユーザー ID。
指定したユーザーによって保存またはカタログ化されたすべてのオブジェクトが処理されます。

XREF

N
または
Y

A1
Predict をインストールしている場合に、プログラミングオブジェクトにのみ適用されます。
   
Predict システムファイルに保存されたクロスリファレンス(XRef)データが処理されることを示します。
   
次の値のいずれかを指定できます。
   
N DELETE コマンドを使用する場合を除いて、XRef データは処理されません。カタログ化オブジェクトを削除すると、このオブジェクトの既存の XRef データはすべて SYSMAIN により必ず削除されます。
   
Y すべての XRef データが処理されます。
   
XRef の考慮事項」も参照してください。
REPLACE - - with-clause で使用されている置換オプションをアクティブ化します。

オブジェクトは自動的に置き換えられます。

置換オプションの使用」も参照してください。
RCOP - - 名前を変更するオブジェクトのコピーを作成することを指定します。
NOPROMPT - - バッチモードでは適用されません。

SYSMAIN プロンプトを無効化(NOPROMPT)します。
NOPROMPT の場合は、確認画面は表示されません。
例えば、何かを削除する前に、SYSMAIN はユーザーに確認を求めます。

HELP - - このキーワードは、互換性保持の目的でのみ提供されています。

STRUCT
または
SM

    IMPORT コマンドにのみ適用されます。

ストラクチャードモード(『プログラミングガイド』の「Natural プログラミングモード」を参照)を示します。

REPORT     IMPORT コマンドにのみ適用されます。

レポーティングモード(『プログラミングガイド』の「Natural プログラミングモード」を参照)を示します。

. - - ピリオド(.)は、コマンドの終わりを示します。この文字がコマンド文字列内で検出されると、後続のデータはすべて無視されます。

TYPE の指定

次の表に、TYPE キーワードで使用できるプログラミングオブジェクトの有効なオブジェクトタイプコードをすべて示します。

Code オブジェクトタイプ
P プログラム
N Subprogram
S サブルーチン
M マップ
H Helproutine
3 ダイアログ
5 プロセッサ
A パラメータデータエリア
G グローバルデータエリア
L ローカルデータエリア
C コピーコード
T テキスト
4 クラス
7 関数
V ビュー(DDM)
8 アダプタ
* すべてのプログラミングオブジェクトタイプ