Skip to main content

システム・マクロ

ここでは、最も一般的なシステム・マクロを使用する方法を説明します。

マクロの可用性

特に明記されていない限り、このページで説明するマクロはすべてのクラスで使用できます。これらをルーチンで使用できるようにするには、リファレンスで説明されているように、適切なファイルを含めます。"外部マクロ (インクルード・ファイル) の参照" を参照してください。

マクロ・リファレンス

マクロ名では大文字と小文字が区別されます。InterSystems IRIS では、以下のマクロが提供されます。

$$$ADDSC(sc1,sc2)

%Status コード (sc2) を既存の %StatusOpens in a new tab コード (sc1) に付加します。このマクロには %occStatus.inc が必要です。

$$$EMBEDSC(sc1,sc2)

%Status コード (sc2) を既存の %StatusOpens in a new tab コード (sc1) 内に埋め込みます。このマクロには %occStatus.inc が必要です。

$$$ERROR(errorcode,arg1,arg2,...)

オブジェクト・エラー・コード (errorcode) を使用して、%Status オブジェクトを作成します。オブジェクト・エラー・コードの関連テキストは、%1%2 などの形式の引数を数個受け付けます。その後、ERROR はそれらの引数を、errorcode (arg1arg2 など) に続くマクロ引数に置換します。その際には、この追加引数の順序に基づいて置換されます。このマクロには %occStatus.inc が必要です。

システム定義のエラー・コードのリストは、"一般的なエラー・メッセージ" を参照してください。

$$$FormatMessage(language,domain,id,default,arg1,arg2,...)

同じマクロ呼び出し内で、メッセージ・ディクショナリからテキストを取得し、メッセージ引数をテキストに置き換えることができます。%StringOpens in a new tab を返します。

引数 説明
language RFC1766Opens in a new tab 言語コード。Web アプリケーション内では、%response.Language を指定して既定のロケールを使用できます。
domain メッセージ・ドメイン。Web アプリケーション内では、%response.Domain を指定できます。
id メッセージ ID。
default languagedomain、および id で識別されるメッセージが見つからない場合に使用する文字列。
arg1arg2 など メッセージ引数の置換テキスト。これらはすべてオプションなので、メッセージに引数がない場合でも $$$FormatMessage を使用できます。

メッセージ・ディクショナリについては、"文字列のローカライズとメッセージ・ディクショナリ" を参照してください。

このマクロには %occMessages.inc が必要です。

%Library.MessageDictionaryOpens in a new tabFormatMessage() インスタンス・メソッドも参照してください。

$$$FormatText(text,arg1,arg2,...)

入力テキスト・メッセージ (text) を受け入れます。このテキスト・メッセージには %1%2 などの形式で引数を含めることができます。FormatText はそれらの引数を、text 引数 (arg1arg2 など) に続くマクロ引数に置換します。その際には、この追加引数の順序に基づいて置換されます。その後、結果の文字列を返します。 このマクロには %occMessages.inc が必要です。

$$$FormatTextHTML(text,arg1,arg2,...)

入力テキスト・メッセージ (text) を受け入れます。このテキスト・メッセージには %1%2 などの形式で引数を含めることができます。FormatTextHTML はそれらの引数を、text 引数 (arg1arg2 など) に続くマクロ引数に置換します。その際には、この追加引数の順序に基づいて置換されます。またこのマクロは、その結果に HTML エスケープを適用します。その後、結果の文字列を返します。 このマクロには %occMessages.inc が必要です。

$$$FormatTextJS(text,arg1,arg2,...)

入力テキスト・メッセージ (text) を受け入れます。このテキスト・メッセージには %1%2 などの形式で引数を含めることができます。FormatTextJS はそれらの引数を、text 引数 (arg1arg2 など) に続くマクロ引数に置換します。その際には、この追加引数の順序に基づいて置換されます。またこのマクロは、その結果に JavaScript エスケープを適用します。その後、結果の文字列を返します。 このマクロには %occMessages.inc が必要です。

$$$GETERRORCODE(sc)

