cancel
Showing results for 
Search instead for 
Did you mean: 

BADI FMAVC_ENTRY_FILTER method BUDGET_FILTER does not get called

0 Kudos

I am trying to implement BADI FMAVC_ENTRY_FILTER to control the budget quarterly on Purchase Orders, but method BUDGET_FILTER is not getting called at all. I have checked OSS and SDN but could not find any information why this method does not get called. Please advise.

Regards,
Ram Enaganti

0 Kudos

One more thing, we have maintained filter settings as mentioned in the BADI documentation but still method BUDGET_FILTER does not get called from Purchase Orders.

Accepted Solutions (0)

Answers (5)

Answers (5)

0 Kudos

Thanks Mar and Eli for your help. We will go with your recommendation, budget period dimension.

Regards,
Ram Enaganti

mar_novalbos
Advisor
Advisor
0 Kudos

Hi Ram
As mentioned, the method BUDGET_FILTER will be called when you perform Budgeting operations (enter, supplement, return budget).
Posting a PO is a consumption (posting) operation. The method budget_filter was not designed for that purpose.
If you wish to implement Period wise availability control, this KBA would help you:

2042029 - How to implement Period wise Availability Control in BCS

Eli's suggestion is right, you could think of using Budget Period dimension.

best regards

Mar

0 Kudos

Hi Eli,

I am trying to do the same as in the sample implementation FMAVC_ENTRY_FILTER_SMPL_SPAIN (method BUDGET_FILTER) to split annual budget amount into quarterly or monthly.
I am not able to figure out why this method is not getting called at all during the PO processing.

Below logic is from sample implementation:

c_s_avc_values-lval01 = c_s_avc_values-lval01 * l_filter / 100 .
c_s_avc_values-lval02 = c_s_avc_values-lval02 * l_filter / 100 .
c_s_avc_values-lval03 = c_s_avc_values-lval03 * l_filter / 100 .
c_s_avc_values-lval04 = c_s_avc_values-lval04 * l_filter / 100 .
c_s_avc_values-lval05 = c_s_avc_values-lval05 * l_filter / 100 .
c_s_avc_values-lval06 = c_s_avc_values-lval06 * l_filter / 100 .
c_s_avc_values-lval07 = c_s_avc_values-lval07 * l_filter / 100 .
c_s_avc_values-lval08 = c_s_avc_values-lval08 * l_filter / 100 .
c_s_avc_values-lval09 = c_s_avc_values-lval09 * l_filter / 100 .
c_s_avc_values-lval10 = c_s_avc_values-lval10 * l_filter / 100 .
c_s_avc_values-lval11 = c_s_avc_values-lval11 * l_filter / 100 .
c_s_avc_values-lval12 = c_s_avc_values-lval12 * l_filter / 100 .
c_s_avc_values-lval13 = c_s_avc_values-lval13 * l_filter / 100 .
c_s_avc_values-lval14 = c_s_avc_values-lval14 * l_filter / 100 .
c_s_avc_values-lval15 = c_s_avc_values-lval15 * l_filter / 100 .
c_s_avc_values-lval16 = c_s_avc_values-lval16 * l_filter / 100 .

Regards,
Ram Enaganti

iklovski
Active Contributor
0 Kudos

Hi,

If you want to manage your budget quarterly, use Budget Period account assignment or any other 'free' FM dimension for this matter. I'm not sure how you are going to manage it via the BADI you mentioned.

Regards,

Eli

mar_novalbos
Advisor
Advisor
0 Kudos

Hello Ram

Looking at the method documentation:

Apply filter exit for budget values

Functionality

With this method you can exclude individual budget records from being relevant for a specific availability control ledger by setting the indicator E_FLG_SKIP_ENTRY. In addition, you can modify the values of specific budget records used in availability control by changing the values of the changing parameter C_S_AVC_VALUES.

Requirements

This method is only executed for budget records that pass the filter settings for budget values, as defined in the IMG activity Define Filter Settings for Budget Values.

Parameters

The method offers the following parameters:

  • I_S_BUDGET_LINE: Original budget record (importing parameter of type FMKU_S_LINE)
  • I_S_AVC_LINE: Fields characterizing the availability control data record, for instance, the availability control ledger and the control object (importing parameter of type FMAVC_S_FILTER_BADI_AVC_LINE)
  • E_FLG_SKIP_ENTRY: Indicator for excluding the budget record from the availability control ledger (changing parameter)
  • C_S_AVC_VALUES: Period values of the availability control data record (changing parameter of type FMAVC_S_FILTER_BADI_VALUES)

///////////////
So it applies to Budgeting operations. At the time of posting a PO, you will need to use method POSTING_FILTER to implement your own checks.

Hope this helps you.
Kind regards

Mar

0 Kudos

Hi Mar,

Thank you very much for your suggestion but our requirement is to split the annual budget into quarterly. Based on documentation this can be done only in BUDGET_FILTER method not in POSTING_FILTER. All the filter settings have been mainained but still program does not call the budget method.

Regards,
Ram Enaganti