Page 1 of 1

Running an TI Process by many simultaneous users

Posted: Fri Nov 09, 2012 3:54 pm
by guru1988fortm1
Hi All,

I have an TI process in which i use while loop for to consider each element of an dimension to achieve an calculation logic

z = DIMSIZ('LOB');
While(z >0);
vLOB = DIMNM('LOB', z);

This process will be executed by different country users , so we have country as an parameter
(Note: we have Parallel interaction turned on and the process has source and target creation based on country in the prolog section)

The Problem is that when simultaneous users runs this Process, it puts one user on wait and executes for other user and then proceeds for the users in wait after the completion of first one

So the users in wait feels that the process is running for long time

Since the process is affecting the elements of an dimension , whether cant it be run simultaneously by many users or is there any other way to achieve this :?:

Could anyone advice me on this

Thanks in Advance
Guru

Re: Running an TI Process by many simultaneous users

Posted: Fri Nov 09, 2012 3:59 pm
by qml
The simple answer is no. Multiple metadata changes cannot be done in parallel for the same object (dimension). PI doesn't have anything to do with this as it only allows multiple data changes to happen in parallel.

Re: Running an TI Process by many simultaneous users

Posted: Fri Nov 09, 2012 7:00 pm
by lotsaram
You have given us a snippet of what looks to be a never ending while loop. It might be a good idea to post the entire code and explain what you are trying to do. Why would different users have a need to change a dimension at the same time? There might be an alternative that would meet the same requirement but not involve making changes to the dimension structure.

Re: Running an TI Process by many simultaneous users

Posted: Mon Nov 12, 2012 8:09 pm
by guru1988fortm1
Hi lotsaram,

Thanks for your suggestion!!

This is the code that i am using in the TI Process

My scenario is in such a way that in my source cube, i do not have this LOB dimension

I will take the expenses present at the source cube and mutiply with the allocation percentage present in a different cube called 'Allocationdetail'(this has the LOB dimension)

Since the LOB dimension is present in the target cube, i am using the dimsiz and dimnm to take those elements in the LOB dimension for the allocation

z = DIMSIZ('LOB');
While(z >0);
vLOB = DIMNM('LOB', z);

AllocPrcnt=CellGetN('AllocationDetail',BT,pVersion,Country,Departments,vLOB,pYear,'Allocation Basis');

####-Value ----- is the value from the source cube#########

result=Value*AllocPrcnt;

IF(result<>0);
cellputn(result,'Expense_Allocation',BT,pVersion,Currency,Country,OperatingUnit,Departments,vLOB,pYear,vMonth,PS_Accounts);
Endif;

z=z-1;
END;

So let me know is there any other that we could do for this

Thanks'
Regards
Guru