Business Case

Validating the input schedule before submitting data to BPC 10 via EPM add-in for excel.  The sample scenario taken here is that set of cells should not exceed 5000 for the data to get saved.

If it exceeds 5000, EPM add-in save option should give out an error message and not save the data.

Solution

Here is an example of an input schedule with the operating expense. Cell B1 has been given a name (named range)  of “rng_Validation”. Cell B1 also contains a formula to validate the above business scenario. The cell returns a value 0 if the validation is not met. The cell returns a value of 1, if the validation is successfully met. 

/wp-content/uploads/2013/08/image001_269070.png

Go to VBA development screen (shortcut Alt + F11) >> Add a new module and paste the following lines.

 
/wp-content/uploads/2013/08/image003_269071.png

Function BEFORE_SAVE()

If Range(“rng_Validation”) = 0 Then

    MsgBox “Please correct the numbers before saving”, vbCritical

    BEFORE_SAVE = False

Else

    BEFORE_SAVE = True

End If

End Function

Results

If the data in the range B4:D4 is greater than 5000 then while saving the data the following error will be displayed and data will not be saved. Subsequently when the error is corrected the data will be saved without any message.

/wp-content/uploads/2013/08/image005_269096.png

Other Options

Since this approach requires least amount of knowledge about the back end, this can be easily implemented. In BPC NW, other options like Write-back badi or UJ_VALIDATIONS can be explored. 

To report this post you need to login first.

10 Comments

You must be Logged on to comment or reply to a post.

  1. Rajesh Balakrishnan

    Hi Badrish,

    Great guide. We had implemented something similar. I have a suggestion to this though. In your example, B4:D4 is hardcoded. You can make that dynamic by using the OFFSET function.

    =IF(MAX(OFFSET(A3,1,1,COUNTA(A4:A1000),COUNTA(B3:ZZ3)))>60000,1,0)

    (Change 1000 and ZZ as per row and column requirements based on estimates)

    In your example, A3 is the point of intersection for the rows and the columns, it will never change.

    I am starting the COUNTA from the first row and column member respectively. So, even if the number of row or column changes, the table will be dynamic enough to consider the change.

    Thanks for the tutorial.

    Rajesh

    (0) 
  2. Jay Gandhi

    Question, I’m trying to make a different function based on whether the user choose Save Workbook or Save Worksheet, I’m using the BEFORE SAVE function well for worksheet but I want a different set of validation checks to be performed if the user selects the Save Workbook selection via the Save Data EPM ribbon area.

    Any suggestions?

    Thanks!

    (0) 
  3. maheedhar challa

    Hi Shriniwas,

    I am trying to use the same logic but my requirement little different I am using this funtion on text, I am comparing two cells values they must be equal the only the user must be able to save the data. There are over 200 rows where I am trying to apply this logic. Is there any way to execute this same logic in my case.

    Regards

    Maheedhar

    (0) 

Leave a Reply