Skip to main content

システム・フラグおよびシステム修飾子 (qspec)

クラス・ライブラリの多くのメソッドは qspec 引数を受け入れます。これにより、外部ソースの InterSystems IRIS® データ・プラットフォームへのインポート、コードのコンパイル方法、コードのエクスポートを制御できます。qspec 引数は、このページに記載されているサポートされているシステム・フラグとシステム修飾子を連結したものです。

この両機能は連携して機能します。つまり、qspec はフラグと修飾子の両方を含めることができますが、修飾子の前 (左) にフラグを配置する必要があります。修飾子間のスペースは許可されません。

フラグは UNIX® のコマンド行パラメータでモデル化されており、1 文字または 2 文字のシーケンスで構成されています。修飾子はさらに数が多く、名前も長くなり、それぞれがスラッシュ文字 (/) で始まります。フラグと修飾子は否定することができます。

多くのフラグには同等または関連する修飾子があり、この 2 つを同じ qspec で使用できます。"qspec の処理順序" も参照してください。

以下の例では、ファイルをインポートする %SYSTEM.OBJOpens in a new tabLoad() メソッドで qspec 引数を使用しています。この例で、qspecc および k フラグを連結したものです。

 Do $system.OBJ.Load(filename,"ck")

または、以下も同じ意味です。

 Do $system.OBJ.Load(filename,"/compile/keepsource")

以下も同等です。

 Do $system.OBJ.Load(filename,"c/keepsource")

これらのフラグと修飾子については、このページで後述します。

否定

フラグを否定するには、その前にハイフン (-) を付けます。

修飾子を否定するには、/ ではなく /no を使用します (例 : /nodisplaylog)。または、修飾子の末尾に =0 を付けます (例 : /displaylog=0)。

フラグ

フラグ 意味 既定値
b サブクラスおよび SQL 使用で現在のクラスを参照しているクラスを含めます。
c ロード後、クラス定義をコンパイルします。
d 表示。既定で設定されるフラグです。 X
e エクステントによって使用されるグローバル・ストレージを記述するエクステント定義を削除し、データを削除します。
h 非表示クラスを表示します。
i ロード時、XML エクスポート形式をスキーマに対して検証します。既定で設定されるフラグです。 X
k ソースを保持します。 このフラグを設定すると、生成されたルーチンのソース・コードが保持されます。
l 非推奨 — コンパイル時のクラスのロックは、このフラグの設定に関係なく常に自動的に実行されます。 X
p 名前の先頭の文字が “%” であるクラスを追加します。
r 処理を再帰的に実行します。先行依存するすべてのクラスをコンパイルします。
s システム。システム・メッセージまたはアプリケーション・メッセージを処理します。
u アップデートのみ実行します。 最新状態であればクラスのコンパイルをスキップします。  
y 現在のクラスと関連するクラス (SQL 使用下での現在のクラスを参照しているクラスまたは現在のクラスから参照されるクラス) を含めます。
o1、o2、o3、o4 最適化指定子。非推奨となっており、クラス・コンパイラでは無視されます。

コンパイラ修飾子

修飾子 意味 既定値
/autoinclude このクラスのコンパイルに必要な、最新でないすべてのクラスを自動的に含めます。 1
/checkschema インポートした XML ファイルをスキーマ定義に対して検証します。 1
/checkstoragedefined クラスに、すべてのプロパティに対して定義されたストレージがあることを確認します。1 に設定されている場合、この修飾子は、コンパイル時にストレージ定義が変更されたらそれを知らせます。 0
/checksysutd システム・クラスが最新であるかどうかを確認します。 0
/checkuptodate 最新のクラスまたは最新の拡張クラスのコンパイルをスキップします。 expandedonly
/compile ロードされたクラスをコンパイルします。 0
/compileembedded 埋め込み SQL は、これを含む ObjectScript コードのコンパイル時にコンパイルされます。既定では、埋め込み SQL は、SQL コードの初回実行時にコンパイルされます。 0
/cspcompileclass CSP または CSR のロードによって作成されたクラスをコンパイルします。 1
/cspdeployclass CSP ページがロードされたら生成したクラスを配置します。 0
/csphidden CSP および CSR のコンパイルで生成されたクラスを非表示としてマーク付けします。 1
/defaultowner クラスのロード時、Owner キーワードが定義されていない場合、この文字列で指定されているユーザ名をクラス所有者としてクラス定義に挿入します。この文字列の値が $USERNAME である場合、現在のユーザ名をクラス所有者としてクラス定義に挿入します。
/defines 定義するマクロのコンマ区切りリスト。必要に応じてそれらの値も指定します。
/deleteextent エクステントによって使用されるグローバル・ストレージを記述するエクステント定義を削除し、データを削除します。 0
/diffexport diff/merge ツールで実行できるよう、ファイルのエクスポートに時間やプラットフォーム情報を含めません。 0
/display /displaylog および /displayerror のエイリアス修飾子。
/displayerror エラー情報を表示します。 1
/displaylog ログ情報を表示します。 1
/expand /predecessorclasses、/subclasses、および /relatedclasses のエイリアス修飾子。
/exportgenerated クラスをエクスポートするとき、生成したクラスもエクスポートし、そのクラスの生成元となったクラスも追加します。 0
/exportselectivity このクラスのストレージ定義内に格納されている SELECTIVITY 値をエクスポートします。 1
/filterin /application、/system、および /percent のエイリアス修飾子。
/generated 生成される項目 (ルーチン、クラスなど) がパッケージ内の展開中のパターンまたはクラスのリストに含まれるかどうかを決定します。 1
/generatemap マップ・ファイルを生成します。 1
/importselectivity 0 : XML ファイルから SELECTIVITY 値をインポートしません。1 : XML ファイルをインポートするときに、ストレージ定義に格納されている SELECTIVITY 値をインポートします。2 : 既存のクラスの SELECTIVITY 値を維持しますが、既存のクラスに、XML ファイルの内容に対して指定された SELECTIVITY がない場合は、XML ファイルの SELECTIVITY 値を使用します。 2
/includesubpackages サブ・パッケージを含めます。 1
/journal クラス・コンパイル実行中にジャーナリングを有効にします。特に、コンパイルを実行しているプロセスでジャーナリングが無効になっている場合、/journal は既定値 0 になります。システム全体の既定値 1 にはなりません。 1
/keepsource 生成されたルーチンのソース・コードを保持します。 0
/lock 非推奨 — この修飾子の設定に関係なく、クラスはコンパイル時には常に自動的にロックされます。 1
/mapped 別のデータベースからマップされたクラスを含めます。別のデータベースからクラスをコンパイルすることを明確に指定すると (CompileList() メソッド)、/mapped の設定にかかわらず、そのクラスがコンパイルされます。/mapped は、コードがクラスを検索する場合 (例えば、CompileAll() メソッドを使用する場合) にのみ適用されます。Upgrade() メソッドを使用して 1 つのネームスペースのクラス定義データベースをアップグレードする場合、または UpgradeAll() メソッドを使用してすべてのネームスペースのクラス定義データベースをアップグレードする場合、/mapped = 1 に設定する必要があります。そうしないと、マップされたオブジェクトはアップグレードに含められません。 0
/mergeglobal XML ファイルからグローバルをインポートする場合は、そのグローバルを既存のデータとマージします。 0
/multicompile 複数のユーザのジョブを有効にして、クラスをコンパイルします。 1
/percent パーセント・クラスを含めます。 0
/predecessorclasses 先行依存するクラスを再帰的に含めます。 0
/relatedclasses 関連するクラスを再帰的に含めます。 0
/retainstorage クラスのコンパイル時、コンパイラによってストレージ定義が生成されます。既定では、ストレージ定義が更新された場合、クラス定義は更新されたストレージ定義で更新されます。新しいバージョンのクラスが外部ソースからロードされた場合、その更新されたストレージ定義は新しいバージョンのクラス定義で定義されている内容に上書きされます。新しいバージョンのクラスにストレージ定義が含まれていない場合、既存のストレージ定義は削除されます。/retainstorage を設定すると、既存のストレージ定義が一時的に保存され、新しいバージョンのクラスのロード後にリストアされます。新しいバージョンのクラスでもストレージ定義が定義されている場合、既存のストレージ定義は上書きされ、保持されません。新しいバージョンのクラスでストレージ定義が定義されていない場合、前のバージョンのストレージ定義がリストアされます。 0
/subclasses サブ・クラスを再帰的に含めます。 0
/system システム・メッセージまたはアプリケーション・メッセージを処理します。 0

エクスポート修飾子

