방문 페이지의 예정 섹션 구성

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기5분
  • 예정 섹션에 표시되는 데이터를 구성합니다.

    시작하기 전에

    필요한 역할: admin

    이 태스크 정보

    확장점으로 사용자 지정 스크립트를 호출하여 예정 섹션의 기능을 확장하고 기본 코드를 변경하지 않고도 사용자 지정을 쉽게 통합할 수 있습니다. 확장점에 대한 자세한 내용은 스크립팅된 확장점 생성 및 추가를 참조하십시오.
    표 1. 기본 시스템에 있는 예정 섹션의 스크립팅된 확장점
    확장점 설명
    sn_sow.UpcomingLinkProvider 당일과 다음 날의 예정된 작업 기록(변경, 인시던트, 요청 및 지연 작업)의 목록을 가져옵니다.

    프로시저

    1. 다음으로 이동 모두 > 시스템 확장점 > 스크립팅된 확장점.
    2. 확장점 목록에서 sn_sow.UpcomingLinkProvider를 선택합니다.
    3. 구현 생성 관련 링크를 사용하여 구현을 생성하거나 구현 관련 목록에서 구현을 편집합니다.
      다음은 변경 작업에 대한 새 공지 유형을 추가하는 방법의 예입니다.
      • 이름: MyCustomUpcomingLinkProvider_ChangeTask
      • 스크립트:
         var PREFIX_QUERY = 'active=true^' + assignToQuery; 
        
                var TODAY_QUERY = '^planned_start_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()'; 
        
                var TOMORROW_QUERY = '^splanned_start_dateONTomorrow@javascript:gs.beginningOfTomorrow()@javascript:gs.endOfTomorrow()'; 
        
                var encodedQuery = null; 
        
                var listTitle = gs.getMessage("Change_Task"); 
        
                if ('beginningOfToday' == request.from && 'endOfToday' == request.to) { 
        
                    encodedQuery = PREFIX_QUERY + TODAY_QUERY; 
        
                } else if ('beginningOfTomorrow' == request.from && 'endOfTomorrow' == request.to) { 
        
                    encodedQuery = PREFIX_QUERY + TOMORROW_QUERY; 
        
                } else { 
        
                    throw gs.getMessage("Unsupported date range"); 
        
                } 
        
                var LIMIT = 10; 
        
                var changeTaskGr = new GlideRecordSecure('change_task'); 
        
                changeTaskGr.addEncodedQuery(encodedQuery); 
        
                changeTaskGr.setLimit(LIMIT + 1); 
        
                changeTaskGr.query(); 
        
                var count = changeTaskGr.next() ? changeTaskGr.getRowCount() : 0; 
        
                var items = []; 
        
                if (count > 0) { 
        
                    var msg = null; 
        
                    if (1 == count) { 
        
                        msg = gs.getMessage("{0} change task", [count]) + ""; 
        
                    } else { 
        
                        if (count > LIMIT) { 
        
                            msg = gs.getMessage("More than {0} change task(s)", [LIMIT.toString()]) + ""; 
        
                        } else { 
        
                            msg = gs.getMessage("{0} change task(s)", [count]) + ""; 
        
                        } 
        
                    } 
        
                    var route = { 
        
                        route: 'simplelist', 
        
                        fields: { 
        
                            table: changeTaskGr.getTableName() 
        
                        }, 
        
                        params: { 
        
                            listTitle: listTitle, 
        
                            query: changeTaskGr.getEncodedQuery() 
        
                        } 
        
                    }; 
        
                    if (1 == count) { 
        
                        route = { 
        
                            route: 'record', 
        
                            fields: { 
        
                                table: changeTaskGr.getTableName(), 
        
                                sysId: changeTaskGr.getUniqueValue() 
        
                            } 
        
                        }; 
        
                    } 
        
                    var item = { 
        
                        label: msg, 
        
                        type: 'route', 
        
                        value: route, 
        
                        "startsWith": { 
        
                            "icon": "change-outline", 
        
                            "align": "center" 
        
                        }, 
        
                        "opensWindow": false, 
        
                        "configAria": {}, 
        
                        "download": false 
        
                    }; 
        
                    items.push(item); 
        
                } 
        
                return items; 
    4. 업데이트를 선택하고 스크립트 포함 기록을 저장합니다.
    5. 작업을 생성하여 예정된 작업으로 표시되는지 확인합니다.
      예를 들어, 변경 작업을 만듭니다.
      1. 모두 메뉴에서 change_task.list로 이동합니다.
      2. 새로 만들기를 선택합니다.
      3. 필요한 정보를 지정합니다.
        • 간단한 설명
        • 설명
        • 계획된 시작 날짜. 오늘 날짜를 지정할 수 있습니다.
        • 할당 대상. 예정된 작업을 표시할 사용자를 지정합니다.
      4. 제출을 선택합니다.
      5. 선택한 사용자에 대한 서비스 운영 작업 공간 방문 페이지의 예정 섹션에 작업이 나타나는지 확인합니다.