Обработка данных типа коллекция

Средний

При отображении атрибутов типа коллекция может потребоваться дополнительная обработка данных. 

Для данных типа коллекция Creatio позволяет настроить:

  • Постраничный вывод.
  • Сортировку.
  • Фильтрацию.

Настройка выполняется в секции viewModelConfig схемы страницы Freedom UI.

Настроить постраничный вывод данных 

При загрузке атрибутов типа коллекция Creatio позволяет настроить постраничный вывод данных

В свойстве modelConfig атрибута типа коллекция содержится свойство pagingConfig, конфигурационный объект которого задает  постраничный вывод данных.

Свойство pagingConfig содержит внутренние свойства:

  • rowCount — количество загружаемых за одну загрузку записей. Это  может быть число (константа) или имя атрибута, который содержит это число.
  • rowsOffset — начальная позиция (смещение)  для выполнения загрузки первой порции данных. Это может быть имя атрибута, который содержит это число, но не может быть число. Если свойство не указано, то в качестве значения используется 0. 
Пример постраничного вывода данных
viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        "LookupAttribute": {
            "isCollection": true,
            "modelConfig": {
                ...
                "pagingConfig": {
                    "rowCount": SOME_QUANTITY_OF_DATA,
                    "rowsOffset": "Some_Offset_Of_Data",
                },
                ...
             },
             "viewModelConfig": {
                ...
             },
             "embeddedModel": {
                 ...
            }
        }
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/,

Настроить сортировку данных 

При загрузке атрибутов типа коллекция Creatio позволяет настроить сортировку данных
В свойстве modelConfig атрибута типа коллекция содержится свойство sortingConfig, конфигурационный объект которого задает постраничный вывод данных.

Свойство sortingConfig содержит внутренние свойства:

  • attributeName — сортировка, которая установлена в интерфейсе пользователя (например, сортировка в реестре раздела), и параметры преднастроенной сортировки. Например, Contact_List_Sorting. Используется при загрузке новых данных.

    Важно. В исходном коде схемы страницы Freedom UI нет необходимости устанавливать значения свойств columnName и direction атрибута сортировки, поскольку значением этого атрибута управляют компоненты системы.

  • default — начальная сортировка данных. Представляет собой массив объектов со свойствами:
    • columnName — имя колонки объекта, по которой выполняется сортировка.
    • direction — направление сортировки (asc —по возрастанию, desc — по убыванию).
Пример сортировки данных
viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        "LookupAttribute": {
            "isCollection": true,
            "modelConfig": {
                ...
                "sortingConfig": {
                    "attributeName": "Some_Attribute_Name",
                    "default": [
                        {
                            "columnName": SomeColumnName,
                            "direction": 'asc',
                         },
                     ],
                 },
                 ...
            },
            "viewModelConfig": {
                ...
            },
            "embeddedModel": {
        ...
            }
        },
        "Some_Attribute_Name": {
            "isCollection": true,
            "viewModelConfig": {
                "attributes": {
                    "columnName": {},
                    "direction": {},
                },
            },
         }
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/,

Настроить фильтрацию данных 

При загрузке атрибутов типа коллекция Creatio позволяет настроить фильтрацию данных
В свойстве modelConfig атрибута типа коллекция содержится свойство filterAttributes, конфигурационный объект которого задает фильтрацию данных. Свойство filterAttributes представляет собой массив объектов из свойствами:

  • name — имя атрибута, который содержит фильтр. Например, свойство name имеет значение “FolderTree_items_DS_filter”. Атрибут с этим именем объявлен в секции viewModelConfig и имеет свойство value — объект, который конфигурирует фильтр на основе EntitySchemaQuery.
  • loadOnChange — определяет необходимость перезагрузки коллекции при изменении фильтра.
Пример фильтрации данных
viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        /* Атрибут типа коллекция, к которому применяется фильтр. */
        "FolderTree_items": {
            "isCollection": true,
            "viewModelConfig": {
                ...
            },
            "modelConfig": {
                "path": "FolderTree_items_DS",
                /* Настройка фильтра. */
                "filterAttributes": [
                    {
                        /* Имя атрибута, который содержит конфигурацию фильтра */
                        "name": "FolderTree_items_DS_filter",
                        "loadOnChange": true
                    }
                ]
            },
            "embeddedModel": {
                ...
            }
        },
        /* Атрибут, который содержит конфигурацию фильтра.*/
        "FolderTree_items_DS_filter": {
            "value": {
                "isEnabled": true,
                "trimDateTimeParameterToDate": false,
                "filterType": 6,
                "logicalOperation": 0,
                /* Будут загружены все группы, у которых EntitySchemaName = Account */
                "items": {
                    "6f20f5b6-42e6-d6b8-caee-5e54636b76d1": {
                        "isEnabled": true,
                        "trimDateTimeParameterToDate": false,
                        "filterType": 1,
                        "comparisonType": 3,
                        "leftExpression": {
                            "expressionType": 0,
                            "columnPath": "EntitySchemaName"
                        },
                        "rightExpression": {
                            "expressionType": 2,
                            "parameter": {
                                "dataValueType": 1,
                                "value": "Account"
                            }
                        }
                    }
                }
            }
        }
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/,

В результате будут загружены все группы, у которых EntitySchemaName = Account.