BTE – Business transaction events “demystified”.
Business transaction events (BTE) are one of the least popular enhancement techniques according to me. One of the reasons could be lack of awareness of exact functionality of how BTE’s work.
My attempt here through this blog is to spread awareness among SAP practitioners who are not aware or partially aware of BTE functionality.
What makes a BTE? 😕
BTE is one of the many enhancements techniques available in ABAP developer’s arsenal 😈 to meet various business needs.
A BTE has a predefined interface which helps to add additional functionality through function module defined in BTE customizing. The BTE is triggered by the SAP with a call to function OPEN_FI_PERFORM_ or OUTBOUND_CALL_ which checks for any active BTE’s in customizing.
Popular misconception that many have is that the BTE functionality/scope is limited to FICO but its not 😎 …BTE can also be effectively used for requirements in OTC, PTP, APO, CRM and IS.
There are two types of interface available for implementing BTE’s:
a) Publish and Subscribe Interface
b) Process Interface
Publish & Subscribe interfaces (P&S)
These generally refer to events as documents being entered into SAP which needs to be sent to legacy systems:
• Master record was created, changed, or blocked
• Document was entered, parked, changed, or reversed
• Items were cleared or reset
What additional functionality can we achieve for above events is below:
• Starting a workflow
• Sending changes to legacy systems.
These interfaces are used to control a business process differently than the way in which it is handled in the standard R/3 System. They intervene in the standard process, and return data to the SAP application.
Using this functionality we can for example mail remittance advices to Vendors.
But what are these options we observe above? What exactly do they mean and which one would I need to choose? 😕
Here is the answer
The option ‘of an SAP application’ is mostly used by SAP for country specific enhancements.
The option ‘of a Partner’ is intended for the use of companies which write additional products to enhance the standard SAP and sell this software. They should have a partner-namespace (something /***/) registered by SAP. So all the functions in these enhancements should begin with that /***/.
The option ‘of a Customer’ is intended for Customer-specific development – all functions used there should be named according to the Y/Z-namespace.
Most of developer community would use ‘of a Customer’ option. ℹ
Sound’s interesting?? 🙂
But how do I find a BTE?
OK lets get to business now 😉
- Use transaction FIBF menu Environment->Infosystem(Processes) to get a list of BTE’s available. Use the Documentation button to see the documentation for each BTE.
- Search the source code for “OPEN_FI_PERFORM” or ” OUTBOUND_CALL_”
Ok I got how to search the BTE now, but how to implement it? 😐
Patience brother 😎 here it is:
Steps to be followed:
- Search the BTE relevant for your requirement using FIBF transaction.
- Copy the sample function module for that BTE into your own ‘Z’ function module and put a break point.
- Goto Products-> Processes(customer) create a new entry and enter the product name description and RFC destination if applicable. Then activate the product by clicking on checkbox ‘A’.
- The next step is to link the function module and the event using the product created. Goto Process Modules -> of a customer and create entry enter the event and the function module for Product created in step 3.
- Now its testing time 🙂 Go to the transaction for which you have created BTE and execute and debugger would stop at break point in ‘Z’ function module which you have created.
The transaction codes to be explored for BTE are below:
BERE Business Event Repository
BERP Business Processes
BF31 Application modules per Event
BF32 Partner Modules per Event
BF34 Customer Modules per Event
BF41 Application Modules per Process
BF42 Partner Modules per Process
BF44 Customer Modules per Process
Hope you had enjoyed reading this blog 🙂