階層 1 ランディングページでのドーナツの構成

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:10分
  • 階層 1 ランディングページの [概要] セクションでドーナツに表示されるデータを構成します。

    始める前に

    必要なロール:admin

    このタスクについて

    すべてのドーナツのヘッダーラベル、データソース、メトリクス、グループ化フィールド、および viewAllQuery をカスタマイズできます。たとえば、[自分にアサインされた問題] ドーナツなどです。

    手順

    1. 次のように移動する。 All (すべて) > サービスオペレーションワークスペースアドミンセンター > 概要.
    2. [ 概要 ] タブの [初期セットアップ ] セクションで、[ ランディングページの構成 ] オプションを選択します。
    3. ランディングページフォームの [階層 1] セクションで、[ドーナツ構成 (Donut configurations)] の横にある [構成] を選択します。
    4. オプション: PAR ダッシュボードがランディングページでアクティブな場合は、次の手順を実行します。
      1. 階層 1 ダッシュボード構成を構成します
        注:
        ダッシュボードを作成する場合は、保存されたビジュアル化を使用してダッシュボードのカードを作成できます。データの可視化は、それぞれのロールに基づいてユーザーにのみ表示されます。

        ダッシュボードのヴィジビリティサービスオペレーションワークスペースとして値を追加していることを確認してください。

      2. [ランディングページにロードされたダッシュボード] ドロップダウンオプションから、SOW ランディングページのデフォルトダッシュボードを選択します。[Save (保存)] を選択します。
      3. ダッシュボードの要素を変更したら、[ 保存] を選択します。
    5. オプション: PAR ダッシュボードがランディングページでアクティブでない場合は、[ スクリプト ] フィールドを編集して、クラス内の ServiceDeskLandingPageUtils内にコードを追加します。
      static async getVisualizationConfig(helpers, mode) { 
      
                  const evamDef = this.getEvamDef(); 
      
                  const visualizationConfig = [{ 
      
                          "id": "incident_assigned", 
      
                          "tableName": "incident", 
      
                          "tableDisplayValue": "Incident", 
      
                          "myWorkQuery": "active=true^assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe", 
      
                          "myTeamQuery": "active=true^assigned_toISNOTEMPTY^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744", 
      
                          "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", 
      
                      }, 
      
                      { 
      
                          "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", 
      
                      }, 
      
                      { 
      
                          "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", 
      
                      }, 
      
                      { 
      
                          "id": "catalog_tasks", 
      
                          "tableName": "sc_task", 
      
                          "tableDisplayValue": "Catalog Task", 
      
                          "myWorkQuery": "active=true^assigned_toDYNAMIC90d1921e5f510100a9ad2572f2b477fe", 
      
                          "myTeamQuery": "active=true^assignment_groupDYNAMICd6435e965f510100a9ad2572f2b47744", 
      
                          "listView": '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", 
      
                      } 
      
                  ]; 
      
                  return visualizationConfig; 
      
              } 

      たとえば、問題ドーナツを追加するには、スクリプトに以下を追加して、新しいドーナツがランディングページのリストとやり取りできるようにします。これは SowIncidentLandingPageUtilsSNC からコピーされますが、problem_task が追加されています。

      static async fetchTitle(table, nameValueMap, groupMode = false, elementId) { 
      
                  if (table === "task") { 
      
                      return this.getLabelMaps(table, nameValueMap['sys_class_name'], groupMode, elementId); 
      
                  } 
      
                  return this.getLabelMaps(table, nameValueMap['state'], groupMode, elementId); 
      
              } 
      
       
      
      static getLabelMaps(table, selectedField, groupMode = false, elementId) { 
      
                  if (selectedField == undefined) { 
      
                      selectedField = 'all'; 
      
                  } 
      
                  const labelMap = { 
      
                      'incident': { 
      
                          '1': 'New incidents', 
      
                          '2': 'In Progress incidents', 
      
                          '3': 'On Hold incidents', 
      
                          '6': 'Resolved incidents', 
      
                          'all': 'Incidents' 
      
                      }, 
      
                      'change_request': { 
      
                          '0': 'In Review changes', 
      
                          '-1': 'Implement changes', 
      
                          '-2': 'Scheduled changes', 
      
                          '-3': 'Authorize changes', 
      
                          '-4': 'Assess changes', 
      
                          '-5': 'New changes', 
      
                          'all': 'Changes' 
      
                      }, 
      
                      'problem_task': { 
      
                          '151': 'New', 
      
                          '154': 'Work in Progress', 
      
                          '152': 'Assess', 
      
                          '157': 'Closed', 
      
                          'all': 'Problem Tasks' 
      
                      }, 
      
                      'problem': { 
      
                          '101': 'New problems', 
      
                          '102': 'Assess problems', 
      
                          '106': 'Resolved problems', 
      
                          '104': 'Fix in Progress problems', 
      
                          '103': 'Root Cause Analysis problems', 
      
                          'all': 'Problems' 
      
                      }, 
      
                      'task': { 
      
                          'incident_task': 'Incident tasks', 
      
                          'problem_task': 'Problem tasks', 
      
                          'change_task': 'Change tasks', 
      
                          'sc_task': 'Catalog tasks', 
      
                          'incident': 'Incidents', 
      
                          'problem': 'Problems', 
      
                          'change_request': 'Change requests', 
      
                          'all': 'Tasks' 
      
                      } 
      
                  }; 
      
                  if (elementId === 'delegated_task') 
      
                      return labelMap[table][selectedField] + ' delegated to you'; 
      
                  if (groupMode) 
      
                      return labelMap[table][selectedField] + ' assigned to your team'; 
      
                  return labelMap[table][selectedField] + ' assigned to you'; 
      
              } 

      次のコードを追加のドーナツとして追加します。

       { 
      
                      "id": "problem_task_assigned", 
      
                      "tableName": "problem_task", 
      
                      "tableDisplayValue": "Problem Tasks", 
      
                      "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("Problem Tasks assigned to you") : await helpers.translate("Problem Tasks assigned to your team"), 
      
                      "groupByField": "state", 
      
                      //  "evamId": evamDef['incidentEvamDefinitionId'], 
      
                      "updated_on": "^ORDERBYDESCsys_updated_on", 
      
        }, 
    6. [更新] を選択します。