Платформа 3V/Показатель/Показатель на справочнике: различия между версиями
< Платформа 3V | Показатель
Перейти к навигации
Перейти к поиску
Строка 96: | Строка 96: | ||
{ | { | ||
"virtualTable": { | "virtualTable": { | ||
− | "dictionaryId": 12, | + | "dictionaryId": 12, //идентификатор исходного справочника |
"attributes": [ | "attributes": [ | ||
{ | { | ||
"definition": { | "definition": { | ||
"discriminator": "OwnAttributeDefinitionDto", | "discriminator": "OwnAttributeDefinitionDto", | ||
− | "id": 34 | + | "id": 34 //идентификатор атрибута в качестве факта показателя, columnId=0 |
}, | }, | ||
"dataType": "Double" | "dataType": "Double" | ||
Строка 109: | Строка 109: | ||
"innerAttribute": { | "innerAttribute": { | ||
"discriminator": "OwnAttributeDefinitionDto", | "discriminator": "OwnAttributeDefinitionDto", | ||
− | "id": 24 | + | "id": 24 |
}, | }, | ||
"discriminator": "TransitiveAttributeDefinitionDto", | "discriminator": "TransitiveAttributeDefinitionDto", | ||
− | "id": 22 | + | "id": 22 |
}, | }, | ||
"dataType": "Integer" | "dataType": "Integer" | ||
Строка 204: | Строка 204: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
=== Вариант 2: без исходного справочника в качестве измерения показателя, агрегация данных === | === Вариант 2: без исходного справочника в качестве измерения показателя, агрегация данных === |
Версия 11:10, 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 показателя, до реализации интерфейсов Ниже приведены два варианта настройки, где
Поле JSON | Описание |
---|---|
virtualTable | задается идентификатор исходного справочника и его атрибуты по которым будет настроена связь измерений показателя |
factColumnId | задать порядок атрибута - факта из описания атрибутов блока virtualTable |
aggregationType | задать при необходимости тип агрегации или оставить NONE |
indicatorDictionariesexpressions | задать маппинг атрибутов исходного справочника с измерениями |
Вариант 1: исходный справочник с данными является измерением показателя
1
2 {
3 "virtualTable": {
4 "dictionaryId": 12, //идентификатор исходного справочника
5 "attributes": [
6 {
7 "definition": {
8 "discriminator": "OwnAttributeDefinitionDto",
9 "id": 34 //идентификатор атрибута в качестве факта показателя, columnId=0
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 }