Search The SAP Consultant

Friday, October 06, 2006

SAP Business Transaction Events

I’m extremely sorry that I couldn’t write on my blog for some time because of the assignments that I had to finish for my clients! Today I got some free time and decided to talk about SAP business transaction events!

SAP business transaction events are one type of customer enhancements provided by SAP! On this post I’ll talk about how we can change the logic for duplicate vendor invoice check using SAP business transaction events!

We can access the business transaction events using FIBF

Next we have to find the process interface for duplicate invoice check! To do that, follow the following steps.

  • Select the menu as stated below
  • Execute the info system as stated below
  • All the processes will be shown below
  • Select the process 1110 and click on “Sample function module” as stated below
  • Copy the sample functional module “SAMPLE_PROCESS_00001110” and create “ZSAMPLE_PROCESS_00001110”. Put the customized logic in the functional module “ZSAMPLE_PROCESS_00001110” and activate it!
  • Now go back to FIBF and execute the menu as shown below
  • Define a new product and activate it

  • Now go back to FIBF and execute the menu as shown below

  • Assign the function module “ZSAMPLE_PROCESS_00001110” to the process “1110”and the product that was defined in the earlier step.
  • Bingo!!!!!! Now every time when a vendor invoice is being posted the invoice check will be carried out using the custom logic built into the function module “ZSAMPLE_PROCESS_00001110”. But make sure that the “double invoice check” tick has been put on the relevant vendor masters!

I hope this post about the SAP business transaction events will help your business! Thank you very much for reading my blog! Please feel free to send me your comments!

12 comments:

ruks said...

This post was amazing! It solved a high priority issue for me. Thank you very much Shathees for sharing!
You are awesome!

Yasitha said...

This is very helpful. Thanks a lot Satheesh.

Daniel Nicula said...

Hello,

I am interested in your solution. Do you think it will work also for customer invoices?
Thank you.

Daniel Nicula

Shathees Loganathan said...

Hi Daniel,

This would not work for customer invoices.
Cheers!!!

Bob said...

Hi Shathees,

Have you tried excluding the 'document date' as one of the check criteria using this BTE?
Thank you.

Kind regards,
Bob

Anonymous said...

Hi,

it is really good what you wrote. I need a BTE for processing of a process order, but I coudln't find any. Do you have any ideas? Thank you.
Ali8ce

Anonymous said...

Hi Shatees,

Thanks for your sharing. In note 410799 they talk about using SAMPLE_PROCESS_00005021 as a basis for extending extra fields from table BSEG to the SAP standard extractor 0FI_GL_4.
Do you perhaps have any sample codings that could be used in this case?

Thanks a lot in advance!

Kind regards,

Christophe Posson

dhaval said...

SIR,
I AM NEW TO SAP.
I LEARNED BTE BY UR POST.
MY CONCERN IS HOW MANY NEW FUNCTION MODULE IS CREATED FOR THE SAME EVENT ?

AND IF ALL ARE ACTIVE THEN MEANS ARE FUNCTIONS ARE PROCESSED ?

PLEASE UNDERSTAND ME IF I AM GOIN IN WRONG DIRECTION

Anonymous said...

Hi,

My FICO consultant pass this link to me! I follow the steps which is easy enough, have you got any sample codes to add in the add on customer module!

Best Regards!

Anonymous said...

Hello,

Have you got any sample codes to show me how to make it work as I am not ABAP programmer!

Any help will be appreciated!

Kassim Salazar said...

this is an awesome POST! I just learned about BTEs, thanks to you. it is very useful.
for those "Anonymous" asking for sample codes. I share mine, that validates duplicated invoices.-->

data:
IBKPF LIKE BKPF occurs 0 with header line,
IBSEG LIKE BSEG occurs 0 with header line.
"WRITE 'HELLO WORLD'.
" E_NOSTD = 'X'. --> this X do nothing and post the invoice...

Select * into table ibkpf from BKPF
where xblnr = i_xblnr
and gjahr = i_gjahr
and blart = i_blart.

select * from bseg into table ibseg for all entries in ibkpf
where bukrs = ibkpf-bukrs
and belnr = ibkpf-belnr
and gjahr = ibkpf-gjahr
and bschl = '31'
and koart = 'K'.

LOOP AT IBSEG.
IF IBSEG-LIFNR = I_LIFNR.
MESSAGE e004(ZFI00) WITH IBSEG-BELNR IBSEG-LIFNR.
" MESSAGE ID 'ZFI00' TYPE 'E' NUMBER '004'.

ENDIF.

ENDLOOP.

jowdjbrown said...

I quite like reading an article that can make people think. Also, thanks for allowing for me to comment!
Hong kong offshore company formation