Looping a procedure through non-time entity without Nexel
Just wondering if anyone in the community has found a way to loop a procedure through a non-time entity WITHOUT using Nexel writeback or extract/reload?
At the moment we have to use Nexel Writeback to populate a cube with RANK-Count to get something like the below.
Entity Cube Val
Mbr1 1
Mbr2 2
Mbr3 3
Mbr4 4
Clearing and re-populating this at the start of the loop procedure allows the looping to be limited to certain user/screen selections, and to also automatically pick up any new entity members that may have been read/added from the source system.
We then run an algorithm comparing this cube to our incremental COUNT cube, and where they match we set a 3rd cube to 1, and then select the entity based on this cube.
The main issue with this is the fact that even though Nexel Writeback is called via a procedure, and the user technically doesn't enter ANY data into BOARD that doesn't already exist in BOARD...as far as BOARD licensing is concerned it is still a Data Entry process and therefore doesn't work when the procedure is called by a Lite user.
So I'm wondering if anyone has a way around this limitation without resorting to an extract/reload, and that is still flexible enough to accept ANY entity code (ie - non-numeric), and be limited to user/screen selections when the procedure is called, and automatically pick up any new members that were added/read at the start of the procedure.
Answers
-
Hi,
is the rank fix, or can it change? How often are new Entiy Members are added.
Cause if you have a static rank, you can have a Cube for this and re-use it every time wihtout the need of Nexel/Export/Import
Regards
Björn
0 -
Thanks Bjorn, Rank isn't static, in some cases there is one member added a week, sometimes 2. Our worst case work around is the extract/reload to allow a Lite user to run it...we just try to avoid that where ever possible so t thought I'd see if there was another way that I wasn't aware/hadn't thought of.
0 -
Hi @Brendan Broughton and @Björn Reuber,
Let's say we can generate this cube, I'm interested to know how you perform the loop itself in a procedure ? Can you share the steps that you use once this "ranking cube" is filled ?Thanks,
Etienne
------------------------------
Etienne CAUSSE
Finance Project Manager
France
------------------------------
-------------------------------------------0 -
Hi @Etienne CAUSSE
I use 3 cubes.
Cube A = Rank (1, 2, 3, 4... etc). This should only have a value populated against the "Loop Entity" member/elements that you wish to include in the loop.
Cube B = Counter. This is just a counter cube, does not need the 'Loop entity' as a dimension. The cube is incremented each loop. pre-populate with 1 or 0 depending where the increment happens in the procedure
Cube C = Selector. This cube needs the "Loop Entity" as one of it's dimensions, and it will be populated with a '1' against the required dimension member, and can then used to select the entity.
It is then just a few dataflows.
B =1
Clear C
Populate A (with Rank)
Start of loop
C = if(A=B,1,0) (put's a 1 against the 'first' member of the Loop entity).
Select "Loop Entity" based on Cube C (selects first entity member)
Call required sub-procedure
B = B + 1 (increment counter ready for next loop, where it the next entity member based on the 'rank' cube A)
Remove Selection on "Loop Entity"
Loop
Hope that make sense.
Cheers
Brendan
------------------------------
Brendan
------------------------------
-------------------------------------------1 -
Hi @Brendan Broughton, this totally makes sense
I was thinking it should be something like that, but it's much better to see a version that has been actually implemented and tested !
@Pietro Ferrari : do you have per chance a native function in the roadmap to perform this kind of procedure ?
------------------------------
Etienne CAUSSE
Finance Project Manager
France
------------------------------
-------------------------------------------0