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

  • Björn Reuber
    Björn Reuber Employee, Community Captain
    500 Likes Fourth Anniversary 100 Comments 5 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

  • 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.

  • Etienne CAUSSE
    Etienne CAUSSE Customer
    Fourth Anniversary 250 Up Votes 100 Comments 100 Likes
    edited June 2020

    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
    ------------------------------
    -------------------------------------------
  • Brendan Broughton
    Brendan Broughton Active Partner
    Third Anniversary 100 Comments 100 Up Votes 25 Likes
    edited June 2020
    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
    ------------------------------
    -------------------------------------------
  • Etienne CAUSSE
    Etienne CAUSSE Customer
    Fourth Anniversary 250 Up Votes 100 Comments 100 Likes
    edited June 2020
    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
    ------------------------------
    -------------------------------------------