작업 일정의 특수 케이스
일부 특수한 경우에는 작업 일정 예약에 주의가 필요합니다.
월말 일정
월의 길이는 다르기 때문에 월말에 작업을 예약할 때는 주의하십시오.
- 예약된 작업은 해당 날짜보다 짧은 월(예: 2월)에 실행되므로 이벤트를 29일 또는 30일로 예약하는 것은 권장되지 않습니다.
- 이벤트가 31일로 예정되어 있으면 해당 월이 더 짧더라도 그 달의 마지막 날에 실행됩니다.
예를 들어, 매월 31일에 실행되도록 예약된 항목이 윤년의 2월 28일 또는 2월 29일에 실행됩니다.
평일 일정
예약된 스크립트의 경우 다음 스크립트를 사용하여 평일에만 실행합니다.
경고:
예약된 보고서 이메일에 대한 조건부 스크립트는 샌드박스에서 실행됩니다. 따라서 기능 정의는 허용되지 않습니다. 일부 API 호출 및 키워드도 허용되지 않습니다.
var isWeekday;
var today = new Date();
var dayOfWeek = today.getDay(); // Get day of the week(0 = Sunday, 1 = Monday, ... , 6 = Saturday)
switch (dayOfWeek) {
case 0: // Sunday
case 6: // Saturday
isWeekday = false;
break;
default:
isWeekday = true;
}
answer=isWeekday;
예약된 보고서의 조건부 스크립트가 더 복잡하고 Glide 클래스를 사용해야 하는 경우 해결 방법으로 다음 단계를 사용하십시오.
- 예약된 작업을 생성하고 예약된 작업 내에서 예약된 보고서의 모든 조건부 논리를 완료합니다.
- 모든 조건부 논리가 충족되면 예약된 작업 내에서 다음 스크립트를 사용하여 예약된 보고서를 트리거할 수 있습니다.
var schRpGr = new GlideRecord("sysauto_report"); schRpGr.get("<sys_id of the scheduled report>"); gs.executeNow(schRpGr);
스크립트의 예약된 작업
이벤트에 의해 트리거되는 예약된 작업을 실행하려면 다음 스크립트를 사용합니다.
//Execute a scheduled script job
var rec = new GlideRecord('sysauto_script');
rec.get('name', 'YOUR_JOB_NAME_HERE');
SncTriggerSynchronizer.executeNow(rec);
여러 테이블 중 하나를 사용하여 스크립트를 실행할 수 있습니다.
- scheduled_import_set(예약된 임포트 세트)
- sysauto_script(예약된 스크립트 실행)
- sysauto_template(예약된 템플릿 생성)
- sysauto_report(예약된 보고서)
주:
SncTriggerSynchronizer 는 나중에 예약된 작업을 실행하는 메서드를 제공하지 않습니다.다른 인스턴스에서 임포트한 예약된 스크립트 및 작업 실행 중
예약된 스크립트 실행 및 예약된 작업은 에서 데이터 기록 ServiceNow AI Platform으로 분류되므로 업데이트 세트에서 제외됩니다. 테이블이 포함되어 있는지 확인하려면 다음으로 이동하십시오. 및 해당 테이블의 속성 값을 봅니다. 속성이 update_sync=true인 테이블만 업데이트 세트에 포함됩니다.
필요에 따라 XML을 통해 데이터 기록을 익스포트하고 임포트할 수 있습니다. 그러나 예기치 않은 데이터 변경을 방지하기 위해 업데이트 세트와 같이 XML 파일에서 임포트한 데이터 기록에 대해서는 일정 항목 [sys_trigger] 기록이 생성되지 않습니다. 다른 인스턴스에서 임포트한 예약된 작업 또는 스크립트를 실행하려면 대상 인스턴스에서 해당 작업 또는 스크립트 기록을 업데이트합니다.