There’s an excellent SAP ECC BAdI (which shall remain nameless) that has a curious recursive property associated with its “set_data” method: if you call this method, then the SAP engine will re-invoke the BAdI because one implication of calling the “set_data” method is, quite rightly, that something has changed.
So, if you have a situation in which you want to call this BAdI and just set_data once, you’ve got to set a first-time/not-first-time switch in memory (fortunately local session memory in this case), so that you don’t send the system into an inifinite loop.
And if you are invoking this BAdI in several situations where you want to set_data just once, you must set the same switch for each situation.
Hmm … is this not an M:1 situation in the realm of metaprocess instead of metadata?
And if so, why shouldn’t someone else besides Ellison and Codd get rich and famous off a piece of common sense masquerading as “logic”?
How about it, SAP? How about a BAdI engine that would let the user tell the engine what’s calling it and a swtich to tell the engine that the caller is calling for the first time or not the first time?
Surely explication of this construct would be worth a whole season of papers at IEEE conferences, and a whole new school of PERM (process entity:relationship modelling.)