Платформа 3V/Показатель/Показатель на справочнике: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 64: Строка 64:
 
| 2 ||24 ||Связь с пользователями Jira || Связанный со справочником "Пользователи" ||  
 
| 2 ||24 ||Связь с пользователями Jira || Связанный со справочником "Пользователи" ||  
 
|}
 
|}
 +
"Календарь" (id=467)
 +
{| class="wikitable"
 +
|-
 +
! № !! Идентификатор !!Наименование атрибута !! Тип !! Назначение
 +
|-
 +
| 1 || 1||Идентификатор|| Числовой||
 +
|-
 +
| 2 ||24 ||Наименование ||Текстовый ||
 +
|}
 +
 +
== Настройка показателя ==
 +
На данный момент всю настройку возможно произвести только через json, до реализации интерфейсов
 +
 +
=== Вариант 1: исходный справочник с данными является измерением показателя  ===
 +
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
  "virtualTable": {
 +
    "dictionaryId": 12,
 +
    "attributes": [
 +
      {
 +
        "definition": {
 +
          "discriminator": "OwnAttributeDefinitionDto",
 +
          "id": 34
 +
        },
 +
        "dataType": "Double"
 +
      },
 +
      {
 +
        "definition": {
 +
          "innerAttribute": {
 +
            "discriminator": "OwnAttributeDefinitionDto",
 +
            "id": 24
 +
          },
 +
          "discriminator": "TransitiveAttributeDefinitionDto",
 +
          "id": 22
 +
        },
 +
        "dataType": "Integer"
 +
      },
 +
      {
 +
        "definition": {
 +
          "discriminator": "OwnAttributeDefinitionDto",
 +
          "id": 1
 +
        },
 +
        "dataType": "Integer"
 +
      },
 +
      {
 +
        "definition": {
 +
          "discriminator": "OwnAttributeDefinitionDto",
 +
          "id": 33
 +
        },
 +
        "dataType": "Integer"
 +
      },
 +
      {
 +
        "definition": {
 +
          "innerAttribute": {
 +
            "innerAttribute": {
 +
              "discriminator": "OwnAttributeDefinitionDto",
 +
              "id": 25
 +
            },
 +
            "discriminator": "TransitiveAttributeDefinitionDto",
 +
            "id": 31
 +
          },
 +
          "discriminator": "TransitiveAttributeDefinitionDto",
 +
          "id": 29
 +
        },
 +
        "dataType": "Integer"
 +
      }
 +
    ]
 +
  },
 +
  "factColumnId": 0,
 +
  "aggregationType": "None",
 +
  "discriminator": "DictionaryIndicatorDto",
 +
  "isReadonly": false,
 +
  "isCached": false,
 +
  "isDataSourceExternal": false,
 +
  "indicatorDictionaries": [
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 1,
 +
          "columnId": 2
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 12
 +
    },
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 1,
 +
          "columnId": 3
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 467
 +
    },
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 40,
 +
          "columnId": 1
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 19
 +
    },
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 20,
 +
          "columnId": 4
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 504
 +
    }
 +
  ],
 +
  "factOptions": [],
 +
  "isAccessRightsEnabled": false,
 +
  "code": "Ind_Tab_Issue_Work_Logs",
 +
  "id": 887,
 +
  "name": "Показатель на справочнике Трудозатрат"
 +
}
 +
 +
 +
</syntaxhighlight>
 +
 +
 +
=== Вариант 2: без исходного справочника в качестве измерения показателя, агрегация данных  ===
 +
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
  "virtualTable": {
 +
    "dictionaryId": 12,
 +
    "attributes": [
 +
      {
 +
        "definition": {
 +
          "discriminator": "OwnAttributeDefinitionDto",
 +
          "id": 34
 +
        },
 +
        "dataType": "Double"
 +
      },
 +
      {
 +
        "definition": {
 +
          "innerAttribute": {
 +
            "discriminator": "OwnAttributeDefinitionDto",
 +
            "id": 24
 +
          },
 +
          "discriminator": "TransitiveAttributeDefinitionDto",
 +
          "id": 22
 +
        },
 +
        "dataType": "Integer"
 +
      },
 +
      {
 +
        "definition": {
 +
          "discriminator": "OwnAttributeDefinitionDto",
 +
          "id": 33
 +
        },
 +
        "dataType": "Integer"
 +
      },
 +
      {
 +
        "definition": {
 +
          "innerAttribute": {
 +
            "innerAttribute": {
 +
              "discriminator": "OwnAttributeDefinitionDto",
 +
              "id": 25
 +
            },
 +
            "discriminator": "TransitiveAttributeDefinitionDto",
 +
            "id": 31
 +
          },
 +
          "discriminator": "TransitiveAttributeDefinitionDto",
 +
          "id": 29
 +
        },
 +
        "dataType": "Integer"
 +
      }
 +
    ]
 +
  },
 +
  "factColumnId": 0,
 +
  "aggregationType": "Sum",
 +
  "discriminator": "DictionaryIndicatorDto",
 +
  "isReadonly": false,
 +
  "isCached": false,
 +
  "isDataSourceExternal": false,
 +
  "indicatorDictionaries": [
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 1,
 +
          "columnId": 2
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 467
 +
    },
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 40,
 +
          "columnId": 1
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 19
 +
    },
 +
    {
 +
      "mappings": [
 +
        {
 +
          "attributeId": 20,
 +
          "columnId": 3
 +
        }
 +
      ],
 +
      "discriminator": "DataIndicatorDictionaryDto",
 +
      "dictionaryId": 504
 +
    }
 +
  ],
 +
  "factOptions": [],
 +
  "isAccessRightsEnabled": false,
 +
  "code": "Ind_Tab_Issue_Work_Logs_sum",
 +
  "id": 889,
 +
  "name": "Показатель на справочнике Трудозатрат (сумма по факту)"
 +
}
 +
 +
 +
</syntaxhighlight>

Версия 10:38, 25 августа 2021

Что-то про отдельный тип показателей, когда данные внутри показателя собираются из данных таблицы справочника, который так-же является измерением этого показателя (аналог сводной таблицы excel)

Описание кейса

необходимо настроить показатель на основании таблицы справочника "Трудозатраты" с данными, при этом в показатель необходимо вывести измерения по транзитивным атрибутам, связанные с исходным справочником

Исходные данные

Справочники

"Трудозатраты по задачам" (id=12)

Идентификатор Наименование атрибута Тип Назначение
1 2 Наименование трудозатраты Текстовый
2 22 author Связанный со справочником "Пользователи"
3 29 issue Связанный со справочником "Задачи"
4 33 startDateId Числовой Идентификатор календаря уровня Месяц, для связи с измерением Календарь
5 34 timeSpentInHours Дробный Факт в показателе

"Пользователи" (id=9)

Идентификатор Наименование атрибута Тип Назначение
1 2 Наименование Текстовый
2 24 ФИО сотрудника Связанный со справочником "Сотрудники"

"Задачи" (id=11)

Идентификатор Наименование атрибута Тип Назначение
1 2 Наименование Текстовый
2 31 project Связанный со справочником "Проекты из Jira"

"Проекты из Jira" (id=10)

Идентификатор Наименование атрибута Тип Назначение
1 2 Наименование Текстовый
2 25 Связь с проектами Связанный со справочником "Проекты"

"Сотрудники" (id=19)

Идентификатор Наименование атрибута Тип Назначение
1 2 Наименование Текстовый
2 24 Связь с пользователями Jira Связанный со справочником "Пользователи"

"Проекты" (id=504)

Идентификатор Наименование атрибута Тип Назначение
1 2 Наименование Текстовый
2 24 Связь с пользователями Jira Связанный со справочником "Пользователи"

"Календарь" (id=467)

Идентификатор Наименование атрибута Тип Назначение
1 1 Идентификатор Числовой
2 24 Наименование Текстовый

Настройка показателя

На данный момент всю настройку возможно произвести только через json, до реализации интерфейсов

