GlideDBFunctionBuilder - 범위, 전역

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 28분
  • GlideDBFunctionBuilder API는 데이터베이스에서 SQL 작업을 수행하는 함수를 빌드하는 메서드를 제공합니다.

    이러한 메서드는 레코드 데이터에 대한 SQL 조작을 수행하는 관계형 데이터베이스 관리 시스템(RDBMS) 함수를 빌드하는 방법을 제공합니다. 범위가 지정된 서버 스크립트와 전역 서버 스크립트 모두에서 이러한 메서드를 사용할 수 있습니다.

    플랫폼 기능을 사용하려면 다음을 수행합니다.
    • GlideDBFunctionBuilder 생성자 및 관련 메서드를 사용하여 함수를 만듭니다.
    • 함수를 작성한 후에는 GlideRecord 클래스의 addFunction() 메서드를 사용하여 현재 기록에 함수를 적용합니다.
    • GlideRecord 클래스의 addQuery() 메서드를 사용하여 쿼리에 함수를 추가합니다.
    • getValue()getElement()와 같은 기존 GlideRecord API 메서드를 사용하여 함수의 결과를 검색합니다.

    예:

    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.

    범위가 지정된 GlideDBFunctionBuilder - GlideDBFunctionBuilder()

    GlideDBFunctionBuilder 객체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    안 함
    var builder = new GlideDBFunctionBuilder();
    

    범위가 지정된 GlideDBFunctionBuilder - andFunc(expr1, expr2, ...)

    매개변수로 제공된 모든 식이 예일 때만 예를 반환하는 새 AND 표현식을 시작합니다. 하나 이상의 부울 값 표현식을 매개변수로 제공해야 합니다.

    표 2. 매개변수
    이름 유형 설명
    표현식 부울 값 GlideFunction 표현식 현재 이 기준을 충족하는 Glide 함수에는 and(), or()compare()가 포함됩니다.
    표 3. 반환
    유형 설명
    문자열 결과 GlideFunction 표현식입니다.

    다음 예제에서는 간단한 케이스 문을 정의하고 빌드하는 방법을 보여줍니다.

    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()

    두 개 이상의 정수 필드의 값을 더합니다.

    field(String field) 메서드를 사용하여 작업이 수행되는 필드를 정의합니다.

    표 4. 매개변수
    이름 유형 설명
    안 함
    표 5. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();

    범위가 지정된 GlideDBFunctionBuilder - build()

    GlideDBFunctionBuilder 객체로 정의된 데이터베이스 함수를 빌드합니다.

    표 6. 매개변수
    이름 유형 설명
    안 함
    표 7. 반환
    유형 설명
    무효
    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 - 병합()

    쉼표로 구분된 필드 수를 입력으로 받고 첫 번째 비어 있지 않은 값을 반환합니다.

    표 8. 매개변수
    이름 유형 설명
    인수 문자열 상수 값(문자열, 객체, 부울) 또는 필드를 포함하는 목록입니다. 허용되는 형식: glidefunction:coalesce(<string, string, string, etc.>) 인수는 매개변수 개수에 제한 없이 있을 수 있지만 하나 이상의 매개변수가 정의되어 있어야 합니다.
    표 9. 반환
    유형 설명
    문자열 인수 목록에서 null이 아닌 첫 번째 값입니다. null이 아닌 값이 없으면 null이 반환됩니다. 함수 객체 생성 시 인수가 제공되지 않으면 "잘못된 함수"가 문자열로 반환됩니다.

    다음 예제 요청에서는 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));

    스크립트는 인시던트 테이블의 각 인시던트 기록에 대해 목록 [closed_at, resolved_at, sys_updated_on]의 필드에서 첫 번째 null이 아닌 값을 반환하고 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)

    두 표현식 간의 비교를 수행하는 새 COMPARE 표현식을 시작합니다.

    표 10. 매개변수
    이름 유형 설명
    exp1 문자열 왼쪽 비교 식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    op 문자열 따옴표로 묶인 비교 연산자입니다. 허용되는 값:
    • “’=’”
    • “’<’”
    • “’>’”
    • “’<=’”
    • “’>=’”
    exp2 문자열 오른쪽 비교 표현식입니다. 상수, 필드에 대한 참조 또는 다른 Glide 함수일 수 있습니다.
    표 11. 반환
    유형 설명
    문자열 결과 GlideFunction 표현식입니다.

    다음 예제에서는 compare() 작업을 사용하여 glidefunction 표현식을 빌드하는 방법을 보여줍니다. compare()를 호출한 후 세 가지 필수 매개변수를 각각 지정하기 위해 세 번의 추가 호출이 이루어져야 하며, 그런 다음 endfun()에 대한 단일 호출로 완료됩니다. 아래에서는 두 개의 개별 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()

    두 개 이상의 필드 값을 연결합니다.

    field(String field) 메서드를 사용하여 작업이 수행되는 필드를 정의합니다.

    표 12. 매개변수
    이름 유형 설명
    안 함
    표 13. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myConcatFunction = functionBuilder.concat();
    myConcatFunction = functionBuilder.field('short_description');
    myConcatFunction = functionBuilder.field('caller_id.name');
    myConcatFunction = functionBuilder.build();

    범위가 지정된 GlideDBFunctionBuilder - 상수(문자열 상수)

    함수에 사용할 상수 값을 정의합니다. dayofweek() 메서드와 함께 사용되는 경우 문자열은 일요일 또는 월요일을 주의 첫 번째 날로 사용할지 여부를 정의합니다.

    표 14. 매개변수
    이름 유형 설명
    상수 문자열 함수에 사용되는 상수 값입니다.

    dayofweek() 메서드와 함께 사용되는 경우 값은 한 주가 일요일 또는 월요일에 시작되는지 여부를 정의합니다.

    • 1: 일요일에 한 주가 시작됩니다.
    • 2: 한 주는 월요일에 시작됩니다.

    이 정의를 사용하면 dayofweek() 메서드가 지정된 날짜의 올바른 요일을 반환할 수 있습니다. 1 또는 2 이외의 값이 제공되면 dayofweek() 메서드는 일요일을 주의 첫 번째 날로 사용합니다.

    표 15. 반환
    유형 설명
    무효

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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()

    지정된 시작 날짜/시간 및 종료 날짜/시간을 사용하여 기간을 결정합니다.

    필드(문자열 필드) 메서드를 사용하여 시작 및 종료 날짜/시간 필드를 정의합니다.

    표 16. 매개변수
    이름 유형 설명
    안 함
    표 17. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myDateDiffFunction = functionBuilder.datediff();
    myDateDiffFunction = functionBuilder.field('sys_updated_on');
    myDateDiffFunction = functionBuilder.field('opened_at');
    myDateDiffFunction = functionBuilder.build();

    범위가 지정된 GlideDBFunctionBuilder - dayofweek()

    지정된 날짜의 요일을 나타내는 정수를 반환합니다.

    field(String field) 메서드를 사용하여 지정된 날짜/시간을 정의합니다. constant(String constant) 메서드를 사용하여 한 주가 일요일 또는 월요일에 시작하는지 정의합니다.

    이 메서드는 MySQL, Oracle 및 Microsoft SQL Server 데이터베이스에서만 사용할 수 있습니다. Oracle 데이터베이스를 사용하는 경우 NLS_TERRITORY 설정을 일요일을 주의 첫 번째 날로 하는 영역으로 설정해야 합니다.

    표 18. 매개변수
    이름 유형 설명
    안 함
    표 19. 반환
    유형 설명
    정수

    constant(String 상수) 메서드에서 주의 첫 번째 날이 일요일로 설정된 경우 반환 값은 다음 요일과 연결됩니다.

    • 1: 일요일
    • 2: 월요일
    • 3: 화요일
    • 4:수요일
    • 5: 목요일
    • 6: 금요일
    • 7: 토요일

    주의 첫 번째 날이 월요일로 설정된 경우:

    • 1: 월요일
    • 2: 화요일
    • 3: 수요일
    • 4: 목요일
    • 5: 금요일
    • 6: 토요일
    • 7:일요일

    constant(String constant) 메서드에 1 또는 2 이외의 값이 제공되면 dayofweek() 메서드는 일요일을 주의 첫 번째 날로 사용합니다.

    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()

    한 정수 필드의 값을 다른 정수 필드로 나눕니다.

    field(String field) 메서드를 사용하여 작업이 수행되는 필드를 정의합니다.

    표 20. 매개변수
    이름 유형 설명
    안 함
    표 21. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myDivideFunction = functionBuilder.divide();
    myDivideFunction = functionBuilder.field('order');
    myDivideFunction = functionBuilder.field('priority');
    myDivideFunction = functionBuilder.build();

    범위가 지정된 GlideDBFunctionBuilder - field(문자열 필드)

    SQL 작업이 수행되는 필드를 정의합니다.

    표 22. 매개변수
    이름 유형 설명
    필드 문자열 SQL 작업을 수행하는 필드입니다.
    표 23. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();

    범위가 지정된 GlideDBFunctionBuilder - length()

    필드의 코드 단위 수를 결정합니다.

    field(String field) 메서드를 사용하여 작업이 수행되는 필드를 정의합니다.

    표 24. 매개변수
    이름 유형 설명
    안 함
    표 25. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myLengthFunction = functionBuilder.length();
    myLengthFunction = functionBuilder.field('short_description');
    myLengthFunction = functionBuilder.build();
    

    범위가 지정된 GlideDBFunctionBuilder - multiply()

    두 정수 필드의 값을 곱합니다.

    field(String field) 메서드를 사용하여 작업이 수행되는 필드를 정의합니다.

    표 26. 매개변수
    이름 유형 설명
    안 함
    표 27. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var myMultiplyFunction = functionBuilder.multiply();
    myMultiplyFunction = functionBuilder.field('order');
    myMultiplyFunction = functionBuilder.field('priority');
    myMultiplyFunction = functionBuilder.build();

    범위가 지정된 GlideDBFunctionBuilder - orFunc(expression)

    매개변수로 제공된 식 중 적어도 하나가 예일 경우 예를 반환하는 새 OR 식을 시작합니다.

    하나 이상의 부울 값 표현식을 매개변수로 제공해야 합니다.

    표 28. 매개변수
    이름 유형 설명
    표현식 부울 값 GlideFunction 표현식 현재 이 기준을 충족하는 Glide 함수로는 and(), or() 및 compare()가 있습니다.
    표 29. 반환
    유형 설명
    문자열 결과 GlideFunction 표현식입니다.

    다음 예제에서는 or() 작업을 사용하여 glidefunction 표현식을 작성하는 방법을 보여줍니다. 필드가 first_name 'John'이거나 필드가 active 예이면 표현식이 예를 반환합니다. 결과 표현식 문자열은 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()

    테이블 열 내에서 지정된 문자열의 첫 번째 항목을 반환합니다.

    선택적으로 문자열 내에 검색을 시작할 위치를 지정할 수 있습니다. 이 메서드는 MySQL의 LOCATE(substring, str, position) 와 같습니다.

    이 방법을 사용하여 데이터 분석가가 작성한 흥미로운 데이터 포인트 또는 사용자 지정 보고서를 찾을 수 있습니다. 일반적으로 이 방법은 데이터 웨어하우징에 사용하거나 데이터를 추출, 변환 및 로드(ETL)하여 유연성이 떨어지는 시스템으로 사용합니다.

    딕셔너리 기록에서 이 메서드를 사용하려면 glidefunction:position(<serarch_term>,<column>)을 사용하십시오.

    주:
    다음 표에 지정된 매개변수는 메서드 호출과 함께 전달되지 않고 GlideDBFunctionBuilder() 개체에 설정됩니다.
    표 30. 매개변수
    이름 유형 설명
    search_term 문자열 지정된 테이블 열에서 검색할 텍스트입니다.
    문자열 검색할 테이블 열의 이름입니다. 테이블은 연결된 GlideRecord 객체에 지정됩니다.
    start_position 번호 옵션입니다. 검색을 시작할 열 텍스트의 위치입니다.

    기본값: 1

    표 31. 반환
    유형 설명
    없음 지정된 검색어가 처음 나타나는 위치입니다.

    연결된 텍스트에서 검색어를 찾을 수 없는 경우 0 을 반환합니다. 필수 인수가 NULL이면 NULL 을 반환합니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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()

    지정된 위치에서 시작하는 테이블의 특정 열에서 하위 문자열을 반환합니다.

    선택적으로 문자열 내에서 텍스트 추출을 중지할 위치를 지정할 수도 있습니다. 이 메서드는 MySQL의 LOCATE(substring, str, position) 와 같습니다.

    이 메서드는 데이터베이스 수준에서만 JavaScript와 유사하게 작동합니다. 이 방법을 사용하여 데이터 분석가를 위한 흥미로운 데이터 포인트 또는 사용자 지정 보고서를 찾을 수 있습니다. 일반적으로 이 방법은 데이터 웨어하우징에 사용하거나 데이터를 추출, 변환 및 로드(ETL)하여 유연성이 떨어지는 시스템으로 사용합니다.

    딕셔너리 기록에서 이 메서드를 사용하려면 glidefunction:substring(<field>,<start_position>,<end_position>)를 사용하십시오.

    주:
    다음 표에 지정된 매개변수는 메서드 호출과 함께 전달되지 않고 GlideDBFunctionBuilder() 개체에 설정됩니다.
    표 32. 매개변수
    이름 유형 설명
    필드 문자열 텍스트를 가져올 테이블의 열 이름입니다. 테이블은 연결된 GlideRecord 객체에 지정됩니다.
    start_position 번호 텍스트 추출을 시작할 열 텍스트의 위치입니다.
    end_position 번호 옵션입니다. 열 텍스트에서 텍스트 추출을 중지할 위치입니다.

    기본값: 지정된 열의 텍스트 끝입니다.

    표 33. 반환
    유형 설명
    문자열 지정된 테이블 열에서 추출한 텍스트입니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    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()

    한 정수 필드의 값을 다른 정수 필드에서 뺍니다.

    field(String field) 메서드를 사용하여 작업이 수행되는 필드를 정의합니다.

    표 34. 매개변수
    이름 유형 설명
    안 함
    표 35. 반환
    유형 설명
    무효
    var functionBuilder = new GlideDBFunctionBuilder();
    var mySubtractFunction = functionBuilder.subtract();
    mySubtractFunction = functionBuilder.field('order');
    mySubtractFunction = functionBuilder.field('priority');
    mySubtractFunction = functionBuilder.build();