In the context of Transformations you can choose for rule type Formula. SAP delivered a Formula Builder with many ready-to-use Formulas. It is even possible to extend the Formula Builder with your own custom Formulas by implementing Business Add-in (BAdI) RSAR_CONNECTOR.

My requirement was not only to deliver such a custom Formula. I also had to add a message to the Monitor Log in case a certain condition was met. In this blog I would like to share with you how to handle such a requirement and to discuss some implementation aspects.

BAdI Implementation

Custom Formulas can be made available by implementing classic BAdI RSAR_CONNECTOR. Next to the on-line BAdI documentation you can refer to the following documents for detailed implementation instructions:

Result of my implementation is a new custom group with custom Formulas.

Figure_1_Example_Custom_Group.jpg

Figure 1: Example custom group with custom Formulas

The last custom Formula is used in the example Transformation rule.

Figure_2_Example_Transformation_Rule.jpg

Figure 2: Example Transformation rule with a custom Formula

Monitor Log Messages

Implementing the BAdI was actually the easy part. It was not so easy to implement Monitor Log messages in the custom Formula.

For reference purposes I used standard Formula LOG_MESSAGE. I copied the relevant source code from the standard Formula and appended it to my own implementation. Please refer to line 12 to 17 in the next screenshot.

Figure_3_Source_Code_BAdI_Implementation.jpg

Figure 3: Source code in BAdI implementation

Unfortunately, my custom Formula did not send any messages to the Monitor Log. After some investigation I found that also standard Formula LOG_MESSAGE did not send the messages to the Monitor Log.

I raised an SAP Support ticket and it turned out to be a program error. After implementing SAP Note 2285154 – 730SP15:Standard formula function LOG_MESSAGE doesn’t send the issue was solved for the standard Formula. However, the custom Formula still did not send any messages.

Diving a bit deeper I found an interesting explanation. The generated Transformation program is based on template programs such as RSTRAN_RULE_TMPL_ROUTINE.  In the source code you can see how the Formula routine is composed. Pay attention to line 173 in the next screenshot.

Figure_4_Template_Program_Transformation_Rule.jpg

Figure 4: Template program for Transformation rule

The source code of line 174 to 180 is only applied if the Formula contains string LOG_MESSAGE.

So the “hidden feature” is that you have to include string LOG_MESSAGE in the technical name of the custom Formula. Only then the crucial source code is appended to the Transformation rule routine in the generated program.

Figure_5_Generated_Transformation_Program.jpg

Figure 5: Generated Transformation program

Conclusion

In this blog I demonstrated how to send a message to the Monitor Log in the context of a custom Formula. You have to append similar source code to the BAdI implementation as found in standard Formula LOG_MESSAGE. A small “hidden feature” is that you also have to include string LOG_MESSAGE in the technical name of the custom Formula. Only then crucial source code is appended to the Transformation rule routine in the generated program. Now the messages are correctly sent to the Monitor log.

To report this post you need to login first.

6 Comments

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

  1. Philipp Schornberg

    Nice article and thanks for the “investigation” with the monitor message!

    It would be interesting to know, why the requirement for “LOG_MESSAGE” in the name of the function was made.

    (1) 
  2. Philipp Schornberg

    I just thought about a bit off topic question:

    Since AFAIK all the built-in formulas are HANA optimized, they’re probably going to be used a lot more in the future.

    Is it possible to create HANA optimized custom formulas by yourself? Would BW even check such a thing?

    (0) 
    1. Sander van Willigen Post author

      Hi Philipp,

      First of all, thanks for your positive feedback.

      At the moment I do not have experience with creating HANA optimized custom formulas. As far as I understood there is a limited set of standard HANA optimized formulas which are taken care of by SAP (i.e. converted to HANA SQL script / stored procedures, etc). I do not expect that there is any standard SAP functionality to dynamically convert the logic of custom formulas. It might be that implementing an ABAP Managed Database Procedure is a work-around in realizing a HANA optimized custom formula.

      I suggest to create a new Discussion in SAP BW Powered by SAP HANA to get a second opinion.

      Best regards,

      Sander

      (0) 
      1. Philipp Schornberg

        Since it’s possible from BW 7.5 SP4 to also create field based HANA SQL Script routines (not only expert routines for the whole transformation), I don’t think any workaround (if it exists) with formulas is necessary there any more. So that would be the solution in my opinion.

        (0) 

Leave a Reply