GlideQueryCondition - スコープ対象

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む5読むのに数分
  • スコープ対象 GlideQueryCondition API は、現在の条件に追加できる AND 条件または OR 条件を提供するため、複雑なクエリを構築できます。

    次のような複雑なクエリを構築します。
    category='hardware' OR category='software' AND priority='2' AND priority='1'

    addCondition() の場合は、暗黙的な AND が追加されます。

    このクラスにコンストラクターはありません。GlideQueryCondition オブジェクトは次のメソッドによって返されます。
    • addActiveQuery()
    • addInactiveQuery()
    • addJoinQuery()
    • addNotNullQuery()
    • addNullQuery()
    • addQuery()

    AND および OR クエリの複雑なセットがある場合、すべての条件を含む単一のエンコードされたクエリにより、クエリの作成が簡単になります。クエリの作成を簡素化するには、リストビューでクエリを作成し、右クリックして [クエリのコピー] を選択します。結果セットを返す単一のエンコードされたクエリ文字列を作成します。その文字列を addEncodedQuery() 呼び出しのパラメーターとして使用します。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。

    スコープ対象 GlideQueryCondition - addCondition(文字列 name, 文字列 oper, オブジェクト value)

    現在の条件に AND 条件を追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    name 文字列 フィールドの名前。
    oper 文字列 (オプション) クエリの演算子。演算子を指定しない場合、条件は equals 演算子を使用します。
    value オブジェクト クエリする値。
    表 : 2. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加された GlideQueryConditon への参照。
    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());

    スコープ対象 GlideQueryCondition - addOrCondition(文字列 name, 文字列 oper, オブジェクト value)

    2 つまたは 3 つのパラメーターの OR 条件を既存の GlideQueryCondition に追加します。

    addOrCondition() は、以前に addQuery() を使用して構築されたクエリへの指定されたクエリパラメーター OR に対し、任意の addQuery() メソッドと連携して動作します。

    addOrCondition() は通常、3 つのパラメーター (テーブルフィールド、演算子、および比較値) を指定して呼び出されます。qc.addOrCondition('category', 'software'); など、テーブルフィールドと比較値の 2 つのパラメーターのみを使用して呼び出すことができます。この場合の演算子は「次の値に等しい」とみなされます。

    表 : 3. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    oper 文字列 (オプション) クエリ演算子。使用可能な値は、value パラメーターのデータタイプによって異なります。
    数値:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • CONTAINS
    • DOESNOTCONTAIN
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべてのアレイには、少なくとも 2 つの要素が含まれている必要があります。単一要素のアレイはサポートされていません。
    表 : 4. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加された GlideQueryConditon への参照。
    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addOrCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());
    

    AND/OR ステートメントをグループ化して複雑なクエリ「(3 未満 OR 5 を超える state) AND (priority が 1 OR priority が 5) のすべてのインシデント」などを作成します。

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addQuery('state', '<', 3);
    q1.addOrCondition('state', '>', 5);
    var q2 = myObj.addQuery('priority', 1);
    q2.addOrCondition('priority', 5);
    myObj.query();