Skip to Content
-2

Create Filter Based on Property Value

Dear Friends,

I have a script logic in which the value of the SEGMENT dimension is assigned to PROFIT CENTER dimension based on property value of DIMLIST1. While executing this script logic through DMP, I get a error message: “Value of Property (DIMLIST1) for member (P_NONE) in dimension (PROFITCENTER) is empty”The member P_NONE does not have any value for DIMLIST1.How can I modify/filter/skip the following script to not include P_NONE.*XDIM_MEMBERSET AUDITTRAIL = B00*XDIM_MEMBERSET FLOW = F_ACT*XDIM_MEMBERSET RPTCURRENCY = LC,USD*XDIM_MEMBERSET CATEGORY = Budget*XDIM_MEMBERSET TIME = %TIME_SET%*XDIM_MEMBERSET GROUPS = G_NONE*XDIM_MEMBERSET INTERCO = ICNONE*XDIM_MEMBERSET PROFITCENTER = <ALL>*XDIM_MEMBERSET SEGMENT = S9998*DESTINATION_APP = CONSOLIDATIONS*WHEN RPTCURRENCY *IS LC,USD *REC(EXPRESSION = %VALUE%, SEGMENT = PROFITCENTER.DIMLIST1) *ENDWHEN*COMMITThanksVSB

Add a comment
10|10000 characters needed characters exceeded

Related questions

4 Answers

  • Posted on Feb 19, 2019 at 05:50 PM

    Sorry!!!! Do you look on your post results????

    The post is completely unreadable!

    And only very strange people will assign both tags:

    SAP Business Planning and Consolidation, version for the Microsoft platform

    SAP Business Planning and Consolidation, version for SAP NetWeaver

    You don't know what system are you using???

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Feb 20, 2019 at 10:59 AM

    Hi Rahul,

    currently you have

    *XDIM_MEMBERSET PROFITCENTER = <ALL> in your script. So all elements are included. I can think of a number of ways to exclude P_NONE.

    You could create a property in the dimension which has the same value for all elements other than P_NONE
    You could add a *WHEN PROFITCENTER *IS <> P_NONE to the script
    ...

    Regards,
    Arnold

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Feb 20, 2019 at 04:22 PM

    This is indeed a poorly presented question. However, I'm feeling generous without much to do at the airport, so I have "reworded" this question to be more clear and illustrated one of (many) approaches one could use to filter/skip a members. If it were my project, I'd run more efficiently, but this should work...

    -----------------------------------------------------------------

    Dear Friends.

    I have an elementary problem with my Script Logic (which shouldn't surprise anyone based on the incoherent appearance of my question). How can I have my script logic skip/ignore a specific ProfitCenter -- in my case "P_NONE".

    Here's the code I'm using:

    *XDIM_MEMBERSET AUDITTRAIL = B00
    *XDIM_MEMBERSET FLOW = F_ACT
    *XDIM_MEMBERSET RPTCURRENCY = LC,USD
    *XDIM_MEMBERSET CATEGORY = Budget
    *XDIM_MEMBERSET TIME = %TIME_SET%
    *XDIM_MEMBERSET GROUPS = G_NONE
    *XDIM_MEMBERSET INTERCO = ICNONE
    *XDIM_MEMBERSET PROFITCENTER = <ALL>
    *XDIM_MEMBERSET SEGMENT = S9998
    
    
    *DESTINATION_APP = CONSOLIDATIONS
    
    //Here's the answer to your question....
    *WHEN PROFITCENTER.ID
    *IS P_NONE
    //don't do anything....
    
    *ELSE
    
    *WHEN RPTCURRENCY
    *IS LC,USD 
    
    	*REC(EXPRESSION = %VALUE%, SEGMENT = PROFITCENTER.DIMLIST1)
    
    *ENDWHEN //make sure to add a second when
    *ENDWHEN
    *COMMIT
    
    //ThanksVSB
    //You're welcome ����
    
    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Feb 20, 2019 at 08:04 PM

    2 Steven Rider

    The best way will be to use the following code:

    *SELECT(%PC%,ID,PROFITCENTER,DIMLIST1<>'') //%PC% will contain only members with nonempty DIMLIST1
    
    *XDIM_MEMBERSET PROFITCENTER = %PC% //Scope PROFITCENTER to %PC%
    *XDIM_MEMBERSET AUDITTRAIL = B00
    *XDIM_MEMBERSET FLOW = F_ACT
    *XDIM_MEMBERSET RPTCURRENCY = LC,USD
    *XDIM_MEMBERSET CATEGORY = Budget
    *XDIM_MEMBERSET TIME = %TIME_SET%
    *XDIM_MEMBERSET GROUPS = G_NONE
    *XDIM_MEMBERSET INTERCO = ICNONE
    *XDIM_MEMBERSET SEGMENT = S9998
    
    *DESTINATION_APP = CONSOLIDATIONS
    *WHEN PROFITCENTER
    *IS * //already scoped
    *REC(EXPRESSION =%VALUE%,SEGMENT= PROFITCENTER.DIMLIST1)
    *ENDWHEN

    I have removed all useless code!

    P.S. The code can be improved to check that DIMLIST1 contain valid base members of SEGMENT dimension:

    *SELECT(%SEG%,ID,SEGMENT,CALC=N) //%SEG% will contain all base members of SEGMENT dimension
    *SELECT(%PC%,ID,PROFITCENTER,DIMLIST1=%SEG%) //%PC% will contain only members with property DIMLIST1 containing valid base member in SEGMENT dimension
    //Or we can also ensure that %PC% will contain only base members:
    //*SELECT(%PC%,ID,PROFITCENTER,DIMLIST1=%SEG% AND CALC=N)
    
    *XDIM_MEMBERSET PROFITCENTER = %PC% //Scope PROFITCENTER to %PC%
    //Same code as above!
    
    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.