システム管理ユーティリティは、次のとおりです。
%DSEWRAPユーティリティは、PIPEデバイスまたは生成されたコマンド・ファイルを通じてDSEを駆動するプログラム・インタフェースを提供します。現在の実装では、データベース・ファイル・ヘッダーのダンプにのみアクセスできます。
ユーティリティのラベル
DUMP^%DSEWRAP(regions,.fdump,"fileheader","all") : DSEの DUMP -FILEHEADER -ALL コマンドの結果を取得し、ローカル変数 'regions' に含まれる領域の2番目のパラメーター(参照渡し)で解析します。外部関数として呼び出された場合、%DSEWRAP は DUMP -FILEHEADER -ALL コマンドの状態を返します。
最初のパラメータ 'regions' は、すべての使用可能な領域を意味するために、未定義、""、"*" または "all" とすることができます。
2番目のパラメータは、呼び出し元がデータの取得に使用する参照渡し変数です。
3番目の省略可能なパラメータのデフォルトはDUMP -FILEHEADERです。他のコマンド・ダンプ・コマンドの使用はテストされていません。
4番目のオプション・パラメーターは、DUMP -FILEHEADERコマンドの詳細レベル(-ALL)を示します。他の -FILEHEADER修飾子の詳細については、GT.M管理および操作ガイドの「DSE」の章を参照してください。
出力配列の形式は、fdump(<REGION NAME>,<FIELD NAME>) です。フィールドが衝突した場合、dump^%DSEWRAP は、数値の子孫を作成して既存のデータを上書きするのを防ぎます。
%DSEWRAP のデフォルトの $ETRAPハンドラは、入力の検証中にエラーが検出された場合、アプリケーションを終了します。アプリケーション開発者は、%DSEWRAP を呼び出す前に $ETRAPを定義する必要があります。
例:
$gtm -run ^%XCMD 'do dump^%DSEWRAP("DEFAULT",.dsefields,"","all") zwrite dsefield'
%FREECNT:現在のグローバルディレクトリに関連付けられたデータベースファイル内の空きブロック数を表示します。
%FREECNTユーティリティは、現在のグローバルディレクトリに関連付けられたデータベースファイル内の空きブロック数を表示します。
例:
GTM>DO ^%FREECNT Region Free Total Database file ------ ---- ----- ------------- DEFAULT 81 100 ( 81.0%) /home/gtmuser1/.fis-gtm/V5.4-002B_x86/g/gtm.dat GTM>
この例では、GTM> プロンプトで%FREECNTを呼び出し、現在のグローバルディレクトリ内の利用可能な、空きブロック数と空き領域の割合を表示しています。
^%XCMDユーティリティは、シェルのコマンドラインからの入力をXECUTE(実行)し、そのコードによって生成されるエラー状態を(UNIX上のシングル・バイトに切り捨てて)返します。
LOOP%XCMD ユーティリティ・ラベル
LOOP^%XCMD [--before=/<XECUTE_code>/] --xec=/<XECUTE_code>/ [--after=/<XECUTE_code>/]
LOOP^%XCMD: -xec=/arg1/ で指定された引数を、それが読み取る標準入力の各行に対してGT.MコードとしてXECUTEします。各行は変数 %l に格納されます。そのコードによって生成されたエラー状態(UNIXではシングル・バイトに切り捨てられます)を返します。
--before=/arg0/ は、--xec を実行する前に LOOP^%XCMD が XECUTEする必要があるGT.Mコードを指定します。
--after=/arg2/ は、最後に --xec を実行した後に LOOP^%XCMD が XECUTEする必要があるGT.Mコードを指定します。
すべての修飾子でGT.Mコードの先頭と末尾を示す2つのスラッシュ(/)を常にGT.Mコードで囲みます。FISは、シェルによる不適切な拡張を防ぐために、GT.Mコードを一重引用符で囲むことを強く推奨します。LOOP^%XCMD のコマンドライン・パーサーは、これらのスラッシュを無視します。
例:
/usr/lib/fis-gtm/V5.4-002B_x86/gtm -run %XCMD 'write "hello world",!'
次のような出力を生成します:
"hello world"
例:
$ ps -ef | $gtm_exe/mumps -run LOOP^%XCMD --before='/set user=$ztrnlnm("USER") write "Number of processes owned by ",user," : "/' --xec='/if %l[user,$increment(x)/' --after='/write x,\!/' Number of processed owned by jdoe: 5 $ $ cat somefile.txt | $gtm_exe/mumps -run LOOP^%XCMD --before='/write "Total number of lines : "/' --xec='/set total=$increment(x)/' --after='/write total,\!/' Total number of lines: 9 $