2009 Sep 24 4:00 PM
Assume I have implemented the following BAdI:
BBP_DOC_SAVE_BADI
Furthermore, assume I have defined a single filter value: BUS2200
Does this mean that my BAdI implementation will be called ONLY
when the filter value is BUS2200.
Is it possible that the implementation will be called for other
filters like BUS2121 and BUS2201?
The reason I ask is this:
Do I have to check the filter value in my implementation to make sure
it is being called for BUS2200? If so, what's the purpose of defining
the filter value in the BAdI implementation?
2009 Sep 24 4:15 PM
Do I have to check the filter value in my implementation to make sure
it is being called for BUS2200? If so, what's the purpose of defining
the filter value in the BAdI implementation?
In the filter you need to specify the variable which contains the desired value.
Like:
W_BO_TYPE = 'BUS2201'.
GET BADI badi_inst
FILTERS bo_type = W_BO_TYPE.
This code will not get any instance of the BADI as you don't have the implementation for this BUS2201. If your variable W_BO_TYPE contains the value BUS2200 than you would get the BADI instance which contains your implementation.
Regards,
Naimesh Patel
Assume I have implemented the following BAdI:
BBP_DOC_SAVE_BADI
Furthermore, assume I have defined a single filter value: BUS2200
Does this mean that my BAdI implementation will be called ONLY
when the filter value is BUS2200.
Is it possible that the implementation will be called for other
filters like BUS2121 and BUS2201?
The reason I ask is this:
Do I have to check the filter value in my implementation to make sure
it is being called for BUS2200? If so, what's the purpose of defining
the filter value in the BAdI implementation?
2009 Sep 24 4:09 PM
Hi,
all the Badi implementations are stored in table SXC_ATTR with active = 'X".
and if the badi has filters are not you can check in table SXC_EXIT where IMP_NAME = 'BADi implemationname"
and EXIT_NAME = BADI name
and FLT_VAL = filter value assgined for the field
Prabhudas
2009 Sep 24 4:15 PM
Do I have to check the filter value in my implementation to make sure
it is being called for BUS2200? If so, what's the purpose of defining
the filter value in the BAdI implementation?
In the filter you need to specify the variable which contains the desired value.
Like:
W_BO_TYPE = 'BUS2201'.
GET BADI badi_inst
FILTERS bo_type = W_BO_TYPE.
This code will not get any instance of the BADI as you don't have the implementation for this BUS2201. If your variable W_BO_TYPE contains the value BUS2200 than you would get the BADI instance which contains your implementation.
Regards,
Naimesh Patel
2009 Sep 24 4:22 PM
Gregory
There is no need to check for the Filter Value at the method level. Since you are implementing BADI based on Filter Value, each unique implementation will be called by the Runtime based on the Filter Value.
Refer [Filter Dependent BADI|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm]
2009 Sep 24 4:37 PM
Hi,
Business Add-Ins may be implemented depending on a specific filter value. Thus Distinct implementations can then be created and activated according to the specified filter value.
In general, if each filter value corresponds to a separate implementation, within the single methods is not necessary to test the values of the filter.
If the definition BADI also has the characteristic of Multiple Use, then it is also possible to create a single implementation valid for multiple filter values. So, in this case in the method implementation may be necessary to test the filter values.
Kind Regards.
Andrea
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |