Платформа 3V/Методика/Настроить параметры: различия между версиями
м (A.kazanceva переименовал страницу Платформа 3V/Методика/2. Настроить параметры в Платформа 3V/Методика/Настроить параметры) |
Il.iashin (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | По аналогии с параметрами отчета, в методике расчета можно использоваться параметры простые, типизированные и параметры на справочнике. | |
+ | [[Файл:параметр методика.png]] <br> | ||
+ | |||
+ | == Простой параметр (SimpleValueParameterDto) == | ||
+ | '''Простой параметр''' - это параметр значение которого задается константой. | ||
+ | |||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "defaultValue": "Значение по умолчанию", | ||
+ | "value": "Значение", | ||
+ | "isMultiselect": false, | ||
+ | "isEmptyValuePossible": false, | ||
+ | "isDisableable": false, | ||
+ | "isDisabled": false, | ||
+ | "dataControlOptions": null, | ||
+ | "id": 1, | ||
+ | "name": "Простой параметр", | ||
+ | "discriminator": "SimpleValueParameterDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Свойство !! Описание | ||
+ | |- | ||
+ | | id || Идентификатор параметра | ||
+ | |- | ||
+ | | name || Наименование параметра | ||
+ | |- | ||
+ | | isMultiselect || Признак, что параметр может иметь множественное значение | ||
+ | |- | ||
+ | | isEmptyValuePossible || Признак, что параметр может иметь пустое значение | ||
+ | |- | ||
+ | | isDisableable || Признак, что параметр может быть отключён | ||
+ | |- | ||
+ | | IsDisabled || Признак, что параметр отключен | ||
+ | |- | ||
+ | | DataControlOptions || Настройки элемента управления (контрола) параметром [[Платформа_3V/Отчет/PivotDto/DataControlOptionsDto|'''DataControlOptionsDto''']] | ||
+ | |- | ||
+ | | value || Значение параметра, если isMultiselect == true, то в значении может быть массив значений. | ||
+ | |- | ||
+ | | defaultValue || Значение параметра по умолчанию | ||
+ | |} | ||
+ | |||
+ | == Типизированный параметр (TypedValueParameterDto) == | ||
+ | '''Типизированный параметр''' - это параметр значение которого задается типизированной константой. | ||
+ | |||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "dataType": "String", | ||
+ | "defaultValue": "Значение по умолчанию", | ||
+ | "value": "Значение", | ||
+ | "isMultiselect": false, | ||
+ | "isEmptyValuePossible": false, | ||
+ | "isDisableable": false, | ||
+ | "isDisabled": false, | ||
+ | "dataControlOptions": null, | ||
+ | "id": 1, | ||
+ | "name": "Типизированный параметр", | ||
+ | "discriminator": "TypedValueParameterDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Ключевое отличие типизированного параметра от простого заключается в строгой типизации значения, если для простого параметра не важно что в значение будет: строка, число, дата, то для типизированного важно. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Свойство !! Описание | ||
+ | |- | ||
+ | | dataType || Тип данных значений параметра | ||
+ | |} | ||
+ | </br> | ||
+ | Остальные свойства '''TypedValueParameterDto''' такие же как в '''SimpleValueParameterDto''' за исключением dataType. | ||
+ | |||
+ | == Параметр на справочнике (DictionaryParameterDto) == | ||
+ | '''Параметр на справочнике''' - это параметр значения которого берутся из атрибута справочника. | ||
+ | |||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "options": { | ||
+ | "groupingOptions": null, | ||
+ | "groupingMethod": "Default", | ||
+ | "sortingOptions": null, | ||
+ | "rootElement": null, | ||
+ | "virtualElements": null, | ||
+ | "displayValueOptions": null, | ||
+ | "dictionaryId": 8237, | ||
+ | "filter": null, | ||
+ | "selection": null, | ||
+ | "hierarchyId": null | ||
+ | }, | ||
+ | "selectionFilter": { | ||
+ | "value": [ | ||
+ | 1 | ||
+ | ], | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "id": 1, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "conditionType": "AttributeInCollection", | ||
+ | "inversion": false, | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto" | ||
+ | }, | ||
+ | "attributeValues": null, | ||
+ | "defaultValue": [], | ||
+ | "value": null, | ||
+ | "isMultiselect": false, | ||
+ | "isEmptyValuePossible": true, | ||
+ | "isDisableable": false, | ||
+ | "isDisabled": false, | ||
+ | "dataControlOptions": null, | ||
+ | "id": 2, | ||
+ | "name": "Ремонты", | ||
+ | "discriminator": "DictionaryParameterDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Свойство !! Описание | ||
+ | |- | ||
+ | | options || Настройки справочника для параметра [[Платформа_3V/Отчет/PivotDto/DictionaryOptionsDto|'''DictionaryOptionsDto''']] | ||
+ | |- | ||
+ | | attributeValues || Значения атрибута справочника, которые будут использоваться в качестве значений (вместо value) [[Платформа_3V/Отчет/PivotDto/DictionaryAttributeParameterValueDto|'''DictionaryAttributeParameterValueDto''']] | ||
+ | |- | ||
+ | | selectionFilter|| Фильтр, по которому будет определятся отметка справочника в параметре. | ||
+ | |} | ||
+ | Свойства dictionaryId, sortingOptions, displayValueOptions являются устаревшими. | ||
+ | </br> | ||
+ | Остальные свойства '''DictionaryParameterDto''' такие же как в '''SimpleValueParameterDto'''. | ||
+ | </br> | ||
+ | === Способы задания отметки для параметра на справочнике === | ||
+ | # Value или DefaultValue | ||
+ | # AttributeValues (Теперь устаревшее, т.к. появился фильтр, но поддержка остается) | ||
+ | # SelectionFilter | ||
+ | |||
+ | Приоритет отдается SelectionFilter, затем AttributeValues и в последнюю очередь Value и DefaultValue. | ||
+ | |||
+ | '''При открытии отмечать все элементы''' | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "selectionFilter": { | ||
+ | "value": null, | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "id": 1, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "conditionType": "AllElements", | ||
+ | "inversion": false, | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto" | ||
+ | }, | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Вычислимый параметр == | ||
+ | '''Вычислимый параметр''' - это параметр значение которых вычисляется по выражению. | ||
+ | |||
+ | #Вычисление значения параметра поддерживается только для [[Платформа_3V/Отчет/Параметры#Простой параметр (SimpleValueParameterDto)|'''SimpleValueParameterDto''']]. | ||
+ | #Выражение описывается в свойстве параметра DefaultValue или Value. | ||
+ | #Выражение '''ДОЛЖНО''' начинаться с символа '=', например "=1+2". | ||
+ | #Тип данных параметра определяется по результату вычисления, поэтому нет смысла использовать [[Платформа_3V/Отчет/Параметры#Типизированный параметр (TypedValueParameterDto)|'''TypedValueParameterDto''']]. | ||
+ | |||
+ | Лучше вначале настроить фильтрацию справочник на параметр, заданный через конструктор, а затем переназначить через json на добавленный вычислимый параметр SimpleValueParameterDto , т.к. вычислимый SimpleValueParameterDto не очень корректно отображаются в конструкторе на текущий момент.<br> | ||
+ | |||
+ | '''Пример описания параметра с вычислением даты завтрашнего дня.''' | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "id": 1, | ||
+ | "name": "Завтра", | ||
+ | "IsDisabled": true, | ||
+ | "defaultValue": "=Now()+1", | ||
+ | "discriminator": "SimpleValueParameterDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '''Пример описания параметра с вычислением числа.''' | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "id": 1, | ||
+ | "name": "Число", | ||
+ | "IsDisabled": true, | ||
+ | "defaultValue": "=1 + 2.3", | ||
+ | "discriminator": "SimpleValueParameterDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '''Пример описания параметра с вычислением строки.''' | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "id": 1, | ||
+ | "name": "Строка", | ||
+ | "IsDisabled": true, | ||
+ | "defaultValue": "=('ab' + 'cd')", | ||
+ | "discriminator": "SimpleValueParameterDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '''Пример методики с параметром равным текущему дню'''<br> | ||
+ | |||
+ | Ссылка на пример на study: https://study.3v-cloud.com/navigator/#/?viewId=883 <br> | ||
+ | |||
+ | Суть методики - записать значение атрибута календарного справочника, отфильтрованного от вычисляемого параметра, который равен текущему дню. | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "parameters": [ | ||
+ | { | ||
+ | "dataType": "DateTime", | ||
+ | "discriminator": "TypedValueParameterDto", | ||
+ | "defaultValue": [ | ||
+ | "2021-11-11T00:00:00Z" | ||
+ | ], | ||
+ | "value": [ | ||
+ | "2021-11-11T00:00:00Z" | ||
+ | ], | ||
+ | "isMultiselect": false, | ||
+ | "isEmptyValuePossible": true, | ||
+ | "isDisableable": false, | ||
+ | "isDisabled": false, | ||
+ | "id": 1, | ||
+ | "name": "New calendar dictionary" | ||
+ | }, | ||
+ | { | ||
+ | "discriminator": "SimpleValueParameterDto", | ||
+ | "defaultValue": "=Today()", | ||
+ | "value": null, | ||
+ | "isMultiselect": false, | ||
+ | "isEmptyValuePossible": false, | ||
+ | "isDisableable": false, | ||
+ | "isDisabled": false, | ||
+ | "id": 2, | ||
+ | "name": "Сегодня" | ||
+ | } | ||
+ | ], | ||
+ | "folders": [], | ||
+ | "formulas": [ | ||
+ | { | ||
+ | "expression": "[1]", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "sourceId": 2, | ||
+ | "aggregationType": "None", | ||
+ | "selections": [ | ||
+ | { | ||
+ | "attributeMapping": [], | ||
+ | "dictionaryId": 140425, | ||
+ | "filter": { | ||
+ | "type": "And", | ||
+ | "filters": [ | ||
+ | { | ||
+ | "value": [ | ||
+ | 6 | ||
+ | ], | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 7 | ||
+ | }, | ||
+ | "conditionType": "AttributeEqualConstant", | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto", | ||
+ | "inversion": false | ||
+ | }, | ||
+ | { | ||
+ | "value": { | ||
+ | "id": 2, | ||
+ | "name": null | ||
+ | }, | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": 5, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 5 | ||
+ | }, | ||
+ | "conditionType": "AttributeEqualConstant", | ||
+ | "discriminator": "ParameterConditionalDictionaryFilterDto", | ||
+ | "inversion": false | ||
+ | } | ||
+ | ], | ||
+ | "discriminator": "CompoundDictionaryFilterDto", | ||
+ | "inversion": false | ||
+ | }, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | } | ||
+ | ], | ||
+ | "dictionarySelectionTransformations": [], | ||
+ | "asArray": false, | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": "New calendar dictionary" | ||
+ | } | ||
+ | ], | ||
+ | "dataFilters": [], | ||
+ | "discriminator": "CalculationFormulaDto", | ||
+ | "enable": true, | ||
+ | "folderId": null, | ||
+ | "sourceId": 1, | ||
+ | "selections": [ | ||
+ | { | ||
+ | "attributeMapping": [], | ||
+ | "dictionaryId": 16255, | ||
+ | "filter": { | ||
+ | "value": null, | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 1 | ||
+ | }, | ||
+ | "conditionType": "AllElements", | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto", | ||
+ | "inversion": false | ||
+ | }, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | } | ||
+ | ], | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": "Formula1" | ||
+ | } | ||
+ | ], | ||
+ | "sources": [ | ||
+ | { | ||
+ | "metaObjectId": 140424, | ||
+ | "discriminator": "IndicatorSourceDto", | ||
+ | "id": 1, | ||
+ | "name": "New indicator" | ||
+ | }, | ||
+ | { | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 2 | ||
+ | }, | ||
+ | "metaObjectId": 140425, | ||
+ | "discriminator": "DictionaryAttributeSourceDto", | ||
+ | "id": 2, | ||
+ | "name": "New calendar dictionary" | ||
+ | } | ||
+ | ], | ||
+ | "maxCalculationIdleSec": null, | ||
+ | "maxOverallCalculationCoords": null, | ||
+ | "code": "New_CalculationMethod_259", | ||
+ | "id": 140423, | ||
+ | "name": "New calculation method" | ||
+ | } | ||
+ | </syntaxhighlight> |
Текущая версия на 12:48, 29 ноября 2021
По аналогии с параметрами отчета, в методике расчета можно использоваться параметры простые, типизированные и параметры на справочнике.
Содержание
Простой параметр (SimpleValueParameterDto)
Простой параметр - это параметр значение которого задается константой.
1 {
2 "defaultValue": "Значение по умолчанию",
3 "value": "Значение",
4 "isMultiselect": false,
5 "isEmptyValuePossible": false,
6 "isDisableable": false,
7 "isDisabled": false,
8 "dataControlOptions": null,
9 "id": 1,
10 "name": "Простой параметр",
11 "discriminator": "SimpleValueParameterDto"
12 }
Свойство | Описание |
---|---|
id | Идентификатор параметра |
name | Наименование параметра |
isMultiselect | Признак, что параметр может иметь множественное значение |
isEmptyValuePossible | Признак, что параметр может иметь пустое значение |
isDisableable | Признак, что параметр может быть отключён |
IsDisabled | Признак, что параметр отключен |
DataControlOptions | Настройки элемента управления (контрола) параметром DataControlOptionsDto |
value | Значение параметра, если isMultiselect == true, то в значении может быть массив значений. |
defaultValue | Значение параметра по умолчанию |
Типизированный параметр (TypedValueParameterDto)
Типизированный параметр - это параметр значение которого задается типизированной константой.
1 {
2 "dataType": "String",
3 "defaultValue": "Значение по умолчанию",
4 "value": "Значение",
5 "isMultiselect": false,
6 "isEmptyValuePossible": false,
7 "isDisableable": false,
8 "isDisabled": false,
9 "dataControlOptions": null,
10 "id": 1,
11 "name": "Типизированный параметр",
12 "discriminator": "TypedValueParameterDto"
13 }
Ключевое отличие типизированного параметра от простого заключается в строгой типизации значения, если для простого параметра не важно что в значение будет: строка, число, дата, то для типизированного важно.
Свойство | Описание |
---|---|
dataType | Тип данных значений параметра |
Остальные свойства TypedValueParameterDto такие же как в SimpleValueParameterDto за исключением dataType.
Параметр на справочнике (DictionaryParameterDto)
Параметр на справочнике - это параметр значения которого берутся из атрибута справочника.
1 {
2 "options": {
3 "groupingOptions": null,
4 "groupingMethod": "Default",
5 "sortingOptions": null,
6 "rootElement": null,
7 "virtualElements": null,
8 "displayValueOptions": null,
9 "dictionaryId": 8237,
10 "filter": null,
11 "selection": null,
12 "hierarchyId": null
13 },
14 "selectionFilter": {
15 "value": [
16 1
17 ],
18 "skipIfValueNull": false,
19 "attributeId": null,
20 "attribute": {
21 "id": 1,
22 "discriminator": "OwnAttributeDefinitionDto"
23 },
24 "conditionType": "AttributeInCollection",
25 "inversion": false,
26 "discriminator": "ValueConditionalDictionaryFilterDto"
27 },
28 "attributeValues": null,
29 "defaultValue": [],
30 "value": null,
31 "isMultiselect": false,
32 "isEmptyValuePossible": true,
33 "isDisableable": false,
34 "isDisabled": false,
35 "dataControlOptions": null,
36 "id": 2,
37 "name": "Ремонты",
38 "discriminator": "DictionaryParameterDto"
39 }
Свойство | Описание |
---|---|
options | Настройки справочника для параметра DictionaryOptionsDto |
attributeValues | Значения атрибута справочника, которые будут использоваться в качестве значений (вместо value) DictionaryAttributeParameterValueDto |
selectionFilter | Фильтр, по которому будет определятся отметка справочника в параметре. |
Свойства dictionaryId, sortingOptions, displayValueOptions являются устаревшими.
Остальные свойства DictionaryParameterDto такие же как в SimpleValueParameterDto.
Способы задания отметки для параметра на справочнике
- Value или DefaultValue
- AttributeValues (Теперь устаревшее, т.к. появился фильтр, но поддержка остается)
- SelectionFilter
Приоритет отдается SelectionFilter, затем AttributeValues и в последнюю очередь Value и DefaultValue.
При открытии отмечать все элементы
1 "selectionFilter": {
2 "value": null,
3 "skipIfValueNull": false,
4 "attributeId": null,
5 "attribute": {
6 "id": 1,
7 "discriminator": "OwnAttributeDefinitionDto"
8 },
9 "conditionType": "AllElements",
10 "inversion": false,
11 "discriminator": "ValueConditionalDictionaryFilterDto"
12 },
Вычислимый параметр
Вычислимый параметр - это параметр значение которых вычисляется по выражению.
- Вычисление значения параметра поддерживается только для SimpleValueParameterDto.
- Выражение описывается в свойстве параметра DefaultValue или Value.
- Выражение ДОЛЖНО начинаться с символа '=', например "=1+2".
- Тип данных параметра определяется по результату вычисления, поэтому нет смысла использовать TypedValueParameterDto.
Лучше вначале настроить фильтрацию справочник на параметр, заданный через конструктор, а затем переназначить через json на добавленный вычислимый параметр SimpleValueParameterDto , т.к. вычислимый SimpleValueParameterDto не очень корректно отображаются в конструкторе на текущий момент.
Пример описания параметра с вычислением даты завтрашнего дня.
1 {
2 "id": 1,
3 "name": "Завтра",
4 "IsDisabled": true,
5 "defaultValue": "=Now()+1",
6 "discriminator": "SimpleValueParameterDto"
7 }
Пример описания параметра с вычислением числа.
1 {
2 "id": 1,
3 "name": "Число",
4 "IsDisabled": true,
5 "defaultValue": "=1 + 2.3",
6 "discriminator": "SimpleValueParameterDto"
7 }
Пример описания параметра с вычислением строки.
1 {
2 "id": 1,
3 "name": "Строка",
4 "IsDisabled": true,
5 "defaultValue": "=('ab' + 'cd')",
6 "discriminator": "SimpleValueParameterDto"
7 }
Пример методики с параметром равным текущему дню
Ссылка на пример на study: https://study.3v-cloud.com/navigator/#/?viewId=883
Суть методики - записать значение атрибута календарного справочника, отфильтрованного от вычисляемого параметра, который равен текущему дню.
1 {
2 "parameters": [
3 {
4 "dataType": "DateTime",
5 "discriminator": "TypedValueParameterDto",
6 "defaultValue": [
7 "2021-11-11T00:00:00Z"
8 ],
9 "value": [
10 "2021-11-11T00:00:00Z"
11 ],
12 "isMultiselect": false,
13 "isEmptyValuePossible": true,
14 "isDisableable": false,
15 "isDisabled": false,
16 "id": 1,
17 "name": "New calendar dictionary"
18 },
19 {
20 "discriminator": "SimpleValueParameterDto",
21 "defaultValue": "=Today()",
22 "value": null,
23 "isMultiselect": false,
24 "isEmptyValuePossible": false,
25 "isDisableable": false,
26 "isDisabled": false,
27 "id": 2,
28 "name": "Сегодня"
29 }
30 ],
31 "folders": [],
32 "formulas": [
33 {
34 "expression": "[1]",
35 "operands": [
36 {
37 "sourceId": 2,
38 "aggregationType": "None",
39 "selections": [
40 {
41 "attributeMapping": [],
42 "dictionaryId": 140425,
43 "filter": {
44 "type": "And",
45 "filters": [
46 {
47 "value": [
48 6
49 ],
50 "skipIfValueNull": false,
51 "attributeId": null,
52 "attribute": {
53 "discriminator": "OwnAttributeDefinitionDto",
54 "id": 7
55 },
56 "conditionType": "AttributeEqualConstant",
57 "discriminator": "ValueConditionalDictionaryFilterDto",
58 "inversion": false
59 },
60 {
61 "value": {
62 "id": 2,
63 "name": null
64 },
65 "skipIfValueNull": false,
66 "attributeId": 5,
67 "attribute": {
68 "discriminator": "OwnAttributeDefinitionDto",
69 "id": 5
70 },
71 "conditionType": "AttributeEqualConstant",
72 "discriminator": "ParameterConditionalDictionaryFilterDto",
73 "inversion": false
74 }
75 ],
76 "discriminator": "CompoundDictionaryFilterDto",
77 "inversion": false
78 },
79 "hierarchyId": null,
80 "limit": null
81 }
82 ],
83 "dictionarySelectionTransformations": [],
84 "asArray": false,
85 "code": null,
86 "id": 1,
87 "name": "New calendar dictionary"
88 }
89 ],
90 "dataFilters": [],
91 "discriminator": "CalculationFormulaDto",
92 "enable": true,
93 "folderId": null,
94 "sourceId": 1,
95 "selections": [
96 {
97 "attributeMapping": [],
98 "dictionaryId": 16255,
99 "filter": {
100 "value": null,
101 "skipIfValueNull": false,
102 "attributeId": null,
103 "attribute": {
104 "discriminator": "OwnAttributeDefinitionDto",
105 "id": 1
106 },
107 "conditionType": "AllElements",
108 "discriminator": "ValueConditionalDictionaryFilterDto",
109 "inversion": false
110 },
111 "hierarchyId": null,
112 "limit": null
113 }
114 ],
115 "code": null,
116 "id": 1,
117 "name": "Formula1"
118 }
119 ],
120 "sources": [
121 {
122 "metaObjectId": 140424,
123 "discriminator": "IndicatorSourceDto",
124 "id": 1,
125 "name": "New indicator"
126 },
127 {
128 "attribute": {
129 "discriminator": "OwnAttributeDefinitionDto",
130 "id": 2
131 },
132 "metaObjectId": 140425,
133 "discriminator": "DictionaryAttributeSourceDto",
134 "id": 2,
135 "name": "New calendar dictionary"
136 }
137 ],
138 "maxCalculationIdleSec": null,
139 "maxOverallCalculationCoords": null,
140 "code": "New_CalculationMethod_259",
141 "id": 140423,
142 "name": "New calculation method"
143 }