Have you ever wondered what function modules are actually ok to use in your own custom programs? There is a field in the function modules attributes that indicates if they are for reuse by customers (“released on”). But how many are actually flagged as reusable? I did a quick query and came up with these figures:
The system I looked at had 467.155 function modules of which 459.526 had no “released on” date (of which 1.698 were BAPIs) and 7.073 had a “released on” date (of which 2.798 were BAPIs). See the released function modules in total below, which shows the decline in function module releases over the years. Climax are the years 1997-1998 which was the introduction of BAPI technology to SAP R/3. To me the chart illustrates the change in development paradigm at SAP: Function modules are a dying breed.
At a TechEd at the end of the nineties I saw a presentation about the Business Address Services. SAP introduced a couple of handy function modules, which I intended to use at my current client. The client refused to use these function modules as they were not flagged as reusable. I contacted the author of the Business Address Services presentation at SAP about this and he came back to me with this: “…we don’t maintain this attribute in function modules anymore…use the function modules I presented…”.
On the other hand, if you set up an OSS message to SAP for anything custom developed using SAP function modules you will definitely get a note 109533 (Use of SAP function modules) saying the function module is not classified as reusable.
As the function module with it’s function group is a bit of a development dinosaur, you should use classes wherever possible. What about SAP classes? Have they got a field that indicates reusability? Why are not all released function modules in the reuse library (SE83)?
I would like to hear from other developers (especially from SAP) what their experiences and thoughts are on this topic…