Описание метода
Для принудительного обновления мультисферы используется метод update_cube:
update_cube(cube_name: str, new_cube_name: str = None, update_params: dict = None, user_interval: str = "с текущего дня", delayed: bool = False, increment_dim: str = str(), interval_dim: str = str(), interval_borders: list = None, modified_records_params: dict = None) -> dict:
В методе используются следующие аргументы:
Аргумент | Описание |
---|---|
cube_name: (str) | Название обновляемой мультисферы. |
new_cube_name: (str) | Новое название обновляемой мультисферы. Параметр используется только при необходимости переименования. Название должно содержать не менее 5 символов. Допустимы буквы, цифры, специальные символы (кроме: % ^ & = ; ± § ` ~ ] [ } { < >). При попытке задать название, уже существующее в системе для другой мультисферы, к названию обновляемой мультисферы прибавляется порядковый номер в круглых скобках, начиная с единицы. Например, «Мультисфера(1)», «Мультисфера(2)» и т. д. Если в начале или в конце имени мультисферы ввести пробелы, они будут удалены. Например, « Мультисфера » будет отображаться как «Мультисфера». |
update_params: (dict) | Параметры обновления мультисферы. Не используется для мультисфер, созданных из файловых источников («excel», «csv»). |
user_interval: (str) | Интервал обновлений. Может принимать значения: «с текущего дня», «с предыдущего дня», «с текущей недели», «с предыдущей недели», «с текущего месяца», «с предыдущего месяца», «с текущего квартала», «с предыдущего квартала», «с текущего года», «с предыдущего года», «с указанной даты», «с и по указанную дату». Используется только для интервального обновления. |
delayed: (bool) | Откладывает создание мультисферы до первого обновления, аналогично чекбоксу «Создать мультисферу при первом обновлении» в пользовательском интерфейсе. Опция недоступна для интервального обновления. |
increment_dim: (str) | Название размерности для инкрементального обновления. Размерность должна иметь один из следующих типов: uint8, uint16, uint32, uint64, double, date, time, datetime. Используется только для инкрементального обновления. |
interval_dim: (str) | Название размерности для интервального обновления. Размерность должна иметь один из следующих типов: date, datetime. Используется только для интервального обновления. |
interval_borders: (list) | Временные границы для интервалов обновлений «с указанной даты» и «с и по указанную дату». Для обновления «с указанной даты» достаточно передать в список только одно значение времени, а для обновления «с и по указанную дату» — два значения времени, при этом второе значение должно быть больше первого. Формат значений времени: «DD.MM.YYYY». Любые другие значения будут игнорироваться. Используется только для интервального обновления. |
modified_records_params: (dict) | Параметры обновления для типа «обновление измененных записей». |
Словарь update_params имеет структуру:
{ "type": <value>, "schedule": <dict> }
Ключ | Описание |
---|---|
type | Тип обновления мультисферы. Может принимать значения: «ручное», «по расписанию», «интервальное», «инкрементальное», «обновление измененных записей». |
schedule | Расписание обновления мультисферы, позволяющее задать периодичность, время и день недели/число с учетом часового пояса. Если расписание не нужно, то ключ в код не добавляется. Для типа обновление «ручное» задавать расписание не имеет смысла. Для типа «по расписанию» ключ является обязательным. |
Значение ключа schedule имеет структуру:
{ "type": <value>, "time": <value>, "time_zone": <value>, "week_day": <value>, "day": <value> }
Ключ | Описание |
type | Период обновления мультисферы. Может принимать значения: «Ежедневно», «Еженедельно», «Ежемесячно». |
time | Время в формате «18:30». Используется для любого периода обновления. |
time_zone | Часовой пояс в формате «UTC+3:00». Должен соответствовать файлу server-codes.json. Используется для любого периода обновления. |
week_day | День недели. Может принимать значения: «понедельник», «вторник», «среда», «четверг», «пятница», «суббота», «воскресенье». Регистр у значений менять нельзя. Используется только для периода обновления «Еженедельно». |
day | Число месяца. Значениями могут быть целые числа от 1 до 31. Используется только для периода обновления «Ежемесячно». |
Пример использования update_params:
{ "type": "по расписанию", "schedule": { "type": "Ежедневно", "time": "18:30", "time_zone": "UTC+3:00" } }
В словарь modified_records_params передаются поля:
Поле | Описание |
---|---|
modified_records_key | Поле, по которому осуществляется сопоставление данных (имя размерности). Должно быть уникальным на уровне источника. Тип данных — любой. |
modified_records_date | Дата изменения записи (имя размерности). При использовании этого параметра обновления будут обновлены существующие и добавлены новые записи, для которых дата изменения записи в источнике больше, чем в мультисфере. Размерность должна иметь один из следующих типов: date, datetime. |
version | Версия алгоритма. 0 — старый стандартный алгоритм обновления, 1 — новый оптимизированный и ускоренный алгоритм обновления. Необязательный параметр. Если параметр не указан, то используется новый алгоритм. |
Пример использования modified_records_params:
{ "modified_records_key": "id", "modified_records_date": "date", "version": 1 }
В результате использования метода возвращается ответ от сервера save_ext_info_several_sources_response, содержащий в том числе идентификатор мультисферы cube_id.
Пример ответа:
{'state': 1, 'queries': [{'uuid': 'f8fc1f97-9de5d3ab-8b5400f8-75427e57', 'command': {'plm_type_code': 208, 'state': 29, 'cube_id': '4fd79b3b'}}]}
Если для мультисферы при обновлении с помощью метода update_cube указать значения аргументов, соответствующие текущим настройкам мультисферы, то мультисфера будет принудительно обновлена, а настройки будут сохранены. Если указать другие значения аргументов, мультисфера будет принудительно обновлена и настройки будут изменены в соответствии с новыми значениями аргументов.