Вариант 1: исходный справочник с данными является измерением показателя

  1  
  2 {
  3   "virtualTable": {
  4     "dictionaryId": 12,
  5     "attributes": [
  6       {
  7         "definition": {
  8           "discriminator": "OwnAttributeDefinitionDto",
  9           "id": 34
 10         },
 11         "dataType": "Double"
 12       },
 13       {
 14         "definition": {
 15           "innerAttribute": {
 16             "discriminator": "OwnAttributeDefinitionDto",
 17             "id": 24
 18           },
 19           "discriminator": "TransitiveAttributeDefinitionDto",
 20           "id": 22
 21         },
 22         "dataType": "Integer"
 23       },
 24       {
 25         "definition": {
 26           "discriminator": "OwnAttributeDefinitionDto",
 27           "id": 1
 28         },
 29         "dataType": "Integer"
 30       },
 31       {
 32         "definition": {
 33           "discriminator": "OwnAttributeDefinitionDto",
 34           "id": 33
 35         },
 36         "dataType": "Integer"
 37       },
 38       {
 39         "definition": {
 40           "innerAttribute": {
 41             "innerAttribute": {
 42               "discriminator": "OwnAttributeDefinitionDto",
 43               "id": 25
 44             },
 45             "discriminator": "TransitiveAttributeDefinitionDto",
 46             "id": 31
 47           },
 48           "discriminator": "TransitiveAttributeDefinitionDto",
 49           "id": 29
 50         },
 51         "dataType": "Integer"
 52       }
 53     ]
 54   },
 55   "factColumnId": 0,
 56   "aggregationType": "None",
 57   "discriminator": "DictionaryIndicatorDto",
 58   "isReadonly": false,
 59   "isCached": false,
 60   "isDataSourceExternal": false,
 61   "indicatorDictionaries": [
 62     {
 63       "mappings": [
 64         {
 65           "attributeId": 1,
 66           "columnId": 2
 67         }
 68       ],
 69       "discriminator": "DataIndicatorDictionaryDto",
 70       "dictionaryId": 12
 71     },
 72     {
 73       "mappings": [
 74         {
 75           "attributeId": 1,
 76           "columnId": 3
 77         }
 78       ],
 79       "discriminator": "DataIndicatorDictionaryDto",
 80       "dictionaryId": 467
 81     },
 82     {
 83       "mappings": [
 84         {
 85           "attributeId": 40,
 86           "columnId": 1
 87         }
 88       ],
 89       "discriminator": "DataIndicatorDictionaryDto",
 90       "dictionaryId": 19
 91     },
 92     {
 93       "mappings": [
 94         {
 95           "attributeId": 20,
 96           "columnId": 4
 97         }
 98       ],
 99       "discriminator": "DataIndicatorDictionaryDto",
100       "dictionaryId": 504
101     }
102   ],
103   "factOptions": [],
104   "isAccessRightsEnabled": false,
105   "code": "Ind_Tab_Issue_Work_Logs",
106   "id": 887,
107   "name": "Показатель на справочнике Трудозатрат"
108 }


Вариант 2: без исходного справочника в качестве измерения показателя, агрегация данных

 1  
 2 {
 3   "virtualTable": {
 4     "dictionaryId": 12,
 5     "attributes": [
 6       {
 7         "definition": {
 8           "discriminator": "OwnAttributeDefinitionDto",
 9           "id": 34
10         },
11         "dataType": "Double"
12       },
13       {
14         "definition": {
15           "innerAttribute": {
16             "discriminator": "OwnAttributeDefinitionDto",
17             "id": 24
18           },
19           "discriminator": "TransitiveAttributeDefinitionDto",
20           "id": 22
21         },
22         "dataType": "Integer"
23       },
24       {
25         "definition": {
26           "discriminator": "OwnAttributeDefinitionDto",
27           "id": 33
28         },
29         "dataType": "Integer"
30       },
31       {
32         "definition": {
33           "innerAttribute": {
34             "innerAttribute": {
35               "discriminator": "OwnAttributeDefinitionDto",
36               "id": 25
37             },
38             "discriminator": "TransitiveAttributeDefinitionDto",
39             "id": 31
40           },
41           "discriminator": "TransitiveAttributeDefinitionDto",
42           "id": 29
43         },
44         "dataType": "Integer"
45       }
46     ]
47   },
48   "factColumnId": 0,
49   "aggregationType": "Sum",
50   "discriminator": "DictionaryIndicatorDto",
51   "isReadonly": false,
52   "isCached": false,
53   "isDataSourceExternal": false,
54   "indicatorDictionaries": [
55     {
56       "mappings": [
57         {
58           "attributeId": 1,
59           "columnId": 2
60         }
61       ],
62       "discriminator": "DataIndicatorDictionaryDto",
63       "dictionaryId": 467
64     },
65     {
66       "mappings": [
67         {
68           "attributeId": 40,
69           "columnId": 1
70         }
71       ],
72       "discriminator": "DataIndicatorDictionaryDto",
73       "dictionaryId": 19
74     },
75     {
76       "mappings": [
77         {
78           "attributeId": 20,
79           "columnId": 3
80         }
81       ],
82       "discriminator": "DataIndicatorDictionaryDto",
83       "dictionaryId": 504
84     }
85   ],
86   "factOptions": [],
87   "isAccessRightsEnabled": false,
88   "code": "Ind_Tab_Issue_Work_Logs_sum",
89   "id": 889,
90   "name": "Показатель на справочнике Трудозатрат (сумма по факту)"
91 }