Сгруппировать элементы размерности

Для группировки заданных или отмеченных элементов размерности используется метод group_dimensions:

group_dimensions(
        *,
        group_name: str,
        group_level: int = 0,
        dim_items: Union[list, set, tuple] = None,
        position: str = "left",
        dim_id: str = None,
    ) -> dict:

В данном методе обязательно передавать имена аргументов.

В методе используются следующие аргументы:

АргументОписание
group_name: (str)Название создаваемой группы. Необязательный параметр. Если не задан, то название новой группы будет [Название первого элемента группы]_[Название последнего элемента группы].
group_level: (int)

Уровень размерности, элементы которой необходимо сгруппировать. Уровни нумеруются от 0 до N, начиная с верхнего уровня вложенности. Необязательный параметр, по умолчанию считается равным значению 0 (соответствует самой верхней/самой левой размерности).

Параметр учитывается только при отсутствии значения dim_id.

dim_items: (Union[list, set, tuple])

Список элементов самой левой/верхней размерности, которые нужно сгруппировать.
Необязательный параметр. Ожидается один из итерируемых объектов — список, множество или кортеж из строковых значений. 

В список можно вносить ранее созданную группу элементов, тогда остальные элементы будут добавлены к ней.

Если параметр не задан, будут сгруппированы все выделенные элементы левой или верхней размерности заданного уровня. Если параметр не задан и нет выделенных элементов размерности, сгенерируется ошибка.

Если параметр задан и при этом также есть выделенные элементы размерности, значения, заданные в параметре, будут в приоритете над отмеченными. При этом после группировки элементов, указанных в параметре, отметки элементов размерности будут сняты.

Если в параметре указаны элементы вложенной размерности, соответствующие разным элементам родительской размерности, то группа будет сформирована только для первого элемента в списке и других элементов, которые относятся к тому же элементу родительской размерности, что и этот первый элемент.

Чтобы включить указанный в списке элемент в группу необходимо, чтобы до него были раскрыты все соответствующие элементы в родительских размерностях. В противном случае заданный элемент найден не будет.

position: (str)

Необязательный параметр. Возможные значения:

  • left — группировка левой размерности (значение по умолчанию);
  • top — группировка верхней размерности.

Параметр учитывается только при отсутствии значения dim_id.

Пример использования метода:

session.group_dimensions(
        group_name='Группа 1',
        dim_items= ['Январь', 'Февраль'],
        position= 'top',
        group_level=0
    )
или
session.group_dimensions(
        group_name='Группа 1',
        dim_items= ['CREDIT', 'DEBIT'],
        group_level=0     
    )
или
session.group_dimensions(
        dim_items= ['1', '2'],
        dim_id='6072869c',
        group_name='Группа 1'
    )

В результате применения метода возвращается ответ, как при использовании команды view: group.

Пример ответа:

{'state': 1,
 'queries': [{'uuid': 'f28cde72-779ce8a0-3c1f06b2-7a6eddbb',
   'command': {'plm_type_code': 506,
    'state': 28,
    'command_id': '00000000-00000000-00000000-00000000',
    'module_id': 'f28cde72-779ce8a0-3c1f06b2-7a6eddbb',
    'dimension_name': '',
    'name': 'CREDIT_DEBIT',
    'fold_select_status': False,
    'show_inter_total': False,
    'show_global_horz_total': True,
    'show_global_vert_total': True,
    'select_counter': 0,
    'script_action_group_id': 2,
    'dim_id': '05b70473',
    'is_total': False,
    'fact_id': '00000000',
    'sort_type': 0,
    'dim_ids': [],
    'fact_ids': []}}]}


Переименовать группу элементов размерности

Для изменения названия группы элементов размерности используется метод rename_grouped_elems:

rename_grouped_elems(name: str, new_name: str, position: str = "left", level: int = 0) -> dict:

В методе используются следующие аргументы:

АргументОписание
name: (str)Название группы элементов, которое требуется изменить.
new_name: (str)Новое название группы элементов.
position: (str)

Необязательный параметр. Возможные значения:

  • left — группировка левой размерности (значение по умолчанию);
  • top — группировка верхней размерности.
level: (int)

Уровень, на котором расположены сгруппированные элементы. По умолчанию 0.

Пример использования метода:

session.rename_grouped_elems(name='Группа 1', new_name= 'Группа новая')
или
session.rename_grouped_elems(name='Группа 1', new_name= 'Группа новая', position = 'top', level = 1)

В результате применения метода возвращается ответ, как при использовании команды group: set_name.

Пример ответа:

{'state': 1,
 'queries': [{'uuid': 'f28cde72-779ce8a0-3c1f06b2-7a6eddbb',
   'command': {'plm_type_code': 505,
    'state': 5,
    'command_id': '00000000-00000000-00000000-00000000',
    'module_id': 'f28cde72-779ce8a0-3c1f06b2-7a6eddbb',
    'name': 'Группа новая'}}]}