Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Process class not working for V12 #1075

Closed
nicolasbisurgi opened this issue Mar 20, 2024 · 1 comment
Closed

Process class not working for V12 #1075

nicolasbisurgi opened this issue Mar 20, 2024 · 1 comment
Labels

Comments

@nicolasbisurgi
Copy link
Collaborator

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', ''))

@MariusWirtz
Copy link
Collaborator

Closed with #1081

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants