---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideDBFunctionBuilder - スコープ対象、グローバル

# GlideDBFunctionBuilder - スコープ対象、グローバル {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：29分

GlideDBFunctionBuilder API は、データベースで SQL 操作を実行する関数をビルドするためのメソッドを提供します。

これらのメソッドは、レコードデータに対して SQL 操作を実行するリレーショナルデータベース管理システム (RDBMS) 関数を構築する方法を提供します。これらのメソッドは、スコープ対象のサーバースクリプトとグローバルサーバースクリプトの両方で使用できます。  
プラットフォーム機能を使用するには：

* GlideDBFunctionBuilder コンストラクターと関連メソッドを使用して関数を構築します。
* 関数を作成したら、GlideRecord クラスの addFunction() メソッドを使用して、現在のレコードに関数を適用します。
* GlideRecord クラスの addQuery() メソッドを使用して、関数をクエリに追加します。
* getValue() や getElement() などの既存の GlideRecord API メソッドを使用して、関数の結果を取得します。
{#GlideDBFunctionBuilderScopedAPI__ul_bmr_mqg_jbb}

例：

    var functionBuilder = new GlideDBFunctionBuilder();
    var dbFunction = functionBuilder.position();
    dbFunction = functionBuilder.constant('my'); // search_term: Text to search for in the specified table column.
    dbFunction = functionBuilder.field('short_description');  // column: Name of the table column to search.
    dbFunction = functionBuilder.build();

    gs.log(dbFunction);

    var gr_incident = new GlideRecord('incident'); // Table containing the column to search
    gr_incident.addFunction(dbFunction);
    gr_incident.addQuery("short_description", "CONTAINS", "my");
    gr_incident.setLimit(20);
    gr_incident.query();
    while(gr_incident.next()) {
      gs.info(gr_incident.short_description + "\n position('my', short_description): " + gr_incident.getValue(dbFunction));
    }

関数フィールドの詳細については、「 [Function field](https://www.servicenow.com/docs/access?context=platform-support-functions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。

## スコープ対象 GlideDBFunctionBuilder - GlideDBFunctionBuilder() {#ariaid-title2}

GlideDBFunctionBuilder オブジェクトをインスタンス化します。
{#GlideDBFBScoped-GlideDBFB__table_u1c_tsg_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 1. パラメーター]

{#GlideDBFBScoped-GlideDBFB__table_u1c_tsg_jbb}  

    var builder = new GlideDBFunctionBuilder();

## スコープ付き GlideDBFunctionBuilder - andFunc(expr1, expr2, ...) {#ariaid-title3}

新しい AND 式を開始します。これは、パラメーターとして指定されたすべての式が true の場合にのみ true を返します。少なくとも 1 つのブール値式をパラメーターとして指定する必要があります。
{#GlideDBFBScoped-andfunc_S__table_emi_ssf_xwb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 式 | ブール値の GlideFunction 式 | 現在、この基準を満たす glide 関数には、and()、or()、および compare() が含まれます。 |
[表 : 2. パラメーター]

{#GlideDBFBScoped-andfunc_S__table_emi_ssf_xwb} {#GlideDBFBScoped-andfunc_S__table_jkl_ssf_xwb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 結果の GlideFunction 式。 |
[表 : 3. 返される内容]

{#GlideDBFBScoped-andfunc_S__table_jkl_ssf_xwb}  
次の例は、単純な case ステートメントを定義してビルドする方法を示しています。

    var expr = new GlideDBFunctionBuilder() 
        .andFunc() 
            .compare().field('first_name').constant('=').constant('John').endfunc() 
            .compare().field('active').constant('=').constant(1).endfunc() 
        .endfunc() 
        .build(); 
    gs.info("Expression: " + expr);

出力:

    Expression: glidefunction:and(compare(first_name,'=','John'),compare(active,'=','1'))

## スコープ対象 GlideDBFunctionBuilder - add() {#ariaid-title4}

2 つ以上の整数フィールドの値を加算します。
field(文字列 field) メソッドを使用して、操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-add__table_kjb_h5g_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 4. パラメーター]

{#GlideDBFBScoped-add__table_kjb_h5g_jbb} {#GlideDBFBScoped-add__table_ljb_h5g_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#GlideDBFBScoped-add__table_ljb_h5g_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();

## スコープ対象 GlideDBFunctionBuilder - build() {#ariaid-title5}

GlideDBFunctionBuilder オブジェクトによって定義されたデータベース関数を構築します。
{#GlideDBFBScoped-build__table_y1r_4ch_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 6. パラメーター]

{#GlideDBFBScoped-build__table_y1r_4ch_jbb} {#GlideDBFBScoped-build__table_z1r_4ch_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 7. 返される内容]

{#GlideDBFBScoped-build__table_z1r_4ch_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();
    gs.info(myAddingFunction);

出力:

    *** Script: glidefunction:add(order,priority)

## スコープ付き GlideDBFunctionBuilder - coalesce() {#ariaid-title6}

任意の数のカンマ区切りフィールドを入力として取得し、最初の空でない値を返します。
{#GlideDBFBScoped-coalesce__table_nnr_pdt_gyb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| argument | 文字列 | 定数値 (文字列、オブジェクト、ブール値) またはフィールドを含むリスト。指定できる形式: ` glidefunction:coalesce(<string, string, string, etc.>)` 引数には任意の数のパラメーターを含めることができますが、少なくとも 1 つのパラメーターを定義する必要があります。 |
[表 : 8. パラメーター]

{#GlideDBFBScoped-coalesce__table_nnr_pdt_gyb} {#GlideDBFBScoped-coalesce__table_onr_pdt_gyb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 引数リスト内の null 以外の最初の値。null 以外の値がない場合は、null が返されます。関数オブジェクトの作成時に引数が指定されていない場合、「無効な関数」が文字列として返されます。 |
[表 : 9. 返される内容]

{#GlideDBFBScoped-coalesce__table_onr_pdt_gyb}  
次の要求例は、closed_at、resolved_at、および sys_updated_on フィールドに従って null 値を返すように結合ガイド関数を形成する方法を示しています。

    var gr = new GlideRecord('incident');
    var func = "glidefunction:coalesce(closed_at, resolved_at,sys_updated_on)";
    gr.addFunction(func);
    gr.query(); 
    while(gr.next())
    gs.info(gr.getValue(func));

スクリプトは、インシデントテーブル内のインシデントレコードごとに、このリストのフィールドから最初の null 以外の値 \[closed_at, resolved_at, sys_updated_on\] を返し、 `gs.info` とともに出力します。

    2016-12-14 02:46:44
    2018-01-09 22:55:16
    2018-01-07 22:54:55
    2018-01-13 23:02:54
    2018-01-09 23:12:02

## スコープ付き GlideDBFunctionBuilder - compare(exp1, op, exp2) {#ariaid-title7}

2 つの式間の比較を実行する新しい COMPARE 式を開始します。
{#GlideDBFBScoped-compare_S_S_S__table_a5r_px1_mxb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| exp1 | 文字列 | 左比較式。定数、フィールドへの参照、または別の Glide 関数を指定できます。 |
| オペアンプ | 文字列 | 引用符で囲まれた比較演算子。受け入れ可能な値: * "'='" * "'\<'" * "'\>'" * "'\<='" * "'\>='" {#GlideDBFBScoped-compare_S_S_S__ul_nmh_yx1_mxb} |
| exp2 | 文字列 | 右比較式。定数、フィールドへの参照、または別の Glide 関数を指定できます。 |
[表 : 10. パラメーター]

{#GlideDBFBScoped-compare_S_S_S__table_a5r_px1_mxb} {#GlideDBFBScoped-compare_S_S_S__table_b5r_px1_mxb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 結果の GlideFunction 式。 |
[表 : 11. 返される内容]

{#GlideDBFBScoped-compare_S_S_S__table_b5r_px1_mxb}  
次の例は、compare() 操作を使用して glidefunction 式をビルドする方法を示しています。compare() を呼び出した後、3 つの必須パラメーターのそれぞれを指定するためにさらに 3 つの呼び出しを行う必要があり、endfun() の 1 回の呼び出しで完了します。以下では、2 つの別々の compare() 式を作成し、それらを or() 式のパラメーターとして提供します。

    var expr = new GlideDBFunctionBuilder() 
        .orFunc() 
            .compare().field('first_name').constant('=').constant('John').endfunc() 
            .compare().field('active').constant('=').constant(1).endfunc() 
        .endfunc() 
        .build();

出力:

    Expression: glidefunction:or(compare(first_name,'=','John'),compare(active,'=','1'))

## スコープ対象 GlideDBFunctionBuilder - concat() {#ariaid-title8}

2 つ以上のフィールドの値を連結します。
field(文字列 field) メソッドを使用して、操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-concat__table_tsn_ckh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 12. パラメーター]

{#GlideDBFBScoped-concat__table_tsn_ckh_jbb} {#GlideDBFBScoped-concat__table_usn_ckh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 13. 返される内容]

{#GlideDBFBScoped-concat__table_usn_ckh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myConcatFunction = functionBuilder.concat();
    myConcatFunction = functionBuilder.field('short_description');
    myConcatFunction = functionBuilder.field('caller_id.name');
    myConcatFunction = functionBuilder.build();

## スコープ対象 GlideDBFunctionBuilder - constant(文字列 constant) {#ariaid-title9}

関数で使用する定数値を定義します。dayofweek() メソッドで使用する場合、文字列は日曜日または月曜日のどちらを週の最初の日として使用するかを定義します。
{#GlideDBFBScoped-constant_S__table_lww_s2h_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| constant | 文字列 | 関数で使用される定数値。 dayofweek() メソッドとともに使用する場合、この値は週が日曜日または月曜日のどちらから始まるかを定義します。 * 1：週は日曜日に始まります。 * 2：週は月曜日に始まります。 {#GlideDBFBScoped-constant_S__ul_wz5_5bk_kbb} この定義により、dayofweek() メソッドは指定された日付から正しい曜日を返すことができます。1 または 2 以外の値が指定された場合、dayofweek() メソッドは日曜日を週の最初の日として使用します。 |
[表 : 14. パラメーター]

{#GlideDBFBScoped-constant_S__table_lww_s2h_jbb} {#GlideDBFBScoped-constant_S__table_mww_s2h_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 15. 返される内容]

{#GlideDBFBScoped-constant_S__table_mww_s2h_jbb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var functionBuilder = new GlideDBFunctionBuilder();
    var dbFunction = functionBuilder.position();
    dbFunction = functionBuilder.constant('my');
    dbFunction = functionBuilder.field('short_description');
    dbFunction = functionBuilder.build();

    gs.log(dbFunction);

    var g = new GlideRecord('incident');
    g.addFunction(dbFunction);
    g.addQuery("short_description", "CONTAINS", "my");
    g.setLimit(20);
    g.query();
    while(g.next()) {
      gs.info(g.short_description + "\n position('my', short_description): " + g.getValue(dbFunction));
    }

## スコープ対象 GlideDBFunctionBuilder - datediff() {#ariaid-title10}

指定された開始日時と終了日時を使用して期間を決定します。
field(文字列 field) メソッドを使用して、開始日時フィールドと終了日時フィールドを定義します。
{#GlideDBFBScoped-datediff__table_scn_bnh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 16. パラメーター]

{#GlideDBFBScoped-datediff__table_scn_bnh_jbb} {#GlideDBFBScoped-datediff__table_tcn_bnh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 17. 返される内容]

{#GlideDBFBScoped-datediff__table_tcn_bnh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myDateDiffFunction = functionBuilder.datediff();
    myDateDiffFunction = functionBuilder.field('sys_updated_on');
    myDateDiffFunction = functionBuilder.field('opened_at');
    myDateDiffFunction = functionBuilder.build();

## スコープ対象 GlideDBFunctionBuilder - dayofweek() {#ariaid-title11}

指定された日付の曜日を表す整数を返します。
field(文字列フィールド) メソッドを使用して、特定の日時を定義します。週が日曜日または月曜日のどちらで始まるかを定義するには、constant(文字列 constant) メソッドを使用します。

このメソッドは、MySQL、Oracle、および Microsoft SQL Server データベースでのみ使用できます。Oracle データベースを使用する場合、NLS_TERRITORY 設定は日曜日を週の最初の日とするテリトリーに設定する必要があります。
{#GlideDBFBScoped-dayofweek__table_od2_dnh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 18. パラメーター]

{#GlideDBFBScoped-dayofweek__table_od2_dnh_jbb} {#GlideDBFBScoped-dayofweek__table_pd2_dnh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| 整数 | 週の最初の日が constant(文字列 constant) メソッドで日曜日に設定されている場合、戻り値は次の曜日に関連付けられます。 * 1：日曜日 * 2：月曜日 * 3：火曜日 * 4：水曜日 * 5：木曜日 * 6：金曜日 * 7：土曜日 {#GlideDBFBScoped-dayofweek__ul_ufc_yck_kbb} 週の最初の日が月曜日に設定されている場合： * 1：月曜日 * 2：火曜日 * 3：水曜日 * 4 ：木曜日 * 5：金曜日 * 6：土曜日 * 7：日曜日 {#GlideDBFBScoped-dayofweek__ul_at2_gdk_kbb} constant(文字列 constant) メソッドに 1 または 2 以外の値が指定された場合、dayofweek() メソッドは日曜日を週の最初の日として使用します。 |
[表 : 19. 返される内容]

{#GlideDBFBScoped-dayofweek__table_pd2_dnh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var dayOfWeekFunction = functionBuilder.dayofweek();
    dayOfWeekFunction = functionBuilder.field('opened_at');
    dayOfWeekFunction = functionBuilder.constant('2');
    dayOfWeekFunction = functionBuilder.build();

    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(dayOfWeekFunction);
    now_GR.query();
    while(now_GR.next())
    gs.log(now_GR.getValue(dayOfWeekFunction));

## スコープ対象 GlideDBFunctionBuilder - divide() {#ariaid-title12}

ある整数フィールドの値を別の整数フィールドの値で除算します。
field(文字列 field) メソッドを使用して、操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-divide__table_hsj_ymh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 20. パラメーター]

{#GlideDBFBScoped-divide__table_hsj_ymh_jbb} {#GlideDBFBScoped-divide__table_isj_ymh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 21. 返される内容]

{#GlideDBFBScoped-divide__table_isj_ymh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myDivideFunction = functionBuilder.divide();
    myDivideFunction = functionBuilder.field('order');
    myDivideFunction = functionBuilder.field('priority');
    myDivideFunction = functionBuilder.build();

## スコープ対象 GlideDBFunctionBuilder - field(文字列 field) {#ariaid-title13}

SQL 操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-field_S__table_tbm_rmh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フィールド | 文字列 | SQL 操作を実行するフィールド。 |
[表 : 22. パラメーター]

{#GlideDBFBScoped-field_S__table_tbm_rmh_jbb} {#GlideDBFBScoped-field_S__table_ubm_rmh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 23. 返される内容]

{#GlideDBFBScoped-field_S__table_ubm_rmh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();

## スコープ対象 GlideDBFunctionBuilder - length() {#ariaid-title14}

フィールド内のコード単位数を決定します。
field(文字列 field) メソッドを使用して、操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-length__table_wl5_tmh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 24. パラメーター]

{#GlideDBFBScoped-length__table_wl5_tmh_jbb} {#GlideDBFBScoped-length__table_xl5_tmh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 25. 返される内容]

{#GlideDBFBScoped-length__table_xl5_tmh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myLengthFunction = functionBuilder.length();
    myLengthFunction = functionBuilder.field('short_description');
    myLengthFunction = functionBuilder.build();

## スコープ対象 GlideDBFunctionBuilder - multiply() {#ariaid-title15}

2 つの整数フィールドの値を乗算します。
field(文字列 field) メソッドを使用して、操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-multiply__table_hsj_ymh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 26. パラメーター]

{#GlideDBFBScoped-multiply__table_hsj_ymh_jbb} {#GlideDBFBScoped-multiply__table_isj_ymh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 27. 返される内容]

{#GlideDBFBScoped-multiply__table_isj_ymh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myMultiplyFunction = functionBuilder.multiply();
    myMultiplyFunction = functionBuilder.field('order');
    myMultiplyFunction = functionBuilder.field('priority');
    myMultiplyFunction = functionBuilder.build();

## スコープ付き GlideDBFunctionBuilder - orFunc(式) {#ariaid-title16}

新しい OR 式を開始します。この式は、パラメーターとして指定された式の少なくとも 1 つが true の場合に true を返します。
少なくとも 1 つのブール値式をパラメーターとして指定する必要があります。
{#GlideDBFBScoped-orFunc_B__table_qjb_hw1_mxb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 式 | ブール値の GlideFunction 式 | 現在、この基準を満たす Glide 関数には、and()、or()、compare() などがあります。 |
[表 : 28. パラメーター]

{#GlideDBFBScoped-orFunc_B__table_qjb_hw1_mxb} {#GlideDBFBScoped-orFunc_B__table_rjb_hw1_mxb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 結果の GlideFunction 式。 |
[表 : 29. 返される内容]

{#GlideDBFBScoped-orFunc_B__table_rjb_hw1_mxb}  
次の例は、or() 操作を使用して glidefunction 式をビルドする方法を示しています。この式は、 first_name フィールドが「John」の場合、または active フィールドが true の場合に true を返します。結果の式文字列は、glidefunction 式が受け入れられる場所であればどこでも使用できます。

    var expr = new GlideDBFunctionBuilder() 
        .orFunc() 
            .compare().field('first_name').constant('=').constant('John').endfunc() 
            .compare().field('active').constant('=').constant(1).endfunc() 
        .endfunc() 
        .build(); 
    gs.info("Expression: " + expr);

出力:

    Expression: glidefunction:or(compare(first_name,'=','John'),compare(active,'=','1'))

## スコープ付き GlideDBFunctionBuilder - position() {#ariaid-title17}

テーブルの列内で指定された文字列が最初に出現するものを返します。
必要に応じて、文字列内の場所を指定して検索を開始できます。このメソッドは、MySQL の ` LOCATE(substring, str, position)` に相当します。

この方法を使用して、関心のあるデータポイントやデータアナリストによるカスタムレポートを検索できます。通常、この方法は、データウェアハウスや、柔軟性の低いシステムへのデータの抽出、変換、およびロード (ETL) に使用します。

このメソッドを辞書レコードで使用するには、 `glidefunction:position(<serarch_term>,<column>)` を使用します。  
注:  
次の表で指定されているパラメーターは、メソッド呼び出しでは渡されず、GlideDBFunctionBuilder() オブジェクトで設定されます。
{#GlideDBFBScoped-position__table_h5j_hy1_rwb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| search_term | 文字列 | 指定したテーブル列で検索するテキスト。 |
| 列 | 文字列 | 検索するテーブル列の名前。テーブルは、関連する GlideRecord オブジェクトで指定されます。 |
| start_position | 番号 | オプション。検索を開始する列テキスト内の場所。 デフォルト値：1 |
[表 : 30. パラメーター]

{#GlideDBFBScoped-position__table_h5j_hy1_rwb} {#GlideDBFBScoped-position__table_i5j_hy1_rwb__entry__2}

| タイプ | 説明 |
|-|-|
| なし | 指定された検索用語が最初に出現する位置。 関連付けられたテキストに検索用語が見つからない場合は 0 を返します。必須の引数が NULL の場合は NULL を返します。 |
[表 : 31. 返される内容]

{#GlideDBFBScoped-position__table_i5j_hy1_rwb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var functionBuilder = new GlideDBFunctionBuilder();
    var dbFunction = functionBuilder.position();
    dbFunction = functionBuilder.constant('my'); // search_term: Text to search for in the specified table column.
    dbFunction = functionBuilder.field('short_description');  // column: Name of the table column to search.
    dbFunction = functionBuilder.build();

    gs.log(dbFunction);

    var gr_incident = new GlideRecord('incident'); // Table containing the column to search
    gr_incident.addFunction(dbFunction);
    gr_incident.addQuery("short_description", "CONTAINS", "my");
    gr_incident.setLimit(20);
    gr_incident.query();
    while(gr_incident.next()) {
      gs.info(gr_incident.short_description + "\n position('my', short_description): " + gr_incident.getValue(dbFunction));
    }

出力:

    *** Script: glidefunction:position('my',short_description)
    *** Script: Wireless access is down in my area
     position('my', short_description): 28
    *** Script: Printer in my office is out of toner
     position('my', short_description): 12
    *** Script: Reset my password
     position('my', short_description): 7
    *** Script: I can't launch my VPN client since the last software update
     position('my', short_description): 16
    *** Script: Missing my home directory
     position('my', short_description): 9
    *** Script: Seem to have an issue with my hard drive...
     position('my', short_description): 28
    *** Script: Please remove the latest hotfix from my PC
     position('my', short_description): 38
    *** Script: I can't get my weather report
     position('my', short_description): 13
    *** Script: Reset my password
     position('my', short_description): 7
    *** Script: my PDF docs are all locked from editing
     position('my', short_description): 1
    *** Script: My desk phone does not work
     position('my', short_description): 1
    *** Script: Can't log into SAP from my laptop today
     position('my', short_description): 25
    *** Script: My computer is not detecting the headphone device
     position('my', short_description): 1
    *** Script: My disk is still having issues. Can't delete a file
     position('my', short_description): 1
    *** Script: The USB port on my PC stopped working
     position('my', short_description): 17

## スコープ付き GlideDBFunctionBuilder - substring() {#ariaid-title18}

テーブルの指定された列の指定された位置から始まるサブ文字列を返します。
必要に応じて、テキスト抽出を停止する文字列内の場所を指定することもできます。このメソッドは、MySQL の `LOCATE(substring, str, position)` に相当します。

この方法は、データベースレベルではJavaScriptと同様に機能します。この方法を使用して、データアナリストにとって興味深いデータポイントまたはカスタムレポートを見つけることができます。通常、この方法は、データウェアハウスや、柔軟性の低いシステムへのデータの抽出、変換、およびロード (ETL) に使用します。

このメソッドを辞書レコードで使用するには、`glidefunction:substring(<field>,<start_position>,<end_position>)` を使用します  
注:  
次の表で指定されているパラメーターは、メソッド呼び出しでは渡されず、GlideDBFunctionBuilder() オブジェクトで設定されます。
{#GlideDBFBScoped-substring__table_oc5_hgb_rwb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フィールド | 文字列 | テキストを取得するテーブル内の列の名前。テーブルは、関連する GlideRecord オブジェクトで指定されます。 |
| start_position | 番号 | テキストの抽出を開始する列テキスト内の位置。 |
| end_position | 番号 | オプション。テキストの抽出を停止する列テキスト内の位置。 デフォルト:指定した列のテキストの最後。 |
[表 : 32. パラメーター]

{#GlideDBFBScoped-substring__table_oc5_hgb_rwb} {#GlideDBFBScoped-substring__table_pc5_hgb_rwb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 指定されたテーブル列から抽出されたテキスト。 |
[表 : 33. 返される内容]

{#GlideDBFBScoped-substring__table_pc5_hgb_rwb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var functionBuilder = new GlideDBFunctionBuilder();
    var dbFunction = functionBuilder.substring();
    dbFunction = functionBuilder.field('short_description');  // field: Column within the table to obtain the substring
    dbFunction = functionBuilder.constant(0); // start_position: Location in the column text to start extracting text
    dbFunction = functionBuilder.constant(20); // end_position: Location in the column text to stop extracting text.
    dbFunction = functionBuilder.build();

    gs.log(dbFunction);

    var gr_incident = new GlideRecord('incident'); // Table containing the column from which to extract the text
    gr_incident.addFunction(dbFunction);
    gr_incident.addQuery("short_description", "CONTAINS", "my");
    gr_incident.setLimit(20);
    gr_incident.query();
    while(gr_incident.next()) {
      gs.info(gr_incident.short_description + "\n substring(short_description, 0, 20): " + gr_incident.getValue(dbFunction));
    }

出力:

    *** Script: glidefunction:substring(short_description,'0','20')
    *** Script: Wireless access is down in my area
     substring(short_description, 0, 20): Wireless access is 
    *** Script: Printer in my office is out of toner
     substring(short_description, 0, 20): Printer in my offic
    *** Script: Reset my password
     substring(short_description, 0, 20): Reset my password
    *** Script: I can't launch my VPN client since the last software update
     substring(short_description, 0, 20): I can't launch my V
    *** Script: Missing my home directory
     substring(short_description, 0, 20): Missing my home dir
    *** Script: Seem to have an issue with my hard drive...
     substring(short_description, 0, 20): Seem to have an iss
    *** Script: Please remove the latest hotfix from my PC
     substring(short_description, 0, 20): Please remove the l
    *** Script: I can't get my weather report
     substring(short_description, 0, 20): I can't get my weat
    *** Script: Reset my password
     substring(short_description, 0, 20): Reset my password
    *** Script: my PDF docs are all locked from editing
     substring(short_description, 0, 20): my PDF docs are all
    *** Script: My desk phone does not work
     substring(short_description, 0, 20): My desk phone does 
    *** Script: Can't log into SAP from my laptop today
     substring(short_description, 0, 20): Can't log into SAP 
    *** Script: My computer is not detecting the headphone device
     substring(short_description, 0, 20): My computer is not 
    *** Script: My disk is still having issues. Can't delete a file
     substring(short_description, 0, 20): My disk is still ha
    *** Script: The USB port on my PC stopped working
     substring(short_description, 0, 20): The USB port on my 

## スコープ対象 GlideDBFunctionBuilder - subtract() {#ariaid-title19}

1 つの整数フィールドの値を別の整数フィールドから減算します。
field(文字列 field) メソッドを使用して、操作が実行されるフィールドを定義します。
{#GlideDBFBScoped-subtract__table_yph_wmh_jbb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 34. パラメーター]

{#GlideDBFBScoped-subtract__table_yph_wmh_jbb} {#GlideDBFBScoped-subtract__table_zph_wmh_jbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 35. 返される内容]

{#GlideDBFBScoped-subtract__table_zph_wmh_jbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var mySubtractFunction = functionBuilder.subtract();
    mySubtractFunction = functionBuilder.field('order');
    mySubtractFunction = functionBuilder.field('priority');
    mySubtractFunction = functionBuilder.build();


