Skip to Content

Business Transaction Events (BTEs) have been available as of Release 4.0 and are another technique for implementing program exits, and only program exits.

BTEs are generally found in the general ledger accounting (FI-GL), account receivable and payable (FI-AR and FI-AP) and sales and distribution components.

A BTE has a predefined interface and allows you to attach additional functionality in the form of a service funtion module.You must create funtion module with the parameters you have previously dictated. The BTE is called by the SAP standard program by a call to function OPEN_FI_PERFORM_ or OUTBOUND_CALL_. This function checks if there are any active BTEs according to customizing.

articulobte1.JPG

According to its Interface there are 2 types of BTEs:

Publish & Subscribe interfaces. Can not update data. Possible to have multiple implementations

Process interfaces. Can update date. Only one active implementation

How to find a BTE (2 ways)

  • Search the source code for for “OPEN_FI_PERFORM” og ” OUTBOUND_CALL_”
  • Use transaction FIBF menu Environment->Info System (P/S ). Use the Documentation button to see the documentation for the BTE.

ArticuloBte2.JPG

Implementing the BTE

  • Goto transaction FIBF menu Environment->Info System (P/S )
  • Select the BTE you want to implement. (as below)

  • Double click on Sample function module
  • Then we copy the sample function module to a Z-function module (First create a new function group for the function module) .

        Note: The name of the Z-function module is not important

  • Edit the code in the new function module:

  • Go back to transaction FIBF – Menu Settings->Products -> Of a customer and create a new product which identifies the new product .

        Remember to mark the Active field.

  • We enter the product name description and RFC destination if applicable. The check box A is to activate the product.
  • The next step is to link the function module and the event using the product created. Go back to FIBF menu Settings->P/S function modules->of a customer – Create an entry that links the BTE and Product with the new function module (as below)

articulobte1.JPG

  • And that´s all, we only need to save and activate. 🙂
To report this post you need to login first.

16 Comments

You must be Logged on to comment or reply to a post.

  1. Stephen Johannes

    Another interesting aspect of these events is that the R3 Adapter of the CRM middleware uses these exits to trigger the outbound flow of changes in ERP to CRM and also to enhance the standard transfer on the outbound ERP to CRM side.

    Take care,

     

    Stephen

    (0) 
  2. Shankarnarayan K

    Nice,simple explanation .  But If the Z-FM is created in a separate function group, wont it lose all the global data that is in the function group of the original FM ?

    (0) 
    1. Stephen Johannes

      These are supposed to work with the idea you can only process the data you are given as these are exits.  Never been a problem in my experience when used for SAP CRM middleware processing.

      (0) 
  3. Eric Yang

    Very nice sharing, Borja. We are applying what you mentioned above in our project. However, we may miss something, so that it leads the function module cannot be called in the transactions. Our case is bellow, could you please help us to check and give us an advice.

     

    We want to use FM ZSAMPLE_PROCESS_00001610 which is copied from SAMPLE_PROCESS_00001610, to calculate the value date and update it when running payment proposal by F110.

    To realize it, here bellow is what have done in BTE settings:

    (1) Configure: Settings>Products>…of a customer.

         Create the product:Z_1610, and activate it.

     

    (2) Configure: Settings>Process Modules>…of a customer.

         Select process 00001610, FM: ZSAMPLE_PROCESS_00001610, product: Z_1610

     

     

    To validate the FM is activated in F110, we set up a break point in function module. and Here bellow is the testing FM:

     

    FUNCTION ZSAMPLE_PROCESS_00001610.

    *”———————————————————————-

    *”*”Local Interface:

    *”  IMPORTING

    *”     VALUE(I_PAYRQ) LIKE  PAYRQ STRUCTURE  PAYRQ

    *”  EXPORTING

    *”     VALUE(E_VALUT) LIKE  SY-DATUM

    *”———————————————————————-

    BREAK-POINT.

    I_PAYRQVALUT = ‘20150227’.

    E_VALUT = I_PAYRQVALUT.

    ENDFUNCTION.

     

    That is all. Highly appreciated for your advice.

    Eric

    (0) 
  4. John Vo

    Thanks, very helpful…

    Can we apply this for anothor module (SD, MM…)

    I tried to use with Tcode MIRO, but it can not trigger debuging.

    (0) 

Leave a Reply