GlideSchedule - 범위 지정
범위가 지정된 GlideSchedule API는 일정에 새 일정 세그먼트 추가, 날짜/시간이 일정 내에 있는지 여부 결정 또는 일정 시간대 설정과 같은 GlideSchedule 객체에 대한 작업을 수행하는 메서드를 제공합니다.
범위가 지정된 GlideSchedule - add(GlideDateTime startDate, GlideDuration offSet)
현재 일정에 새 일정 세그먼트를 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| startDate | GlideDateTime | 새 일정 세그먼트의 시작 날짜입니다. |
| 오프셋 | 글라이드 기간 | 새 일정 세그먼트의 시간 오프셋입니다. |
| 유형 | 설명 |
|---|---|
| GlideDateTime | 일정이 새 일정 세그먼트로 업데이트되었습니다. |
var startDate = new GlideDateTime('2014-01-02');
var days = 2;
var dur = new GlideDuration(60 * 60 * 24 * 1000 * days);
var schedule = new GlideSchedule();
var end = schedule.add(startDate, dur);
gs.info(end);
2014-01-04 00:00:00범위가 지정된 GlideSchedule - duration(GlideDateTime, startDate, GlideDateTime, endDate)
일정의 시간대를 사용하여 두 날짜 시간 값 사이의 일정에서 경과된 시간을 결정하거나 지정되지 않은 경우 세션의 시간대를 결정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| startDate | GlideDateTime | 시작 날짜/시간입니다. |
| endDate | GlideDateTime | 종료 날짜/시간입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드 기간 | 시작 날짜/시간과 종료 날짜/시간의 차이입니다. |
var startDate = new GlideDateTime('2014-10-16 02:00:00');
var endDate = new GlideDateTime('2014-10-18 04:00:00');
var schedule = new GlideSchedule();
schedule.load('090eecae0a0a0b260077e1dfa71da828'); // loads "8-5 weekdays excluding holidays" schedule
var duration = schedule.duration(startDate, endDate);
gs.info(duration.getDurationValue()); // gets the elapsed time in schedule
범위가 지정된 GlideSchedule - getName()
일정 이름을 조회합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 현재 일정의 이름입니다. |
sys_id ='04e664654a36232701a2247dcd8fc4cf'; // sys_id for "Application" schedule record
var sched = new GlideSchedule(sys_id);
gs.info(sched.getName());
범위 지정 GlideSchedule - GlideSchedule()
빈 GlideSchedule 객체를 인스턴스화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
범위가 지정된 GlideSchedule - GlideSchedule(문자열 sysID, 문자열 시간대)
GlideSchedule 객체를 인스턴스화하고 일정 정보를 로드합니다. 표준 시간대를 지정하지 않으면 현재 세션 표준 시간대가 사용됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| sysID | 문자열 | 일정의 시스템 ID입니다. |
| 시간대 | 문자열 | 옵션입니다. 사용할 표준 시간대입니다. 기본값: 현재 세션 시간대입니다. 시간대는 다음 형식으로 제공할 수 있습니다.
|
var schedule = new GlideSchedule('090eecae0a0a0b260077e1dfa71da828', 'US/Pacific');
범위가 지정된 GlideSchedule - isInSchedule(GlideDateTime 시간)
지정된 날짜와 시간이 현재 일정 내에 있는지 여부를 확인합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| time | GlideDateTime | 확인할 날짜 및 시간 값입니다. |
| 유형 | 설명 |
|---|---|
| 부울 | 지정한 날짜와 시간이 일정 내에 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
var glide = new GlideRecord('cmn_schedule');
glide.addQuery('type', 'blackout');
glide.query();
if (glide.next()) {
var sched = new GlideSchedule(glide.sys_id);
var date = new GlideDateTime();
date.setDisplayValue("2007-09-18 12:00:00");
if (sched.isInSchedule(date))
gs.info("Is in the schedule");
else
gs.info("Is NOT in the schedule");
}
범위 지정 GlideSchedule - isValid()
현재 일정이 유효한지 여부를 확인합니다. 일정에 일정 범위가 하나 이상 있는 경우 일정이 유효합니다.
| 유형 | 설명 |
|---|---|
| 부울 | 일정이 유효하면 예입니다. |
var glide = new GlideRecord('cmn_schedule');
glide.addQuery('type', 'blackout');
glide.query();
if (glide.next()) {
var sched = new GlideSchedule(glide.sys_id);
var date = new GlideDateTime();
date.setDisplayValue("2007-09-18 12:00:00");
if (sched.isValid())
gs.info("Is valid");
else
gs.info("Is not valid");
}
범위가 지정된 GlideSchedule - load(문자열 sysID, 문자열 시간대, 문자열 excludeSpanID)
일정 정보를 사용하여 일정을 로드합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| sysID | 문자열 | 일정의 시스템 ID입니다. |
| 시간대 | 문자열 | (선택 사항) 표준 시간대입니다. 시간대가 지정되지 않았거나 nil이면 현재 세션 시간대가 일정에 사용됩니다. |
| excludeSpanID 제외 | 문자열 | 제외할 모든 범위입니다. |
| 유형 | 설명 |
|---|---|
| void |
var x = new GlideSchedule();
x.load('08fcd0830a0a0b2600079f56b1adb9ae');
범위가 지정된 GlideSchedule - setTimeZone(timeZone 문자열)
현재 일정의 시간대를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 시간대 | 문자열 | 사용할 표준 시간대입니다. 시간대는 다음 형식으로 제공할 수 있습니다.
|
| 유형 | 설명 |
|---|---|
| void |
이 예에서는 일정의 시간대를 미국/태평양으로 설정합니다.
var schedule = new GlideSchedule();
schedule.setTimeZone('US/Pacific');
범위가 지정된 GlideSchedule - whenNext(GlideDateTime 시간, 문자열 시간대)
다음 일정 항목의 시작 시간까지 남은 시간(밀리초)을 결정합니다.
이 함수는 GlideSchedule 객체(cmn_schedule 테이블)가 현재 일정 창에 없을 때 호출됩니다. whenNext() 호출은 GlideSchedule 객체가 일정 내에 있을 때까지의 지속 시간(ms)을 반환합니다. 이 함수는 GlideSchedule 객체가 일정 내에 있을 때 호출되면 의미 있는 값을 반환하지 않습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| time | GlideDateTime | 평가 시간 |
| 시간대 | 문자열 | 시간대 |
| 유형 | 설명 |
|---|---|
| 번호 | 다음 일정 항목의 시작 시간까지 남은 시간(밀리초)입니다. 반환하지 않는 경우 -1을 반환합니다. |
var startDate = new GlideDateTime('2014-10-25 08:00:00');
var glideSchedule = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae', 'UTC');
gs.info(glideSchedule.whenNext(startDate));
출력:
172800000
testScript();
function testScript() {
var now = new GlideDateTime(); //current date and time
var sched = new GlideSchedule("<sys_id>"); // Use a cmn_schedule sys_id
if (sched.isInSchedule(now)){
gs.info('We are in an active schedule window so whenNext() is not helpful');
} else{
gs.info('Not currently in schedule so call whenNext()');
var msUntilNext = sched.whenNext(new GlideDateTime(), 'US/Pacific');
gs.info('Next schedule starts in '+msUntilNext+' milliseconds');
}
}
\\ Output [schedule inactive)]:
\\ *** Script: Not currently in schedule so call whenNext()
\\ *** Script: Next schedule starts in -1 milliseconds
출력:
[향후 예정] *** 스크립트: 현재 일정에 없음 *** 스크립트: 다음 일정이 332894000밀리초 후에 시작