GlideMultiRecurrence - 범위 지정됨

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기6분
  • GlideMultiRecurrence API는 지정된 예약된 작업의 실행 시간을 설명하는 GlideDateTime 개체를 반환하는 메서드를 제공합니다.

    발생이라고도 하는 특정 주기적이거나 반복적인 작업을 실행해야 하는 시기를 결정해야 하는 경우 이 API를 사용합니다.

    이 API는 sn_schdl_ns 네임스페이스에서 실행됩니다.

    이 API를 사용하려면 연결된 일정 테이블에 다음 필드(트리거) 중 하나 이상이 포함되어야 합니다.
    트리거 설명
    effective_end 작업의 예약된 종료 날짜 및 시간입니다.
    effective_start 작업의 일정 시작 날짜 및 시간입니다.
    빈도 반환할 발생 횟수입니다.
    run_dayofmonth 작업을 실행할 날짜입니다. 유효한 값: 1-31
    run_dayofweek 작업을 실행할 요일입니다. 유효한 값: 1(일요일) - 7(토요일)
    run_month 작업을 실행할 연중 월입니다. 유효한 값: 1-12
    run_time 작업을 실행할 GMT 시간입니다.
    run_weekinmonth 작업을 실행할 월의 주입니다. 유효한 값: 1-6
    time_zone 예약된 작업의 시간대입니다.
    trigger_type
    • 0: 한 번 실행
    • 1: 반복
    • 2: 요청 시
    • 3: 일/주
    • 4: 일/월
    • 5: 주/월
    • 6: 일/월/연도
    • 7: 일/주/월/연도
    • 8: 지정된 시간에 실행
    • 9: 시스템 시작 시 실행
    • 10: 간격
    • 11: 매일
    이 API를 사용하는 경우 먼저 API가 작동해야 하는 일정 테이블에 대한 GlideRecord 객체를 생성해야 합니다. 그런 다음 발생 기록을 가져올 일정 기록을 검색합니다. 예:
    var table_nameGR = new GlideRecord('<table_name>'); // Scheduling table, such as sys_trigger
    table_nameGR.addQuery('sys_id', '<sys_id>'); // Sys_id of the scheduling record
    table_nameGR.query();
    table_nameGR.next();  // Retrieve the scheduling record

    GlideMultiRecurrence - getOccurrences()

    연결된 일정 기록(GlideRecord)에 정의된 트리거를 기반으로 지정된 예약된 작업이 특정 기간 내에 실행되어야 하는 각 예약된 실행 시간(발생)에 대한 GlideDateTime 객체를 반환합니다.

    이 메서드는 일정 객체 내에 정의된 트리거를 사용하여 현재 GlideRecord 일정 객체를 분석하여 작업을 실행할 시기를 결정합니다.

    반환 결과를 제어하는 속성:
    • com.glide.schedule.recurrence.num_occurrences_max: 반환할 최대 발생 횟수.
    • com.glide.schedule.recurrence.num_occurrences_default: 반환할 기본 발생 횟수.
    이 메서드는 다음 규칙을 적용하여 정의된 기간 및 관련 트리거 동안 반환할 발생을 결정합니다.
    • 필드가 effective_start 유효하고 null이거나 비어 있지 않으면 발생 반환을 시작하는 날짜로 사용합니다. 그렇지 않으면 현재 날짜를 사용합니다.
    • 날짜 필드가 effective_end 유효하고 null이거나 비어 있지 않으면 과 effective_starteffective_end 날짜 필드 사이의 발생을 반환합니다.

      위 규칙의 예외: 날짜가 너무 먼 미래여서 com.glide.schedule.recurrence.num_occurrences_max 속성에 지정된 발생 횟수보다 많은 항목이 반환되는 경우 effective_end 결과는 com.glide.schedule.recurrence.num_occurrences_max에 지정된 값(기본값 500)으로 제한됩니다.

    • effective_end 날짜 필드가 null이거나 비어 있지만 필드가 frequency 설정되어 있으면 반환할 발생 횟수를 결정하는 데 사용합니다frequency.
    • 날짜 필드가 과거인 경우 effective_start 과거 날짜를 반환합니다.
    • effective_end 날짜 필드가 frequency 모두 지정된 경우 com.glide.schedule.recurrence.num_occurrences_max 속성에 effective_end 지정된 값으로 제한된 최대 발생 횟수가 있는 날짜를 사용합니다.
    위의 규칙 중 어느 것도 true가 아닌 경우 메서드는 시스템 속성의 기본 설정에 따라 발생을 반환합니다.
    주:
    MAX_Drift 은(는) 이 API에서 지원되지 않습니다.

    예: 둘 다 frequency 지정됩니다. Effective_end 날짜가 우선 frequencyeffective_end 하며 무시됩니다.

    • frequency: 10
    • effective_start: 2022년 8월 1일
    • effective_end: 2022년 10월 10일
    • 트리거 유형: 일/월
    • 실행 일(월 중): 15

    반환된 GlideDateTime 객체 수 = 2.

    반환된 발생: 2022년 8월 15일, 2022년 9월 15일.

    예: 둘 다 frequencyeffective_end 지정됩니다. Effective_end 날짜가 우선하며 frequency 무시되지만 반환되는 발생 횟수는 com.glide.schedule.recurrence.num_occurrences_max 속성의 값에 의해 제한됩니다.

    • frequency: 20
    • effective_start: 2022년 8월 1일
    • effective_end: 2070년 10월 30일
    • 트리거 유형: 일/월
    • 실행 일(월 중): 15

    반환된 GlideDateTime 객체 수 = 500

    표 1. 매개변수
    이름 유형 설명
    'gr스케쥴' GlideRecord 일정 발생을 가져올 작업이 포함된 기록을 가리키는 GlideRecord 객체입니다.
    표 2. 반환
    유형 설명
    GlideDateTime 객체의 배열 예약된 작업을 실행해야 하는 각 시간의 GlideDateTime 객체입니다.

    다음 예제에서는 지정된 작업 일정 레코드의 특정 기간 동안 예약된 모든 실행 날짜/시간에 대한 GlideDateTime 개체를 검색하는 방법을 보여 줍니다. 선택한 작업은 매시간 실행되도록 예약되어 있습니다.

    var sys_id = 'a9e30c7dc61122760116894de7bcc7bd'; // Sys_id of the job schedule record
    var table = 'sys_trigger'; // Table that contains the job schedule record
    
    var grSchedule = new GlideRecord(table);
    if
     (grSchedule.get(sys_id)) {
      var multiRecurrence = new sn_schdl_ns.GlideMultiRecurrence();
      var dates = multiRecurrence.getOccurrences(grSchedule); // Display the list of occurrences
      for(var i=0; i<dates.length; i++) {
        gs.info('occurrence = ' + dates[i]);
      }
    }

    출력:

    occurrence = 2022-11-21 16:23:23
    occurrence = 2022-11-21 17:23:23
    occurrence = 2022-11-21 18:23:23
    occurrence = 2022-11-21 19:23:23
    occurrence = 2022-11-21 20:23:23
    occurrence = 2022-11-21 21:23:23
    occurrence = 2022-11-21 22:23:23
    occurrence = 2022-11-21 23:23:23
    occurrence = 2022-11-22 00:23:23
    occurrence = 2022-11-22 01:23:23