---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu 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}

| 名前 | タイプ | 説明 |
|-|-|-|
| rosterSpanGr | 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 が true の場合は true を返します。 |
[表 : 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}

| 名前 | タイプ | 説明 |
|-|-|-|
| rosterSpanGr | 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}

