Skip to Content
Personal Insights
Author's profile photo Tapodipta Khan

Controlled usage : Not released Functions


Usage of standard functions in custom code is not something new, and in my experience standard functions are one of most used artefacts in customer code.

When using standard functions release status is one of the most important topics that come up quite frequently.

At the end of this blog you should be able to identify whether a standard function is ok to use in customer code or not. Also, what can be the implications / risks introduced by using such an object.


Different types of functions in SAP:

  • Released for Customer Use.
  • Not Released for Customer Use.
  • Internally released.


Know your function:

Released for Customer use:

  • Go to transaction “SE37” type in a standard SAP function name for this exercise let’s look at a function named “READ_TEXT” and click on Display.
  • This opens the attributes of the function in SE37. Look for Released status field on the right side of screen.
  • Released status should be “Released On” followed by the date when it was released.
  • If a function is in this status it is safe to assume you can use it in Customer code.


Internally Released:

  • Go to SE37 – Enter – “REUSE_ALV_BLOCK_LIST_INIT” click on display.
  • Check the attributes on Released status. You would notice the function is internally released and no dates are available.

Not Released:

  • Follow the same steps as before going to SE37 in this example type in standard BAPI -“BAPISDORDER_GETDETAILEDLIST” click display.
  • Check the attributes and you will find function is not released – This indicates the BAPI is not released by SAP to use in Customer code, and SAP reserve the rights to this function.


Now I know the different function status:

  • Benefit of open source code application is you can find re-usable components and use them in your code.
  • But by using Not released or internally released functions you potentially undertake a risk, sometimes without knowing.


So, what does this mean if I use a Not released function/ Internally released function in a customer code?

  • By setting a function to not released / internally released status SAP is directing customers to expect future changes in these codes.
  • After the customer code is build and deployed to production another support package or via an OSS note application SAP reserves all rights to change the function or even delete if necessary.


Does this mean we should never use the functions and try to build our own customer code?

  • No, we don’t have to. We cannot reap the benefit of Open source code if we cannot use Re-usable library.
  • Also, there will be scenarios / requirements when I cannot do anything else except using a not Released / Internally Released function.



A strong Code base Governance and control is needed to minimize risk of using such a function.

It is an established concept that we cannot always avoid Not Released / Internally Released functions, and these objects can be changed during anytime without notice.


  • Try to find alternative to a not-released function first to meet your requirement.
  • If no alternative is available ensure support organization is aware of this usage and will keep a look out during upgrade or OSS note implementation.
  • Create a repository of these functions that are used in Custom code and where they are used.
    • There are multiple ways to do this.
    • In my experience co-ordinated teams maintain these in Excel, Access Db.
    • Very innovative developers create a where used list within SAP to manage this.
    • From Monitoring point of View Early watch report and other tools can be used to ensure system is running smoothly.


Note:  This article is only applicable for standard SAP functions, for functions that start with Y or Z the code is within customer name space so released status is not relevant.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Matthew Billingham
      Matthew Billingham

      Couple of things - just observations really. RSDRI_INFOPROV_READ wasn't released in the systems I used until a few years ago. Despite the fact that it was referenced as the way you should get data from an InfoProvider in BW!  Also, I remember on one projects the consultant from SAP used a FM in APO... that disappeared the next release causing all sorts of problems, as he was no longer there. SAP did fix it without charge though.

      Author's profile photo Tapodipta Khan
      Tapodipta Khan
      Blog Post Author

      Great example - Yes we had a similar problem. A not released FM was used to determine batch and in next upgrade the program stopped working due to interface changes. Global manufacturing unit  was stopped for few days till this was sorted. Customer lost a hefty amount in process.

      Author's profile photo Matthew Billingham
      Matthew Billingham

      A prime example there of how bad development costs money.

      Author's profile photo Custodio de Oliveira
      Custodio de Oliveira

      In my experience, the best way to use internal released/not released FMs is by wrapping them in a custom class. This will then be called in custom program(s) class(es).