계층 1 방문 페이지에서 도넛 구성

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 11분
  • 계층 1 방문 페이지의 개요 섹션에서 도넛에 표시되는 데이터를 구성합니다.

    시작하기 전에

    필요한 역할: 관리자

    이 태스크 정보

    모든 도넛에 대해 헤더 레이블, 데이터 소스, 메트릭, 필드별 그룹 및 viewAllQuery를 사용자 지정할 수 있습니다. 나에게 할당된 문제 도넛을 예로 들 수 있습니다.

    프로시저

    1. 다음으로 이동 모두 > 서비스 운영 작업 공간 관리자 센터 > 개요.
    2. 초기 설정 섹션의 개요 탭에서 방문 페이지 구성 옵션을 선택합니다.
    3. 방문 페이지 양식의 계층 1 섹션에서 도넛 구성 옆에 있는 구성을 선택합니다.
    4. 옵션: 방문 페이지에서 PAR 대시보드가 활성 상태이면 다음을 수행합니다.
      1. 계층 1 대시보드 구성을 구성합니다.
        주:
        대시보드를 생성하는 경우 저장된 시각화를 사용하여 대시보드에 대한 카드를 만들 수 있습니다. 데이터 시각화는 해당 역할에 따라 사용자에게만 표시됩니다.

        대시보드 가시성에서와 같이 서비스 운영 작업 공간 값을 추가했는지 확인합니다.

      2. 방문 페이지 드롭다운 옵션 에 로드된 대시보드 에서 SOW 방문 페이지의 기본 대시보드를 선택합니다. 저장을 선택합니다.
      3. 대시보드의 요소를 수정한 후 저장을 선택합니다.
    5. 옵션: 방문 페이지에서 PAR 대시보드가 활성화되어 있지 않으면 스크립트 필드를 편집하여 클래스 ServiceDeskLandingPageUtils내에 코드를 추가합니다.
      주:
      이 메서드는 에서 복사 SowIncidentLandingPageUtilsSNC됩니다. 새 도넛을 추가하거나 기존 도넛을 제거하려면 요구 사항에 따라 메서드를 SowIncidentLandingPageUtils 복사 getVisualizationConfig 하고 수정해야 합니다.
      static async getVisualizationConfig(helpers, mode, conditionalRecordCount=0) {
                  const evamDef = this.getEvamDef();
                  const visualizationConfig = [{
                          "id": "incident_assigned",
                          "tableName": "incident",
                          "tableDisplayValue": "Incident",
                          "myWorkQuery": "active=true^assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe^state!=6",
                          "myTeamQuery": "active=true^assigned_toISNOTEMPTY^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744^state!=6",
                          "listView": mode == "your_work" ? "sow_landing_page_assigned" : "sow_landing_page",
                          "header": mode == 'your_work' ? await helpers.translate("Incidents assigned to you") : await helpers.translate("Incidents assigned to your team"),
                          "groupByField": "state",
                          "evamId": evamDef['incidentEvamDefinitionId'],
                          "updated_on": "^ORDERBYDESCsys_updated_on",
                          "roles":mode == "your_work" ? ["itil","sn_incident_write"] : ["itil","sn_incident_read"],
                      },
                      {
                          "id": "incident_sla",
                          "tableName": "task_sla",
                          "tableDisplayValue": "Task SLA",
                          "myWorkQuery": "task.sys_class_name=incident^task.assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe^task.active=true^sla.type=SLA^ORsla.type=OLA^active=true^time_left<=1970-01-08 00:00:00",
                          "myTeamQuery": "task.sys_class_name=incident^task.assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744^task.active=true^sla.type=SLA^ORsla.type=OLA^active=true^time_left<=1970-01-08 00:00:00",
                          "listView": 'sow_landing_page',
                          "header": await helpers.translate("Incident SLAs"),
                          "groupByField": "time_left",
                          "evamId": evamDef['incidentSlaEvamDefinitionId'],
                          "updated_on": "^ORDERBYtime_left",
                          "roles":mode == "your_work" ? ["itil","sn_incident_write"] : ["itil","sn_incident_read"],
                      },
                      {
                          "id": "unassigned_incidents",
                          "tableName": "incident",
                          "tableDisplayValue": "Incident",
                          "myWorkQuery": "active=true^assigned_toISEMPTY^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744",
                          "myTeamQuery": "active=true^assigned_toISEMPTY^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744",
                          "listView": mode == "your_work" ? "sow_landing_page_assigned" : "sow_landing_page",
                          "header": await helpers.translate("Unassigned incidents"),
                          "groupByField": "priority",
                          "evamId": evamDef['incidentEvamDefinitionId'],
                          "updated_on": "^ORDERBYDESCsys_updated_on",
                          "roles":mode == "your_work" ? ["itil","sn_incident_read"] : ["itil","sn_incident_read"],
                      },
                      {
                          "id": "catalog_tasks",
                          "tableName": "sc_task",
                          "tableDisplayValue": "Catalog Task",
                          "myWorkQuery": "active=true^assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe",
                          "myTeamQuery": "active=true^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744",
                          "listView": mode == "your_work" ? "sow_landing_page_assigned" : "sow_landing_page",
                          "header": mode == 'your_work' ? await helpers.translate("Catalog tasks assigned to you") : await helpers.translate("Catalog tasks assigned to your team"),
                          "groupByField": "state",
                          "evamId": evamDef["catalogTaskEvamDefinitionId"],
                          "updated_on": "^ORDERBYDESCsys_updated_on",
                          "roles":mode == "your_work" ? ["itil","sn_request_write"] : ["itil","sn_request_read"],
                      }
                  ];
      
                  if(mode=='your_work' && conditionalRecordCount>0){
                      const conditionalConfig = await this.getConditionalVisualizationConfig(helpers);
                      visualizationConfig.push(conditionalConfig);
                  }
      
                  return visualizationConfig;
              }
       

      계층 1 방문 페이지에 문제 도넛형을 추가하려면 아래에 언급된 코드 스니펫과 유사한 요구 사항에 따라 스니펫을 추가합니다.

      {
      "id": "problemsAssigned",
                      "tableName": "problem",
                      "tableDisplayValue": "Problem",
                      "myWorkQuery": "active=true^assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe",
                      "myTeamQuery": "active=true^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744",
                      "header": mode == 'your_work' ? await helpers.translate("Problems assigned to you") : await helpers.translate("Problems assigned to your team"),
                      "groupByField": "state",
                      "evamId": "5f0697b8f49bc510f8773ad5bd0ae292",
                      "updated_on": "^ORDERBYDESCsys_updated_on",
                      "roles":mode == "your_work" ? ["itil","problem_coordinator"] : ["itil","sn_problem_read","problem_task_analyst"]
      }
      

      fetchTitle 도넛을 클릭할 때 표시되는 목록의 레이블을 추가하려면 다음에서 SowIncidentLandingPageUtilsSNC 방법을 복사합니다.

          static async fetchTitle(table, selectedField, groupByField, groupMode = false) {
                  if(selectedField == undefined){
                       selectedField = 'all';
                      }
                  const labelMap = {
                      'incident': {
                          'state': {
                              'all':'Incidents',
                              '1': 'New incidents',
                              '2': 'In Progress incidents',
                              '3': 'On Hold incidents',
                              '6': 'Resolved incidents'
                          },
                          'priority': {
                              'all':'Unassigned incidents',
                              '1': 'P1 unassigned incidents',
                              '2': 'P2 unassigned incidents',
                              '3': 'P3 unassigned incidents',
                              '4': 'P4 unassigned incidents',
                              '5': 'P5 unassigned incidents'
                          }
                      },
                      'sc_task': {
                          'state': {
                              'all':'Catalog tasks',
                              '-5': 'Pending catalog tasks',
                              '1': 'Open catalog tasks',
                              '2': 'Work in progress catalog tasks'
                          }
                      },
                      'task': {
                          'sys_class_name': {
                              'sc_task': 'Catalog tasks delegated to you',
                              'incident': 'Incidents delegated to you'
                          }
                      }
                  };
      
                  if((table == 'incident' && groupByField == 'priority') || table == 'task')
                      return labelMap[table][groupByField][selectedField];
      
                  if (groupMode)
                      return labelMap[table][groupByField][selectedField] + ' assigned to your team';
                  return labelMap[table][groupByField][selectedField] + ' assigned to you';
              }
      

      아래 예제 코드 블록에 언급된 대로 레이블을 추가하면 도넛을 클릭할 때 목록 제목으로 표시됩니다.

         'problem': {  
      'state' :{      
           '101': 'New problems',
                          '102': 'Assess problems',
                          '106': 'Resolved problems',
                          '104': 'Fix in Progress problems',
                          '103': 'Root Cause Analysis problems',
                          'all':'Problems'
            }
                      },
      
    6. 업데이트를 선택합니다.