GlideRecord を使用してテーブルをクエリーする テーブルをクエリーするには、まずテーブルのオブジェクトを作成します。 このオブジェクトは GlideRecord と呼ばれます。GlideRecord を作成するには、スクリプトで次のように作成します。var target = new GlideRecord('incident'); これにより、インシデント テーブルの GlideRecord オブジェクトである target という変数が作成されます。必要なパラメーターは、アクセスするテーブルの名前だけです。 インシデント テーブルのすべてのレコードを処理するには、次のスクリプトを追加します。target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } これは、query() をデータベースに送出します。next() を呼び出すとそれぞれが次に処理するレコードをロードして必要な処理を行います。 ただしこれは一般的なケースではありません。ほとんどの場合、実際に特定のレコードまたは特定のレコードセットを取得する必要があり、取得するレコードを定義する条件 (クエリー条件) があります。たとえば、優先度値が 1 のすべてのインシデント レコードを取得したいとします。これを達成するコードは次のとおりです。var target = new GlideRecord('incident'); target.addQuery('priority',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 上記のコードでは、target.addQuery('priority', 1); という行を追加したことに注意してください。これは、優先度フィールドが 1 に等しいレコードのみが必要であることを示します。当社では、大部分のクエリーは、フィールドが値と等しいレコードを検索するクエリーである、等価性のクエリーであると仮定しています。したがって、当社ではこの形式のクエリーを提供しています。等価演算を指定する必要はありません。ただし、たとえば優先度フィールドが 1 より大きいすべてのインシデントを検索したい場合は、優先度に適用する演算子を指定する必要があります。これには、次のように addQuery() 要求で演算子を指定します。var target = new GlideRecord('incident') ; target.addQuery('priority','>',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。 GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
GlideRecord を使用してテーブルをクエリーする テーブルをクエリーするには、まずテーブルのオブジェクトを作成します。 このオブジェクトは GlideRecord と呼ばれます。GlideRecord を作成するには、スクリプトで次のように作成します。var target = new GlideRecord('incident'); これにより、インシデント テーブルの GlideRecord オブジェクトである target という変数が作成されます。必要なパラメーターは、アクセスするテーブルの名前だけです。 インシデント テーブルのすべてのレコードを処理するには、次のスクリプトを追加します。target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } これは、query() をデータベースに送出します。next() を呼び出すとそれぞれが次に処理するレコードをロードして必要な処理を行います。 ただしこれは一般的なケースではありません。ほとんどの場合、実際に特定のレコードまたは特定のレコードセットを取得する必要があり、取得するレコードを定義する条件 (クエリー条件) があります。たとえば、優先度値が 1 のすべてのインシデント レコードを取得したいとします。これを達成するコードは次のとおりです。var target = new GlideRecord('incident'); target.addQuery('priority',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 上記のコードでは、target.addQuery('priority', 1); という行を追加したことに注意してください。これは、優先度フィールドが 1 に等しいレコードのみが必要であることを示します。当社では、大部分のクエリーは、フィールドが値と等しいレコードを検索するクエリーである、等価性のクエリーであると仮定しています。したがって、当社ではこの形式のクエリーを提供しています。等価演算を指定する必要はありません。ただし、たとえば優先度フィールドが 1 より大きいすべてのインシデントを検索したい場合は、優先度に適用する演算子を指定する必要があります。これには、次のように addQuery() 要求で演算子を指定します。var target = new GlideRecord('incident') ; target.addQuery('priority','>',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。 GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
GlideRecord を使用してテーブルをクエリーする テーブルをクエリーするには、まずテーブルのオブジェクトを作成します。 このオブジェクトは GlideRecord と呼ばれます。GlideRecord を作成するには、スクリプトで次のように作成します。var target = new GlideRecord('incident'); これにより、インシデント テーブルの GlideRecord オブジェクトである target という変数が作成されます。必要なパラメーターは、アクセスするテーブルの名前だけです。 インシデント テーブルのすべてのレコードを処理するには、次のスクリプトを追加します。target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } これは、query() をデータベースに送出します。next() を呼び出すとそれぞれが次に処理するレコードをロードして必要な処理を行います。 ただしこれは一般的なケースではありません。ほとんどの場合、実際に特定のレコードまたは特定のレコードセットを取得する必要があり、取得するレコードを定義する条件 (クエリー条件) があります。たとえば、優先度値が 1 のすべてのインシデント レコードを取得したいとします。これを達成するコードは次のとおりです。var target = new GlideRecord('incident'); target.addQuery('priority',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 上記のコードでは、target.addQuery('priority', 1); という行を追加したことに注意してください。これは、優先度フィールドが 1 に等しいレコードのみが必要であることを示します。当社では、大部分のクエリーは、フィールドが値と等しいレコードを検索するクエリーである、等価性のクエリーであると仮定しています。したがって、当社ではこの形式のクエリーを提供しています。等価演算を指定する必要はありません。ただし、たとえば優先度フィールドが 1 より大きいすべてのインシデントを検索したい場合は、優先度に適用する演算子を指定する必要があります。これには、次のように addQuery() 要求で演算子を指定します。var target = new GlideRecord('incident') ; target.addQuery('priority','>',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。 GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。
GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
GlideRecord を使用してテーブルをクエリーする テーブルをクエリーするには、まずテーブルのオブジェクトを作成します。 このオブジェクトは GlideRecord と呼ばれます。GlideRecord を作成するには、スクリプトで次のように作成します。var target = new GlideRecord('incident'); これにより、インシデント テーブルの GlideRecord オブジェクトである target という変数が作成されます。必要なパラメーターは、アクセスするテーブルの名前だけです。 インシデント テーブルのすべてのレコードを処理するには、次のスクリプトを追加します。target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } これは、query() をデータベースに送出します。next() を呼び出すとそれぞれが次に処理するレコードをロードして必要な処理を行います。 ただしこれは一般的なケースではありません。ほとんどの場合、実際に特定のレコードまたは特定のレコードセットを取得する必要があり、取得するレコードを定義する条件 (クエリー条件) があります。たとえば、優先度値が 1 のすべてのインシデント レコードを取得したいとします。これを達成するコードは次のとおりです。var target = new GlideRecord('incident'); target.addQuery('priority',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 上記のコードでは、target.addQuery('priority', 1); という行を追加したことに注意してください。これは、優先度フィールドが 1 に等しいレコードのみが必要であることを示します。当社では、大部分のクエリーは、フィールドが値と等しいレコードを検索するクエリーである、等価性のクエリーであると仮定しています。したがって、当社ではこの形式のクエリーを提供しています。等価演算を指定する必要はありません。ただし、たとえば優先度フィールドが 1 より大きいすべてのインシデントを検索したい場合は、優先度に適用する演算子を指定する必要があります。これには、次のように addQuery() 要求で演算子を指定します。var target = new GlideRecord('incident') ; target.addQuery('priority','>',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。 GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
GlideRecord を使用してテーブルをクエリーする テーブルをクエリーするには、まずテーブルのオブジェクトを作成します。 このオブジェクトは GlideRecord と呼ばれます。GlideRecord を作成するには、スクリプトで次のように作成します。var target = new GlideRecord('incident'); これにより、インシデント テーブルの GlideRecord オブジェクトである target という変数が作成されます。必要なパラメーターは、アクセスするテーブルの名前だけです。 インシデント テーブルのすべてのレコードを処理するには、次のスクリプトを追加します。target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } これは、query() をデータベースに送出します。next() を呼び出すとそれぞれが次に処理するレコードをロードして必要な処理を行います。 ただしこれは一般的なケースではありません。ほとんどの場合、実際に特定のレコードまたは特定のレコードセットを取得する必要があり、取得するレコードを定義する条件 (クエリー条件) があります。たとえば、優先度値が 1 のすべてのインシデント レコードを取得したいとします。これを達成するコードは次のとおりです。var target = new GlideRecord('incident'); target.addQuery('priority',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 上記のコードでは、target.addQuery('priority', 1); という行を追加したことに注意してください。これは、優先度フィールドが 1 に等しいレコードのみが必要であることを示します。当社では、大部分のクエリーは、フィールドが値と等しいレコードを検索するクエリーである、等価性のクエリーであると仮定しています。したがって、当社ではこの形式のクエリーを提供しています。等価演算を指定する必要はありません。ただし、たとえば優先度フィールドが 1 より大きいすべてのインシデントを検索したい場合は、優先度に適用する演算子を指定する必要があります。これには、次のように addQuery() 要求で演算子を指定します。var target = new GlideRecord('incident') ; target.addQuery('priority','>',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。 GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
GlideRecord を使用してテーブルをクエリーする テーブルをクエリーするには、まずテーブルのオブジェクトを作成します。 このオブジェクトは GlideRecord と呼ばれます。GlideRecord を作成するには、スクリプトで次のように作成します。var target = new GlideRecord('incident'); これにより、インシデント テーブルの GlideRecord オブジェクトである target という変数が作成されます。必要なパラメーターは、アクセスするテーブルの名前だけです。 インシデント テーブルのすべてのレコードを処理するには、次のスクリプトを追加します。target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } これは、query() をデータベースに送出します。next() を呼び出すとそれぞれが次に処理するレコードをロードして必要な処理を行います。 ただしこれは一般的なケースではありません。ほとんどの場合、実際に特定のレコードまたは特定のレコードセットを取得する必要があり、取得するレコードを定義する条件 (クエリー条件) があります。たとえば、優先度値が 1 のすべてのインシデント レコードを取得したいとします。これを達成するコードは次のとおりです。var target = new GlideRecord('incident'); target.addQuery('priority',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 上記のコードでは、target.addQuery('priority', 1); という行を追加したことに注意してください。これは、優先度フィールドが 1 に等しいレコードのみが必要であることを示します。当社では、大部分のクエリーは、フィールドが値と等しいレコードを検索するクエリーである、等価性のクエリーであると仮定しています。したがって、当社ではこの形式のクエリーを提供しています。等価演算を指定する必要はありません。ただし、たとえば優先度フィールドが 1 より大きいすべてのインシデントを検索したい場合は、優先度に適用する演算子を指定する必要があります。これには、次のように addQuery() 要求で演算子を指定します。var target = new GlideRecord('incident') ; target.addQuery('priority','>',1); target.query(); // Issue the query to the database to get relevant records while (target.next()) { // add code here to process the incident record } 使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。 GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。
使用可能な JavaScript 演算子 addQuery() 要求内で使用できる演算子について説明します。 表 : 1. 使用可能な JavaScript 演算子 フィールド 定義 addQuery = フィールドは、指定された値と等しくなければなりません。 addQuery('priority', '=', 1); > フィールドは、指定された値より大きくなければなりません。 addQuery('priority', '>', 1); < フィールドは、指定された値より小さくなければなりません。 addQuery('priority', '<', 3); >= フィールドは、指定された値以上でなければなりません。 addQuery('priority', '>=', 1); <= フィールドは、指定された値以下でなければなりません。 addQuery('priority', '<=', 3); != フィールドは、指定された値と同じであってはなりません。 addQuery('priority', '!=', 1); STARTSWITH フィールドは、指定された値で始まる必要があります。右の例は、short_description フィールドが「Error」というテキストで始まるすべてのレコードを返します。 addQuery('short_description', 'STARTSWITH', 'Error'); CONTAINS フィールドに、テキストのどこかで指定された値が含まれていなければなりません。右の例は、short_description フィールドに「Error」というテキストがフィールドのどこかに含まれるすべてのレコードを返します。 addQuery('short_description', 'CONTAINS', 'Error'); IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description IN ('Error', 'Success', 'Failure') のように動作します。これは、Select * from <table> where short_description='Error' と同じです。たとえば、特定のアクティビティに属するすべての変数値をクエリーするには、IN 節を使用し、それらの sys_ids をマップまたはカンマ区切りリストに格納します。次に、変数値テーブルをクエリーし、この sys_ids のリストを指定します。 addQuery('short_description', 'IN', 'Error,Success,Failure'); ENDSWITH フィールドは、指定された値で終了する必要があります。右の例は、short_description フィールドが「Error」というテキストで終わるすべてのレコードを返します。 addQuery('short_description', 'ENDSWITH', 'Error'); DOES NOT CONTAIN フィールド内のパターンと一致しないレコードを選択します。この演算子は空のフィールドを取得しません。空の値の場合は、演算子「is empty」または「is not empty」を使用します。右の例は、short_description フィールドに「Error」という単語がないすべてのレコードを返します。 addQuery('short_description', 'DOES NOT CONTAIN', 'Error'); NOT IN カンマを使用できる値のマップを取得し、その他の要件を満たすレコードのコレクションを収集します。Select * from <table> where short_description NOT IN ('Error') のように動作します。 addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); 拡張テーブルに対して指定された「クラス」のレコードのみを取得する特殊演算子です。右のコード例は、コンピュータとして分類されているすべての構成項目を取得する方法を示しています。 addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); フィルターとクエリーで使用できる演算子の追加情報については、「Operators available for filters and queries」を参照してください。 NULL または NOT NULL のデータを検索するために使用できる特別なメソッドもあります。short_description フィールドが指定されていない (null) すべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } short_description が指定されているすべてのインシデントを検索するには、次のクエリーを使用します。var target = new GlideRecord('incident'); target.addNotNullQuery('short_description'); target.query(); // Issue the query to the database to get all records while (target.next()) { // add code here to process the incident record } GlideRecord API とその利用可能なメソッドの詳細については、「GlideRecord」を参照してください。
GlideRecord クエリーの例 これらの例は、さまざまな GlideRecord クエリーを実行する方法を示しています。 query var rec = new GlideRecord('incident'); rec.query(); while(rec.next()) { gs.print(rec.number + ' exists'); } update var rec = new GlideRecord('incident'); rec.addQuery('active',true); rec.query(); while(rec.next()) { rec.active = false; gs.print('Active incident ' + rec.number = ' closed'); rec.update(); } insert var rec = new GlideRecord('incident'); rec.initialize(); rec.short_description = 'Network problem'; rec.caller_id.setDisplayValue('Joe Employee'); rec.insert(); delete var rec = new GlideRecord('incident'); rec.addQuery('active',false); rec.query(); while(rec.next()) { gs.print('Inactive incident ' + rec.number + ' deleted'); rec.deleteRecord(); } サービス カタログ テーブルのクエリー サービス カタログ要求アイテム テーブル [sc_req_item] の変数を直接クエリーすることはできません。代わりに、変数名と値の 2 つのクエリーを追加して、変数所有権テーブル [sc_item_option_mtom] をクエリーします。クエリーは、多対多関係を返します。これは、要求されたアイテムにドット連結することができます。次の例では、値 item_value の変数 item_name を持つ要求アイテムを検索し、要求アイテム番号を表示します。var gr = new GlideRecord('sc_item_option_mtom'); gr.addQuery('sc_item_option.item_option_new.name','item_name'); gr.addQuery('sc_item_option.value','item_value'); gr.query(); while(gr.next()) { gs.addInfoMessage(gr.request_item.number); } 追加情報については、「GlideRecord」を参照してください。