Skip to main content

システム・マクロ

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

これらのマクロを使用できるようにする方法

ここで説明するマクロは、%RegisteredObjectOpens in a new tab のすべてのサブクラスで使用できます。%RegisteredObjectOpens in a new tab の拡張でないルーチンまたはクラスでこれらのマクロを使用できるようにするには、以下の該当するファイルをインクルードします。

  • 状態関連のマクロの場合は、%occStatus.inc をインクルードします。

  • メッセージ関連のマクロの場合は、%occMessages.inc をインクルードします。

どのインクルード・ファイルが必要になるかについては、以下に示す各マクロを参照してください。

そのような文の構文は以下のとおりです。

#include %occStatus

これらのインクルード・ファイルでは、大文字と小文字が区別されます。外部で定義されたマクロの使用法の詳細は、"外部マクロ (インクルード・ファイル) の参照" を参照してください。

マクロ・リファレンス

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

ADDSC(sc1, sc2)

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

EMBEDSC(sc1, sc2)

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

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

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

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

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

FormatMessage マクロを使用すると、同じマクロ呼び出し内で、メッセージ・ディクショナリからテキストを取得し、メッセージ引数をテキストに置き換えることができます。%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, ...)

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

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

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

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

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

GETERRORCODE(sc)

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

GETERRORMESSAGE(sc,num)

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

ISERR(sc)

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

ISOK(sc)

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

OK

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

Text(text, domain, language)

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

TextHTML(text, domain, language)

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

TextJS(text, domain, language)

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

ThrowOnError(sc)

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

THROWONERROR(sc, expr)

THROWONERROR マクロは式 (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)

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

ThrowSQLIfError(sqlcode,message)

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

ThrowStatus(sc)

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

FeedbackOpens in a new tab