Skip to Content
Author's profile photo Nanda Anantha

RSR_VARIABLE_F4_RESTRICT_BADI – With Compounding Object Restrictions

Issue:

I have ZGL_ACCNT with two compounding object 1 Chart of accounts 2 Logical Source System.

Created variable and using in BEx Report.

As per my requirement I need restrict F4 values for G/L Account variable specific to Chart of accounts.

Ex

P Table

GGL Account     Chart of Accounts          Source System

123                    A                                   ABC

123                    B                                   ABC

As per my requirement I need to show F4 values for chart of accounts ‘A’.

So, implemented BADI using RSR_VARIABLE_F4_RESTRICT_BADI enhancement and written SELECT statement pull only where Char of accounts equal to ‘A’ and filling C_T_RANGE.

In C_T_RANGE I am able see only 123 and A record.(In Debug)

If I execute report and press F4 I am able see 123 A and 123 B also, I am wondering how 123 B is coming since i filled C_T_RANGE table with 123 A.

Finally I am not able to meet customer requirement ,

Here is the solution , you may found number of documents how to create(http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/4009b0a8-7adc-2e10-48b3-a111c8f407af?QuickLink=index&…) RSR_VARIABLE_F4_RESTRICT_BADI along with that we need add below piece of code to work as expected like 123 A as per above example, while working with compounding objects.



LOOP AT t_zgl_accnt INTO w_zgl_accnt.

           l_s_range-iobjnm = i_iobjnm. “ZGL_ACCNT

           l_s_range-sign = ‘I’.

           l_s_range-option = ‘EQ’.

           l_s_range-low = w_zgl_accnt-zgl_accnt.

           APPEND l_s_range TO c_t_range.

           l_s_range-iobjnm = ‘ZCHRT_ACC’ .” Char of accounts.

           l_s_range-sign = ‘I’.

           l_s_range-option = ‘EQ’.

           l_s_range-low = w_zgl_accnt-zchrt_acc.

           APPEND l_s_range TO c_t_range.

           l_s_range-iobjnm = ‘ZSOSYS’ .” Logical source system

           l_s_range-sign = ‘I’.

           l_s_range-option = ‘EQ’.

           l_s_range-low = w_zgl_accnt-ZSOSYS.

           APPEND l_s_range TO c_t_range.

          ENDLOOP.

Note: Need to add all compounding objects for C_T_RANGE, here chart of accounts and logical source system, adding to C_T_RANGE even though not required for user then only data will restrict and display when you press F4 as expected.

Thank you,

Nanda




Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.