cubewise-code / rushti

Smooth parallelization of TI Processes with TM1py
https://code.cubewise.com/tm1py-help-content/run-processes-in-parallel-using-only-connection
MIT License
9 stars 13 forks source link

Dynamic entries/parametervalues based on MDX #59

Closed MariusWirtz closed 1 year ago

MariusWirtz commented 1 year ago

@nicolasbisurgi pointed out it would be a useful feature if the tasks file could support "dynamic entries" based on MDX. So that users could specify to execute a process n times and to pass each entry from an MDX expression as a value for a process parameter.

Example:

id="1" predecessors="" require_predecessor_success="" instance="tm1_dev" process="sys_tm1_pause" pWait=5
id="2" predecessors="1" require_predecessor_success="1" instance="tm1_dev" process="sys_tm1_pause" pWait=5
id="3" predecessors="2" require_predecessor_success="1" instance="tm1_dev" process="test_per_store" pStore*==*{TM1FILTERBYLEVEL({[store_attributes_cs].[store_attributes_cs].MEMBERS},0)}*||*pPeriod*==*{TM1FILTERBYLEVEL({[period_cs].[period_cs].MEMBERS},0)}
id="4" predecessors="2" require_predecessor_success="0" instance="tm1_dev" process="test_per_period" pPeriod*==*{TM1FILTERBYLEVEL({[period_cs].[period_cs].MEMBERS},0)}
id="5" predecessors="4" require_predecessor_success="0" instance="tm1_dev" process="sys_tm1_pause" pWait=5

What is a suitable replacement for = to pass MDX instead of a value for a parameter in the tasks file?

nicolasbisurgi commented 1 year ago

I tried to find forbidden MDX characters to use here but I could not find one. We can use = or == so that it makes more readable sense.

MariusWirtz commented 1 year ago

If we use = we wouldn't know when an entry is dynamic, because = is already used to pass normal values for params. Or am I missing something?

nicolasbisurgi commented 1 year ago

sorry for that, I meant to say the following: param_name=param_value --> for normal tasks param_name=mdx_expression --> for mdx expanded tasks

MariusWirtz commented 1 year ago

resolved with #70