指定の %Status コード (sc) のエラー・コード値を返します。 このマクロには %occStatus.inc が必要です。

$$$GETERRORMESSAGE(sc,num)

指定の %Status コード (sc) から、エラー・メッセージ値の、num で指定されている部分を返します。 例えば、num=1 は SQLCODE エラー番号を返し、num=2 はエラー・メッセージ・テキストを返します。このマクロには %occStatus.inc が必要です。

$$$ISERR(sc)

指定の %Status コード (sc) がエラー・コードの場合に True を返します。それ以外は False を返します。このマクロには %occStatus.inc が必要です。

$$$ISOK(sc)

指定の %Status コード (sc) が正常に完了した場合に True を返します。それ以外は False を返します。このマクロには %occStatus.inc が必要です。

$$$LOWER(string)

小文字形式の入力文字列を返します。ここに列挙した他のマクロとは異なり、このマクロはすべてのクラス定義で自動的に利用可能です。これをルーチンにインクルードするには、%systemInclude インクルード・ファイルをインクルードします。

$$$OK

正常に完了したことを表す %Status コードを作成します。このマクロには %occStatus.inc が必要です。

$$$Text(text,domain,language)

ローカリゼーションに使用されるこのマクロは、コンパイル時に新しいメッセージを生成し、実行時にはそのメッセージを取得するコードを生成します。 このマクロには %occMessages.inc が必要です。

$$$TextHTML(text,domain,language)

ローカリゼーションに使用されるこのマクロは、Text マクロと同じ処理を実行し、その結果に HTML エスケープを適用します。その後、結果の文字列を返します。 このマクロには %occMessages.inc が必要です。

$$$TextJS(text,domain,language)

ローカリゼーションに使用されるこのマクロは、Text マクロと同じ処理を実行し、その結果に JavaScript エスケープを適用します。その後、結果の文字列を返します。 このマクロには %occMessages.inc が必要です。

$$$ThrowOnError(sc)

指定された %Status コード (sc) を評価します。sc がエラー状態を示す場合、ThrowOnErrorTHROW 操作を実行して、%Exception.StatusExceptionOpens in a new tab タイプの例外を例外ハンドラにスローします。このマクロには %occStatus.inc が必要です。詳細は、"TRY-CATCH メカニズム" を参照してください。

$$$THROWONERROR(sc,expr)

式 (expr) を評価します。その式の値は %Status コードと見なされ、マクロは sc として渡された変数内に %StatusOpens in a new tab コードを格納します。%StatusOpens in a new tab がエラーの場合、THROWONERRORTHROW 処理を実行し、%Exception.StatusExceptionOpens in a new tab タイプの例外を例外ハンドラへスローします。このマクロには %occStatus.inc が必要です。

$$$ThrowSQLCODE(sqlcode,message)

指定された SQLCODE とメッセージを使用し、THROW 処理を実行して、%Exception.SQLOpens in a new tab タイプの例外を例外ハンドラへスローします。このマクロには %occStatus.inc が必要です。詳細は、"TRY-CATCH メカニズム" を参照してください。

$$$ThrowSQLIfError(sqlcode,message)

指定された SQLCODE とメッセージを使用し、THROW 処理を実行して、%Exception.SQLOpens in a new tab タイプの例外を例外ハンドラへスローします。このマクロは、SQLCODE が 0 未満 (エラーを示す負の数字) の場合に、この例外をスローします。このマクロには %occStatus.inc が必要です。詳細は、"TRY-CATCH メカニズム" を参照してください。

$$$ThrowStatus(sc)

指定された %Status コード (sc) を使用し、THROW 処理を実行して、%Exception.StatusExceptionOpens in a new tab タイプの例外を例外ハンドラへスローします。このマクロには %occStatus.inc が必要です。詳細は、"TRY-CATCH メカニズム" を参照してください。

$$$UPPER(string)

大文字形式の入力文字列を返します。ここに列挙した他のマクロとは異なり、このマクロはすべてのクラス定義で自動的に利用可能です。これをルーチンにインクルードするには、%systemInclude.inc インクルード・ファイルをインクルードします。

FeedbackOpens in a new tab