Planning Analytics

 View Only
  • 1.  ForceReevaluationOfFeedersForFedCellsOnDataChange use

    Posted 2 days ago

    When using ForceReevaluationOfFeedersForFedCellsOnDataChange along with condition feeders, I am currently encountering an issue where data loading becomes extremely slow after applying ForceReevaluationOfFeedersForFedCellsOnDataChange. However, I need to use condition feeders during the feeding process. In this case, do you have any good suggestions or important points I should be aware of?

    samples :

    ['A'] =if(Elisanc('Dim1','ele1',!Dim1)=1,DB('CubeB', !Dim1, !Dim2, 'B'),continue) ;

    feeders;

    [B]=>(if(Elisanc('Dim1','ele1',!Dim1)=1,'CubeA',''),!Dim1, !Dim2, 'A');



    ------------------------------
    manyi sun
    ------------------------------


  • 2.  RE: ForceReevaluationOfFeedersForFedCellsOnDataChange use

    Posted yesterday

    My #1 suggestion is to never use that parameter. There are are very few cases where you actually want feeders to reevaluate that often. Feeders by their very nature are dynamic and evaluate when. 

    1. A numeric cell on the left hand side of a feeder definition goes from 0 to non-zero.
    2. A string cell on the left hand side of a feeder definition change value
    3. A cell on the left hand side of a feeder definition becomes fed, regardless of the value it contains.

    Enabling that parameter is the cause for the TI slowness. Instead of using conditional statements you could use attributes and hierarchies to manage the relationship between A and B.



    ------------------------------
    Ryan Clapp
    ------------------------------



  • 3.  RE: ForceReevaluationOfFeedersForFedCellsOnDataChange use

    Posted 14 hours ago

    Ryan ,Thanks for your suggestion.I have changed to use attributes。



    ------------------------------
    manyi sun
    ------------------------------



  • 4.  RE: ForceReevaluationOfFeedersForFedCellsOnDataChange use

    IBM Champion
    Posted 11 hours ago

    Agreed Ryan - there are very few instances where this is actually required. What I do find interesting is that the default setting on this parameter is T in the standard config file on SaaS or Cloud - whereas I would probably default to F and only turn this on when absolutely needed. Most likely that this config setting is unnecessarily active in many models just because of these defaults!



    ------------------------------
    Johann Kassier
    Enterprise Planning Architect
    Fusion 5
    ------------------------------



  • 5.  RE: ForceReevaluationOfFeedersForFedCellsOnDataChange use

    Posted 2 hours ago

     

     

     Interesting for sure,  I wonder how many models are much slower because of it

     

     

     

     






  • 6.  RE: ForceReevaluationOfFeedersForFedCellsOnDataChange use

    Posted 19 hours ago
    Edited by John O'Leary 19 hours ago

    We are in the same boat. 

    In the impacted cases we drop the rules of the impacted cube(s) in the Prolog and recreate the rules in the Epilog. This works because the loads are out of hours and the rule creation process does not take very long.  I should also add that if your load is conditional on rules in the cube then this won't readily work. The following is our method. 

    ##########################################################################
    ###  Prolog Turn Off Rules after clearing of data (To ensure correct target area cleared)
    ###########################################################################


    #Defines current rule file location
    sRulesFile =  '\\localhost\TM1Servers\xxxx\Data\' | sTargetCube2 | '.rux';

    #Defines Temporary rule file location
    sTempRulesFile = '\\localhost\TM1Servers\xxxx\Source Files\RuleTempFiles\' | sTargetCube2 | '.txt';

    #Defines empty rule file location (file must be created first)
    sEmptyFile= '\\localhost\TM1Servers\xxxx\Source Files\RuleTempFiles\NoRules.txt';

    #Copies rule from current location to temporary location

    #Make sure the target file has been exists before this process is first run as xcopy will otherwise hang
    sCommandLine= 'xcopy /q /y  ' | char(34) | sRulesFile | char(34) | '  ' | char(34) | sTempRulesFile | char(34);


    ExecuteCommand(sCommandLine,1);

    #Loads empty rule to current rule location (i.e. blanks current rule file)
    RuleLoadFromFile(sTargetCube2, sEmptyFile);

    ##########################################################################
    ###  Epilog Turn Rules Back On
    ###########################################################################

    sTempRulesFile = '\\localhost\TM1Servers\xxxx\Source Files\RuleTempFiles\' | sTargetCube2 | '.txt';
    RuleLoadFromFile(sTargetCube2, sTempRulesFile);

    ##

    I looked at using an alternative approach using some of the other rule functions using strings in TI variables but you need to replace single quotes with 2 single quotes and there is no TI Replace function so you need to loop etc and move the relative position each time (Anyway I didn't invest the time but if you are on Server 12 you may need to go down that path)



    ------------------------------
    John O'Leary
    ------------------------------



  • 7.  RE: ForceReevaluationOfFeedersForFedCellsOnDataChange use

    Posted 14 hours ago

    John,thanks,This ti is very useful,But the rules for saving this cube take more than half an hour.

    I probably need to start with rule optimization,At the same time I will try to use this TI.I think the function of this ti is the same as that of the CubeProcessFeeders function.



    ------------------------------
    manyi sun
    ------------------------------