상대 기간을 구현하는 방법
cmn_relative_duration 테이블과 DurationCalculator 스크립트 포함을 만들어 상대 기간을 구현할 수 있습니다.
시작하기 전에
프로시저
- cmn_relative_duration 테이블을 생성합니다.
- DurationCalculator 스크립트 포함을 만듭니다.
- 샘플 상대 기간 항목을 생성합니다(예: "다음 영업일, 오후 4시까지").
- 상대 기간을 지원하기 위해 SLA 테이블에 필요한 필드를 추가합니다.
- SLA에 대한 기간 계산을 수정합니다.
- SLA에 대한 SLA 백분율 타이머 계산을 수정합니다(work_seconds 사용해야 함).
- 워크플로우에 일정 필드, 일정 및 시간대(워크플로우 테이블의 필드를 기준으로 선택됨)를 추가합니다.
- 워크플로우 작업 활동에 기간 지원 필드를 추가합니다.
- 작업 활동에 대한 기간 계산 스크립트를 구현합니다.
상대 기간 테이블 및 DurationCalculator 메서드
cmn_relative_duration 테이블은 기한을 기간 또는 상대적 기간으로 정의할 수 있도록 지원합니다.
이 테이블은 "이름"과 "스크립트"라는 두 개의 필드로 구성됩니다. "스크립트" 필드에는 상대 기간 계산 스크립트가 포함되어 있습니다. 이 스크립트에는 기한을 계산하는 데 사용되는 "calculator" 변수가 포함되어 있습니다.
DurationCalculator 스크립트 포함을 사용하여 기간 계산을 수행할 수 있습니다. 다음은 이 스크립트 포함에서 사용할 수 있는 메서드입니다.
| 메서드 | 설명 |
|---|---|
| setSchedule (String schedID, [문자열 시간대]) | 기한을 계산하는 데 사용할 일정과 시간대를 설정합니다. |
| setStartDateTime(GlideDateTime 시작) | 기간 계산의 시작 시간을 설정합니다. "start"가 비어 있으면 현재 날짜/시간을 사용합니다. |
| calcDuration(int 초) | 종료 날짜 및 시간을 계산합니다. 완료 시 계산 결과를 나타내도록 this.endDateTime 및 this.seconds 속성이 설정됩니다. |
| calcRelativeDuration(문자열 relativeDurationID) | 지정된 상대 기간 스크립트를 사용하여 기간을 계산합니다. 완료 시 계산 결과를 나타내도록 this.endDateTime 및 this.seconds 속성이 설정됩니다. |
| getEndDateTime() | 해당 기간의 종료 날짜 및 시간을 나타내는 calcDuration/calcRelativeDuration에 의해 설정된 this.endDateTime 속성을 가져옵니다. |
| getSeconds() | 해당 기간 동안 수행할 총 작업 시간(초)을 나타내는 calcDuration/calcRelativeDuration에 의해 설정된 this.seconds 속성을 가져옵니다. 주: 시작 시간과 종료 시간 사이의 총 시간이 아니라 총 작업 시간이며 작업 시간의 백분율을 결정하는 데 사용할 수 있습니다. |
| getTotalSeconds() | 기간의 시작 시간과 종료 시간 사이의 총 시간(초)을 나타내는 calcDuration/calcRelativeDuration에 의해 설정된 this.totalSeconds 속성을 가져옵니다. |
상대 기간 스크립트에 사용되는 함수는 다음과 같습니다.
| 함수 | 설명 |
|---|---|
| 부울 isAfter(GlideDateTime dt, 문자열 시간) | 'dt'로 지정된 시간 이후의 '시간'이 있습니까? dt는 공백인 경우 현재 날짜/시간을 사용합니다. 시간은 24시간 형식의 "hh:mm:ss"입니다. |
| calcRelativeDueDate(GlideDateTime 시작, int 일, 문자열 endTime) | "시작"에서 시작하여 일정과 시간대를 사용하여 "일"을 더하는 기한을 계산합니다. 업무 기한이 되는 날을 찾으면 시간을 해당 날짜의 'endTime'으로 설정합니다. 완료 시 계산 결과를 나타내도록 this.endDateTime 및 this.seconds 속성이 설정됩니다. endTime이 비어 있으면 종료 근무일 종료를 사용합니다. |