Describe the bug
The Process class has 'ui_data' and 'variables_ui_data' as expected fields when retrieving a Process from TM1. In V12 they are no longer present. I stump across when attempting to run RushTI on a V12 instance as it gets the files firsts to validate them:
Traceback (most recent call last):
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 827, in
if not validate_tasks(tasks, tm1_service_by_instance):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 619, in validate_tasks
process_params = [param['Name'] for param in tm1.processes.get(task.process_name).parameters]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Services/ProcessService.py", line 51, in get
return Process.from_dict(response.json())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Objects/Process.py", line 141, in from_dict
ui_data=process_as_dict['UIData'],
KeyError: 'UIData'
**To Reproduce**
Get a v12 process as a dictionary through Tm1Py
**Expected behavior**
Not to error
**Version**
TM1py 2.0.2
TM1 Server Version: 12.X
**Additional context**
The below _**changes**_ in the class method should solve it:
@classmethod
def from_dict(cls, process_as_dict: Dict) -> 'Process':
"""
:param process_as_dict: Dictionary, process as dictionary
:return: an instance of this class
"""
return cls(name=process_as_dict['Name'],
has_security_access=process_as_dict['HasSecurityAccess'],
**_ui_data=process_as_dict.get('UIData', ''),_**
parameters=process_as_dict['Parameters'],
variables=process_as_dict['Variables'],
**_variables_ui_data=process_as_dict.get('VariablesUIData', ''),_**
prolog_procedure=process_as_dict['PrologProcedure'],
metadata_procedure=process_as_dict['MetadataProcedure'],
data_procedure=process_as_dict['DataProcedure'],
epilog_procedure=process_as_dict['EpilogProcedure'],
datasource_type=process_as_dict['DataSource'].get('Type', ''),
datasource_ascii_decimal_separator=process_as_dict['DataSource'].get('asciiDecimalSeparator', ''),
datasource_ascii_delimiter_char=process_as_dict['DataSource'].get('asciiDelimiterChar', ''),
datasource_ascii_delimiter_type=process_as_dict['DataSource'].get('asciiDelimiterType', ''),
datasource_ascii_header_records=process_as_dict['DataSource'].get('asciiHeaderRecords', ''),
datasource_ascii_quote_character=process_as_dict['DataSource'].get('asciiQuoteCharacter', ''),
datasource_ascii_thousand_separator=process_as_dict['DataSource'].get('asciiThousandSeparator', ''),
datasource_data_source_name_for_client=process_as_dict['DataSource'].get('dataSourceNameForClient',
''),
datasource_data_source_name_for_server=process_as_dict['DataSource'].get('dataSourceNameForServer',
''),
datasource_password=process_as_dict['DataSource'].get('password', ''),
datasource_user_name=process_as_dict['DataSource'].get('userName', ''),
datasource_query=process_as_dict['DataSource'].get('query', ''),
datasource_uses_unicode=process_as_dict['DataSource'].get('usesUnicode', ''),
datasource_view=process_as_dict['DataSource'].get('view', ''),
datasource_subset=process_as_dict['DataSource'].get('subset', ''))
Describe the bug The Process class has 'ui_data' and 'variables_ui_data' as expected fields when retrieving a Process from TM1. In V12 they are no longer present. I stump across when attempting to run RushTI on a V12 instance as it gets the files firsts to validate them: Traceback (most recent call last): File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 827, in
if not validate_tasks(tasks, tm1_service_by_instance):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 619, in validate_tasks
process_params = [param['Name'] for param in tm1.processes.get(task.process_name).parameters]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Services/ProcessService.py", line 51, in get
return Process.from_dict(response.json())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Objects/Process.py", line 141, in from_dict
ui_data=process_as_dict['UIData'],