フラグ 意味 既定値
/checksysutd システム・クラスが最新であるかどうかを確認します。 0
/checkuptodate 投影の際にクラスが最新であるかどうかを確認します。 expandedonly
/createdirs 存在しない場合はディレクトリを作成します。 0
/cspdeployclass CSP ページがロードされたら生成したクラスを配置します。 0
/diffexport diff/merge ツールで実行できるよう、ファイルのエクスポートに時間やプラットフォーム情報を含めません。 0
/display /displaylog および /displayerror のエイリアス修飾子。
/displayerror エラー情報を表示します。 1
/displaylog ログ情報を表示します。 1
/documatichost JavaDoc の生成に使用されるホスト。
/documaticnamespace JavaDoc の生成に使用されるネームスペース。
/documaticport JavaDoc の生成に使用されるポート。
/exportgenerated クラスをエクスポートするとき、生成したクラスもエクスポートし、そのクラスの生成元となったクラスも追加します。 0
/exportselectivity このクラスのストレージ定義内に格納されている SELECTIVITY 値をエクスポートします。 1
/exportversion エクスポート先のシステムの InterSystems プラットフォームとバージョンを指定します。プラットフォームは iris または cache として指定します。バージョンは、2 つの部分または 3 つの部分で構成されるリリース・バージョン (2020.1 または 2020.1.1 など) で指定します。例えば、/exportversion=iris2020.1.1 または /exportversion=cache2018.1.8 です。エクスポート・システムとインポート・システムが同じ InterSystems バージョンでない場合、IRIS は /exportversion 値を使用します。以前の InterSystems バージョンでは実装されていなかったクラス・キーワードを削除することで、バージョン間でのエクスポート形式の変更を処理します。/exportversion を指定しても、エクスポート・システムとインポート・システム間のコードの互換性は保証されません。 InterSystems IRIS の現在のバージョン
/generatemap マップ・ファイルを生成します。 1
/generationtype 生成モード。
/genserialuid serialVersionUID を生成します。 1
/importselectivity 0 : XML ファイルから SELECTIVITY 値をインポートしません。1 : XML ファイルをインポートするときに、ストレージ定義に格納されている SELECTIVITY 値をインポートします。2 : 既存のあらゆる SELECTIVITY 値を維持しますが、既存の値がないプロパティには XML ファイルの SELECTIVITY 値を使用します。 2
/includesubpackages サブ・パッケージを含めます。 1
/javadoc javadoc を作成しません。 1
/make 最新のコンパイルのタイムスタンプが、最新の生成時のタイムスタンプよりも新しい場合は、依存またはクラスのみを生成します。 0
/mapped 別のデータベースからマップされたクラスを含めます。 0
/mergeglobal XML ファイルからグローバルをインポートする場合は、そのグローバルを既存のデータとマージします。 0
/newcollections ネイティブの Java コレクションを使用します。 1
/percent パーセント・クラスを含めます。 0
/pojo POJO 生成モードを指定します。 0
/predecessorclasses 先行依存するクラスを再帰的に含めます。 0
/primitivedatatypes %Integer、%Boolean、%BigInt、%Decimal に Java 基本関数を使用します。 0
/projectabstractstream 引数が抽象ストリームであるか、返りタイプが抽象ストリームであるメソッドを含むプロジェクト・クラスを指定します。 0
/projectbyrefmethodstopojo pojo 実装に ByRef メソッドを投影します。 0
/recursive クラスを再帰的にエクスポートします。 1
/relatedclasses 関連するクラスを再帰的に含めます。 0
/skipstorage クラスのストレージ情報をエクスポートしません。 0
/subclasses サブ・クラスを再帰的に含めます。 0
/system システム・メッセージまたはアプリケーション・メッセージを処理します。 0
/unconditionallyproject コードのコンパイルまたは正常な動作を妨げる問題を無視して投影を実行します。 0
/usedeepestbase メソッドまたはプロパティ定義に対してメソッドまたはプロパティが定義されている場合に、最も下部にあるベースを使用します。 P が A、B、および C に定義されており、A が B を拡張し、B が C を拡張する場合、より深い位置にあるベースは C になります。 0

ShowClassAndObject 修飾子

フラグ 意味 既定値
/detail 詳細情報を表示します。 0
/diffexport diff/merge ツールで実行できるよう、ファイルのエクスポートに時間やプラットフォーム情報を含めません。 0
/hidden 非表示クラスを表示します。 0
/system システム・メッセージまたはアプリケーション・メッセージを処理します。 0

UnitTest 修飾子

