Hidden BADIs
There is a very practical BADI in R3 for developing custom ATP scenarios, named ATP_PUBLISH_RESULTS. But one strange thing is this BADI does not show up in the SE18 queries, for example when doing a query for ATP*. So until recently I did not know about this BADI at all.
But it will show when inputting the full name.
So why is it hidden in SE18 queries? With some debugging it is easy to see that a F4 query in SE18 will go to table SXS_ATTR with ATP* as the pattern for the EXIT_NAME field and with INTERNAL different from X. It turns out that this INTERNAL field marks the BADI as internal (only to be used by SAP) so it becomes hidden from the F4 query in SE18.
So next question was: are there many internal BADIs? It turns out there are about 200 in APO and 400 in R3. So I suppose that it is well worth digging on this table if nothing can be found in the “external” BADIs and exits. Although one should avoid using the internal BADIs I suppose it makes a better option than standard code changes or some extreme hacks.
But it will show when inputting the full name.
So why is it hidden in SE18 queries? With some debugging it is easy to see that a F4 query in SE18 will go to table SXS_ATTR with ATP* as the pattern for the EXIT_NAME field and with INTERNAL different from X. It turns out that this INTERNAL field marks the BADI as internal (only to be used by SAP) so it becomes hidden from the F4 query in SE18.
So next question was: are there many internal BADIs? It turns out there are about 200 in APO and 400 in R3. So I suppose that it is well worth digging on this table if nothing can be found in the “external” BADIs and exits. Although one should avoid using the internal BADIs I suppose it makes a better option than standard code changes or some extreme hacks.