---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# OCRosterSpanApprovalUtil - 전역

# OCRosterSpanApprovalUtil - 전역 {#ariaid-title1}

OCRosterSpanApprovalUtil 스크립트 포함은 PTO 승인 기능에 대한 메서드를 제공합니다.

## OCRosterSpanApprovalUtil - approvePTOSpan (GlideRecord rosterSpanGr) {#ariaid-title2}

roster_schedule_span 유형을 승인에서 휴가로 변경합니다.
{#r_OCRosSpnApUtil-approvePTOSpan_GR__table_q5p_l1j_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 명단 범위 Gr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 1. 매개변수]

{#r_OCRosSpnApUtil-approvePTOSpan_GR__table_q5p_l1j_hx} {#r_OCRosSpnApUtil-approvePTOSpan_GR__table_r5p_l1j_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 2. 반환]

{#r_OCRosSpnApUtil-approvePTOSpan_GR__table_r5p_l1j_hx}

## OCRosterSpanApprovalUtil - getContextualCalUrlPerSpanProposal (GlideRecord rosterSpanProposalGr) {#ariaid-title3}

rosterSpanProposalGr을 기반으로 당직 달력에 대한 URL을 반환합니다.
{#r_OCRosSpnApUtil-gtCtCalUrlPrSnP_GR__table_xhy_cy3_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| rosterSpanProposalGr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 3. 매개변수]

{#r_OCRosSpnApUtil-gtCtCalUrlPrSnP_GR__table_xhy_cy3_hx} {#r_OCRosSpnApUtil-gtCtCalUrlPrSnP_GR__table_yhy_cy3_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | rosterSpanProposalGr을 기반으로 하는 당직 달력의 URL입니다. |
[표 4. 반환]

{#r_OCRosSpnApUtil-gtCtCalUrlPrSnP_GR__table_yhy_cy3_hx}

## OCRosterSpanApprovalUtil - getFromDateDisplayValuePerSpanProposal (GlideRecord rosterSpanProposalGr) {#ariaid-title4}

rosterSpanProposalGr의 시작 날짜를 기준으로 형식이 지정된 GlideScheduleDateTime 문자열을 반환합니다.
{#r_OCRosSpnApUtil-gtFrDtDpVlPSPrp_GR__table_f5s_gz3_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| rosterSpanProposalGr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 5. 매개변수]

{#r_OCRosSpnApUtil-gtFrDtDpVlPSPrp_GR__table_f5s_gz3_hx} {#r_OCRosSpnApUtil-gtFrDtDpVlPSPrp_GR__table_g5s_gz3_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | rosterSpanProposalGr의 시작 날짜를 기반으로 형식화된 GlideScheduleDateTime 문자열입니다. |
[표 6. 반환]

{#r_OCRosSpnApUtil-gtFrDtDpVlPSPrp_GR__table_g5s_gz3_hx}

## OCRosterSpanApprovalUtil - getPTOApproversList(GlideRecord rosterSpanProposalGr) {#ariaid-title5}

사용자의 교대 그룹을 기반으로 그룹 관리자의 배열을 반환합니다.
{#r_OCRosSpnApUtil-getPTOApprList_GR__table_m5z_tx3_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| rosterSpanProposalGr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 7. 매개변수]

{#r_OCRosSpnApUtil-getPTOApprList_GR__table_m5z_tx3_hx} {#r_OCRosSpnApUtil-getPTOApprList_GR__table_n5z_tx3_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 배열 | 사용자의 교대 그룹을 기반으로 하는 그룹 관리자의 배열입니다. |
[표 8. 반환]

{#r_OCRosSpnApUtil-getPTOApprList_GR__table_n5z_tx3_hx}  
다음 예는 OCPTOApprovalReminder라는 요청 시 스크립트 포함입니다. 예약된 작업을 수동으로 실행하여 호출하면 관리자 및 위임된 관리자는 다음 날 PTO가 예약된 직원에 대한 알림을 받습니다.

    function OCPTOApprovalReminder() {

    	//Passing parameters in 'getDateFormat()' function with the days which needs to be added
    	var startDate = getDateFormat(1); //We can use System property to set Start Date
    	var endDate = getDateFormat(2); //We can use System property to set End Date
    	
    	//Building the encoded query all the Pending approval state proposals whose start date is tomorrow
    	var encodedQuery = 'state=1^roster_schedule_span.start_date_time>' + startDate + '^roster_schedule_span.start_date_time<' + endDate;
    	
    	//Sends an event notification to all rota managers and their delegate managers
    	getNotApprovedList(encodedQuery);
    	
    	//Converts the date and time in ISO Format
    	function getDateFormat(daysToBeAdded) {

    		//Getting today's date and adding '1' day
    		var todaysDate = new GlideDate();
    		todaysDate.addDaysUTC(daysToBeAdded);
    		todaysDate = todaysDate.getValue();

    		//Converting to today's date object to GlideDate object
    		var addingDaysToDate = new GlideDate();
    		addingDaysToDate.setValue(todaysDate);

    		//Setting the time default to '12:00:00' and returning the time in the specified format to match ISO
    		var staticTime = new GlideTime();
    		staticTime.setValue('00:00:00');
    		staticTime.setValue(staticTime.getHourOfDayUTC() + ':' + staticTime.getMinutesUTC() + ':' + staticTime.getSeconds());

    		//Returns the date & time in the specified format
    		var isoFormattedDateTime = addingDaysToDate.getByFormat("yyyyMMdd") + 'T' + staticTime.getByFormat("HHmmss") + 'Z';
    		return isoFormattedDateTime;
    	}
    	
    	//Gliding Roster schedule span proposal table with the built-in query to fetch the records whose proposals are not approved/rejected
    	function getNotApprovedList(addEncodedQuery) {
    		var rosterScheduleEntryProposalGR = new GlideRecord('roster_schedule_span_proposal');
    		rosterScheduleEntryProposalGR.addEncodedQuery(addEncodedQuery);
    		rosterScheduleEntryProposalGR.query();
    		while(rosterScheduleEntryProposalGR.next()) {

    			//Call On-Call Scheduling OCRosterSpanApprovalUtil library with 'getPTOApproversList' function 
    			//pass GlideRecord object of 'roster_schedule_span_proposal' table
    			var rotaManagers = new OCRosterSpanApprovalUtil().getPTOApproversList(rosterScheduleEntryProposalGR);
    			rotaManagers = rotaManagers.join(",");

    			// Pull only the unique sys_ids
    			var managerList = new ArrayUtil().unique(getManagerDelegateApprovals(rotaManagers).toString().split(','));

                         // Event to trigger a reminder notification for testing.
                         // To use, create a an event registry named "oc.manager.delegate.reminder"
                         // Call the event in a notification and uncomment the following line
    			//gs.eventQueue("oc.manager.delegate.reminder", rosterScheduleEntryProposalGR, managerList, "");

                   if(managerList)
    			gs.info("Returns the list of manager and it's delegate members >>>>>> " + managerList);
    		}
    	}
    	
    	//Get the sys_ids of the managers and their delegate managers
    	function getManagerDelegateApprovals(manager) {
    		var answer = [];
            answer.push(manager);
    		var delegateGR = new GlideRecord("sys_user_delegate");
    		delegateGR.addQuery("user", 'IN', manager);
    		delegateGR.addQuery("starts", "<=", gs.daysAgo(0));
    		delegateGR.addQuery("ends", ">=", gs.daysAgo(0));
    		delegateGR.addQuery("approvals", true);
    		delegateGR.query();
    		while(delegateGR.next()) {
    			answer.push(delegateGR.getValue('user'));
    			answer.push(delegateGR.getValue('delegate'));
    		}
    		return answer;
    	}
    }

예약된 스크립트 실행 \[sysauto_script\] 테이블의 기록에 다음 호출을 추가합니다. 이 트리거는 예약된 작업이 수동으로 실행될 때 OCPTOApprovalReminder 스크립트 포함을 호출합니다.

    OCPTOApprovalReminder();

## OCRosterSpanApprovalUtil - getToDateDisplayValuePerSpanProposal (rosterSpanProposalGr GlideRecord) {#ariaid-title6}

rosterSpanProposalGr의 종료 날짜를 기준으로 형식이 지정된 GlideScheduleDateTime 문자열을 반환합니다.
{#r_OCRosSpnApUtil-gtToDtDVlPrSnPr_GR__table_jbs_21j_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| rosterSpanProposalGr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 9. 매개변수]

{#r_OCRosSpnApUtil-gtToDtDVlPrSnPr_GR__table_jbs_21j_hx} {#r_OCRosSpnApUtil-gtToDtDVlPrSnPr_GR__table_kbs_21j_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | rosterSpanProposalGr의 종료 날짜를 기준으로 형식이 지정된 GlideScheduleDateTime 문자열입니다. |
[표 10. 반환]

{#r_OCRosSpnApUtil-gtToDtDVlPrSnPr_GR__table_kbs_21j_hx}

## OCRosterSpanApprovalUtil - getUserNamePerSpanProposal (GlideRecord rosterSpanProposalGr) {#ariaid-title7}

rosterSpanProposalGr을 기반으로 사용자 이름을 반환합니다.
{#r_OCRosSpnApUtil-gtUNmPerSnProp_GR__table_rpb_ly3_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| rosterSpanProposalGr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 11. 매개변수]

{#r_OCRosSpnApUtil-gtUNmPerSnProp_GR__table_rpb_ly3_hx} {#r_OCRosSpnApUtil-gtUNmPerSnProp_GR__table_spb_ly3_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 문자열 | rosterSpanProposalGr을 기반으로 하는 사용자 이름입니다. |
[표 12. 반환]

{#r_OCRosSpnApUtil-gtUNmPerSnProp_GR__table_spb_ly3_hx}

## OCRosterSpanApprovalUtil - isPTOApprovalRequired () {#ariaid-title8}

시스템 속성 com.snc.on_call_rotation.pto.approval.required 이 true인지 확인합니다.
{#r_OCRosSpnApUtil-isPTOAppRequired__table_ift_lx3_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 13. 매개변수]

{#r_OCRosSpnApUtil-isPTOAppRequired__table_ift_lx3_hx} {#r_OCRosSpnApUtil-isPTOAppRequired__table_jft_lx3_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 부울 | 시스템 속성 com.snc.on_call_rotation.pto.approval.required 이 예일 경우 예를 반환합니다. |
[표 14. 반환]

{#r_OCRosSpnApUtil-isPTOAppRequired__table_jft_lx3_hx}

## OCRosterSpanApprovalUtil - rejectPTOSpan (rosterSpanGr GlideRecord) {#ariaid-title9}

roster_schedule_span 유형을 승인 거부됨으로 변경합니다.
{#r_OCRosSpnApUtil-rejectPTOSpan_GR__table_vvb_t1j_hx__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 명단 범위 Gr | GlideRecord | roster_schedule_span_proposal 기록입니다. |
[표 15. 매개변수]

{#r_OCRosSpnApUtil-rejectPTOSpan_GR__table_vvb_t1j_hx} {#r_OCRosSpnApUtil-rejectPTOSpan_GR__table_wvb_t1j_hx__entry__2}

| 유형 | 설명 |
|-|-|
| 무효 |   |
[표 16. 반환]

{#r_OCRosSpnApUtil-rejectPTOSpan_GR__table_wvb_t1j_hx}

