AZykov (обсуждение | вклад) Нет описания правки |
AZykov (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
= Общая информация = | = Общая информация = | ||
'''Универсальный источник данных''' (dataSource) - это специализированная структура, описывающая способ получения данных для | '''Универсальный источник данных''' (dataSource) - это специализированная структура, описывающая способ получения данных для элементов управления (Controls). | ||
[[Файл:Использование dataSource на вкладке UI класса.png|мини|Использование dataSource на вкладке UI класса]] | |||
Любой контрол (таблица, карточка график и т.д.) может получать данные для отображения не только из хранилища (используется по-умолчанию), но и из сторонних источников. | |||
Примеры сторонних источников: | |||
* '''class''' - набор сущностей класса. По факту является вариантом по-умолчанию | |||
* '''enum''' - содержимое перечисления (раздел Enum в приложении Builder) | |||
* '''data''' - явно заданный константный массив данных | |||
* '''code''' - выполнение произвольного фрагмента кода, возвращающее коллекцию значений для отображения | |||
* '''action''' - выполнение метода любого микросервиса | |||
Кроме указания источника данных, dataSource также позволяет задать правила фильтрации данных, выводимых контролом. | |||
Пример использования dataSource для доступа к данным класса с фильтрацией: <syntaxhighlight lang="json"> | |||
{ | |||
"kind": "class", | |||
"class_fullMultiName": "creomate_tutorial/contact/Contacts", | |||
"selection": { | |||
"filter": [ | |||
"or", | |||
["isnull",["parameter","place"]], | |||
["==",["property","place_id"],["parameter","place"]] | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
Пример использования dataSource для доступа к данным из перечисления: <syntaxhighlight lang="json"> | |||
{ | |||
"kind": "enum", | |||
"enum_fullName": "crm/TaskPriority" | |||
} | |||
</syntaxhighlight> | |||
Пример использования dataSource для обращения к данным микросервиса: <syntaxhighlight lang="json"> | |||
{ | |||
"kind": "action", | |||
"action":{ | |||
"service":"wfm.HolderService", | |||
"method":"Schedule_calculateTurns", | |||
"request":{ | |||
"id":["parameter", "id"], | |||
"parameters":{ | |||
"paramName1":["parameter", "timeStart"], | |||
"paramName2":["parameter", "timeFinish"], | |||
"paramName3":["parameter", "calendarView"] | |||
}, | |||
"responsePath":"turns" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>В данном примере, в свойства id, paramName1, paramName2 и paramName3 передаются значения параметров из контрола с помощью связи. | |||
= Обработчики в универсальном источнике данных = | |||
Универсальный источник данных, кроме параметров получения выборки, также позволяет проводить простые операции над данными во время их получения. Для обработки данных существует три опциональных параметра: | |||
postProcessItemCode - содержит код, применяемый к каждому элементу выборки. Позволяет модифицировать значения свойств данных при получении | |||
postFilterCode - содержит код, применяемый к каждому элементу выборки. Позволяет фильтровать выбираемые значения, должен возвращать true или false | |||
postProcessCollectionCode - содержит код, исполняемый после загрузки всей коллекции значений | |||
= Возврат данных из сервиса для отображения в контроле = | |||
Следующая статья курса: ''[[Задание 10. Обработка данных]]'' | Следующая статья курса: ''[[Задание 10. Обработка данных]]'' |
Версия от 10:25, 11 марта 2025
Предыдущая статья курса: Работа с внешними системами. Возможности интеграции
Общая информация
Универсальный источник данных (dataSource) - это специализированная структура, описывающая способ получения данных для элементов управления (Controls).

Любой контрол (таблица, карточка график и т.д.) может получать данные для отображения не только из хранилища (используется по-умолчанию), но и из сторонних источников.
Примеры сторонних источников:
- class - набор сущностей класса. По факту является вариантом по-умолчанию
- enum - содержимое перечисления (раздел Enum в приложении Builder)
- data - явно заданный константный массив данных
- code - выполнение произвольного фрагмента кода, возвращающее коллекцию значений для отображения
- action - выполнение метода любого микросервиса
Кроме указания источника данных, dataSource также позволяет задать правила фильтрации данных, выводимых контролом.
Пример использования dataSource для доступа к данным класса с фильтрацией:
{
"kind": "class",
"class_fullMultiName": "creomate_tutorial/contact/Contacts",
"selection": {
"filter": [
"or",
["isnull",["parameter","place"]],
["==",["property","place_id"],["parameter","place"]]
]
}
}
Пример использования dataSource для доступа к данным из перечисления:
{
"kind": "enum",
"enum_fullName": "crm/TaskPriority"
}
Пример использования dataSource для обращения к данным микросервиса:
{
"kind": "action",
"action":{
"service":"wfm.HolderService",
"method":"Schedule_calculateTurns",
"request":{
"id":["parameter", "id"],
"parameters":{
"paramName1":["parameter", "timeStart"],
"paramName2":["parameter", "timeFinish"],
"paramName3":["parameter", "calendarView"]
},
"responsePath":"turns"
}
}
}
В данном примере, в свойства id, paramName1, paramName2 и paramName3 передаются значения параметров из контрола с помощью связи.
Обработчики в универсальном источнике данных
Универсальный источник данных, кроме параметров получения выборки, также позволяет проводить простые операции над данными во время их получения. Для обработки данных существует три опциональных параметра:
postProcessItemCode - содержит код, применяемый к каждому элементу выборки. Позволяет модифицировать значения свойств данных при получении
postFilterCode - содержит код, применяемый к каждому элементу выборки. Позволяет фильтровать выбираемые значения, должен возвращать true или false
postProcessCollectionCode - содержит код, исполняемый после загрузки всей коллекции значений
Возврат данных из сервиса для отображения в контроле
Следующая статья курса: Задание 10. Обработка данных
Предыдущая статья курса: Работа с внешними системами. Возможности интеграции