def update_default_member(self, dimension_name, hierarchy_name=None, member_name=""): """ Update the default member of a hierarchy. Currently implemented through TI, since TM1 API does not supports default member updates yet. :param dimension_name: :param hierarchy_name: :param member_name: :return: """ from TM1py import ProcessService, CellService if hierarchy_name and not case_and_space_insensitive_equals( dimension_name, hierarchy_name): dimension = "{}:{}".format(dimension_name, hierarchy_name) else: dimension = dimension_name cells = {(dimension, 'hierarchy0', 'defaultMember'): member_name} CellService(self._rest).write_values( cube_name="}HierarchyProperties", cellset_as_dict=cells, dimensions=('}Dimensions', '}Hierarchies', '}HierarchyProperties')) return ProcessService(self._rest).execute_ti_code( lines_prolog="RefreshMdxHierarchy('{}');".format(dimension_name))
def get_read_only_users(self, **kwargs) -> List[str]: read_only_users = list() mdx = """ SELECT {[}ClientProperties].[ReadOnlyUser]} ON COLUMNS, NON EMPTY {[}Clients].MEMBERS} ON ROWS FROM [}ClientProperties] """ from TM1py import CellService cell_service = CellService(self._rest) users_with_flag = cell_service.execute_mdx_rows_and_values( mdx=mdx, element_unique_names=False, **kwargs) for row, values in users_with_flag.items(): user = row[0] read_only = values[0] if read_only: read_only_users.append(user) return read_only_users
def _retrieve_mdx_rows_and_values(self, mdx: str, **kwargs): from TM1py import CellService return CellService(self._rest).execute_mdx_rows_and_values(mdx, **kwargs)
def _retrieve_mdx_rows_and_cell_values_as_string_set(self, mdx: str, exclude_empty_cells=True, **kwargs): from TM1py import CellService return CellService(self._rest).execute_mdx_rows_and_values_string_set(mdx, exclude_empty_cells, **kwargs)
def _retrieve_mdx_rows_and_cell_values_as_string_set(self, mdx): from TM1py import CellService return CellService( self._rest).execute_mdx_rows_and_values_string_set(mdx)