FQEvent 2638 INV: Enrich Invoicing Item for Invoic...
Financial Management Blogs by Members
Dive into a treasure trove of SAP financial management wisdom shared by a vibrant community of bloggers. Submit a blog post of your own to share knowledge.
Event 2638 is processed when an invoice with SUBINV item type is created. In this event, you have the option to change relevance (TOTALREL field) of SUBINV item.
If SUBINV item value of TOTALREL field is set to true item amount will be included in total amount of invoice and business partner is payment responsible for SUBINV item too. In this case source invoice shouldn’t be posting relevant, it will have informative purpose.
If SUBINV item value of TOTALREL field is set to false item amount will not be included in total amount, business partner isn’t payment responsible, item should not be posting relevant and it will have informative purpose.
Notes
The event is called at invoicing of the single invoicing document.
To ensure the consistency of the system, note that you must not use the following language elements in events, unless they were explicitly declared to be allowed for the given event:
COMMIT WORK
ROLLBACK WORK
CALL FUNCTION 'DEQUEUE ALL'
Deletion of locks that you have not set yourself
Implicit database commits triggered by RFC calls or by a WAIT statement
If you update additional data in an event and use the construction PERFORM commit routine ON COMMIT, note that:
At the end of the commit routine, all internal tables from which data was updated must be initialized again to prevent a duplicate update in the next call.
A PERFORM rollback routine ON ROLLBACK must also be called.
In the rollback routine, initialize the same data that is initialized at the end of the commit routine.
If you want to carry out checks in an event, when you issue messages, note that warning messages cause background processing of the process to terminate. You should therefore avoid issuing warning messages if possible. At the most, issue warning messages if the value of SY-BATCH is initial.
Also avoid messages of type A (termination). In the course of background processing, such messages can be captured and processing can continue. However, at the same time the message triggers an implicit ROLLBACK WORK, which can cause data inconsistencies.