フラグ 意味 既定値
/autoload ディレクトリを自動ロードすることを指定します。そのサブディレクトリも自動ロードされます。詳細は、"%UnitTest.ManagerOpens in a new tab" の "RunTest()Opens in a new tab" メソッドを参照してください。
/cleanup ユニット・テスト完了時にグローバルを削除します。既定では、グローバルは削除されません。設定されている場合でも、分析グローバルは削除されません。 0
/debug アサートに失敗した場合、アサートをブレーク (BREAK) 状態にします。 0
/delete ロードしたクラスを削除するかどうかを判断します。 1
/display /displaylog および /displayerror のエイリアス修飾子。
/displayerror エラー情報を表示します。 1
/displaylog ログ情報を表示します。 1
/findleakedvariables 有効にすると、テスト実施前にプロセスで現在設定されているパブリック変数が記録され、テスト完了後にそれらの設定と比較されます。SQLCODE などの事前設定された一連の既知のコンテキストおよび出力変数以外に、新たに定義された変数がそれらの値とともにテストの失敗として報告されます。 0
/load クラスをロードするかどうかを判断します。ロードしない場合は、ディレクトリからクラス名のみが取得されます。 1
/loadudl IDE によって作成された UDL ファイルをロードします。設定すると、.cls、.mac、.int、および .inc ファイルがロードされます。/loadudl と /loadxml を使用することで、ロードされるファイルの種類を制限できます。既定では、すべてのファイルがロードされます。UDL ファイルは常に、Unicode 文字が正しくロードされるように UTF8 としてロードされます。 1
/loadxml XML 形式のソース・ファイルをロードします。設定すると、.xml ファイルがロードされます。/loadudl と /loadxml を使用することで、ロードされるファイルの種類を制限できます。既定では、すべてのファイルがロードされます。 1
/recursive サブディレクトリでのテストを再帰的に実行するかどうかを判断します。 1
/run テストを実行するかどうかを判断します。 1

フラグに対応する修飾子

以下のテーブルに、既存のフラグとそれに対応する修飾子を示します。フラグによっては複数の修飾子にマップされるものがあり、その意味も使用目的に応じて異なります。

フラグ グループ 修飾子 既定値
b コンパイラ /subclasses 0
c コンパイラ /compile 0
d コンパイラ /displayerror 1
d コンパイラ /displaylog 1
d UnitTest /displayerror 1
d UnitTest /displaylog 1
e コンパイラ /deleteextent 0
i コンパイラ /checkschema 1
k コンパイラ /keepsource 0
l コンパイラ /lock 1
p コンパイラ /percent 0
r コンパイラ /predecessorclasses 0
r コンパイラ /includesubpackages 1
s コンパイラ /system 0
y コンパイラ /relatedclasses 0
b Export /subclasses 0
d Export /displayerror 1
d Export /displaylog 1
g Export /exportselectivity 0
p Export /percent 0
r Export /includesubpackages 1
r Export /recursive 1
r Export /predecessorclasses 0
s Export /system 0
y Export /relatedclasses 0
h ShowClassAndObject /hidden 0
s ShowClassAndObject /system 0

フラグおよび修飾子のヘルプ

フラグで使用可能な設定を確認するには、以下のコマンドを使用します。

 Do $system.OBJ.ShowFlags()

これは、以下のような出力を生成します。

See $system.OBJ.ShowQualifiers() for comprehensive list of qualifiers as flags have been superseded
by qualifiers
 
    b - Include sub classes.
    c - Compile. Compile the class definition(s) after loading.
    d - Display. This flag is set by default.
...
Default flags for this namespace
You may change the default flags with the SetFlags(flags,system) classmethod.

同様に、修飾子で使用可能な設定を確認するには、以下のコマンドを使用します。

 Do $system.OBJ.ShowQualifiers()

これは、以下のような出力を生成します。

            Name: /checkschema
    Description: Validate imported XML files against the schema definition.
           Type: logical
           Flag: i
  Default Value: 1

           Name: /checksysutd
    Description: Check system classes for up-to-dateness
           Type: logical
  Default Value: 0

           Name: /checkuptodate
    Description: Skip classes or expanded classes that are up-to-date.
           Type: enum
           Flag: ll
      Enum List: none,all,expandedonly,0,1
  Default Value: expandedonly
  Present Value: all
  Negated Value: none
...

これらのメソッドは、それぞれ現在のフラグと修飾子についての報告も行います。

既定値の制御

ここには、フラグと修飾子の既定値 (該当する場合) をリストします。これらの既定値は、%SYSTEM.OBJOpens in a new tabSetFlags() メソッドを使用してオーバーライドできます。同様に、SetQualifiers() メソッドを使用して、現在のネームスペース (既定) またはシステム全体に対して修飾子を設定できます。

qspec の処理順序

qspec は左から右に処理されます。特定のフラグまたは修飾子を設定すると、現在の設定が、使用している環境の既定値であるか qspec 内のそれ以前のオカレンスであるかに関係なく、オーバーライドされます。

フラグは修飾子の左にリストする必要があるため、修飾子設定は常にフラグ設定より優先されることに注意してください。

FeedbackOpens in a new tab