Categories: ABAP TutorialsSAP PP

How To trigger IDOC LOIPRO when PO Changed or Created

Trigger IDOC LOIPRO: SAP Process Order IDoc in detail is the main topic of the following SAP ABAP Tutorial.

  • First, the SAP Process Order IDoc structure LOIPRO will be detailed. (covered in Part 1)
  • Second how to fill the extra segment of an IDoc LOIPRO extension (covered in Part 1)
  • Third, the easiest way to Generate Outbound IDoc LOIPRO for SAP PO. (covered in Part 1)
  • Last, How To trigger IDOC LOIPRO when PO Changed/Created.(Part 2)

How To trigger IDOC LOIPRO when PO Changed/Created

In SAP, Process Orders are assimilated to a Master Data. So there is no entry in NACE to trigger an Idoc when an order is updated.
Within the different ways to trigger to create an IDoc LOIPRO once a SAP Process Order is created or update is to implement a BADI. I found that it is the best way to do.

SAP Process Order BADIs

Try to implement the BADI WORKORDER_UPDATE (in SAP Tcode SE18)
Actually the BADI WORKORDER_UPDATE is the Business Add-In PM/PP/PS/PI Orders Operation: UPDATE

The others BADI for Process Order are:

Related Post
BADI Description
WORKORDER_CONFIRM Business Add-In PM/PP/PS/PI Orders Operation: Confirm
WORKORDER_CONFIRM_CUST_SUBSCR Confirmation: Subscreen with Customer's Own Fields
WORKORDER_CONFIRM_EA_APPL Confirmation: Function Calls from EA-APPL
WORKORDER_DFPS_PIC_ATP Defense BADI for Availability Check
WORKORDER_DOCLINKS BAdI: Document Links (Production Orders)
WORKORDER_FINANCIALS Anbindung FIN Add-On an Fertigungs- und Proze aufrag
WORKORDER_GOODSMVT Business Add-In PM/PP/PS/PI Orders: Automatic Goods Movement
WORKORDER_INFOSYSTEM BAdI: PP and PI Order Information System
WORKORDER_MODIFY_SCREEN Screen Adjustments
WORKORDER_PISHEET Business Add-In PM/PP/PS/PI Orders Operation: Discarding of
WORKORDER_REWORK Business Add-In PP Orders Operation: Rework
WORKORDER_UPDATE Business Add-In PM/PP/PS/PI Orders Operation: UPDATE

SAP Process Order BADI WORKORDER_UPDATE

The first step is to define the list of BADI WORKORDER_UPDATE methods. Here the full list of the methods available:

Method Description
ARCHIVE_OBJECTS Archiving Additional Objects
AT_DELETION_FROM_DATABASE Order is deleted from the database (archiving)
AT_SAVE Save Order Time: Dialog
CMTS_CHECK Check: Configurable Warehouse Order Allowed
INITIALIZE Initialization when Importing/Creating Order
IN_UPDATE Save Order Time: Update
NUMBER_SWITCH Swap Tempory Order Numbers with Final Order Numbers
BEFORE_UPDATE Save Order Time: Before Calling Update
AT_RELEASE Release Order Time: After SAP Checks Before Release
REORG_STATUS_ACT_CHECK Reorganization of Order: Status Check
REORG_STATUS_ACTIVATE Reorganization of Order: Follow-Up Action After Status Set
REORG_STATUS_REVOKE Reorganization of Order: Follow-Up Action After Status Reset

Method AT_SAVE – trigger IDOC LOIPRO

To trigger the LOIPRO01 IDoc when SAP Process Order/ Work Order is modified or created, we will rewrite the method AT_SAVE. This method is triggered when the user clicks on SAVE button on PO/WO SAP Tcodes ( COR1/ COR2 ).
The AT_SAVE takes as input IS_HEADER_DIALOG Order Header in Dialog Structure. It is quite enough because it has all the keys to access the SAP PO.

An important point, you must put wrapper you ABAP code in a Function Module and call the processing in BACKGROUND TASK AS SEPARATE UNIT DESTINATION ‘NONE’.
This call will wait until the Main SAP GUI Process for Saving before triggering the IDOC.
The advantages are:

  1. Wait until a COMMIT before triggering the LOIPRO IDoc
  2. Avoid blocked Processing Order – conflict
  3. keep the main flow of the SAP standard Process unchanged
  4. Avoid Stopping Saving the SAP PO if error occurs for IDoc Generation.

An ABAP Sample for creating LOIPRO in AT_SAVE Method would be:

" Call in Background Task in a separate Unit 
CALL FUNCTION 'ZIDOC_CREATE_LOIPRO' IN BACKGROUND TASK
  AS SEPARATE UNIT DESTINATION 'NONE'
       EXPORTING
            message_type = 'ZLOIPRO'
            aufnr        = is_header_dialog-aufnr
            werks        = is_header_dialog-werks
            matnr        = is_header_dialog-matnr.

Check this article about Statement SUBMIT is not allowed in this form which explain how to use the IN UPDATE TASK.

Share
Published by
John

Recent Posts

The Most Important SAP ISU Tables

SAP ISU Tables for Technical master data, for Billing Master Data, Billing and invoicing Tables?…

December 22, 2020

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd Lecture

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd…

November 18, 2020

The Main SAP Dunning Transaction Codes

Dunning is the business practice of informing a customer of past due payment. Dunning letters…

November 28, 2019

SAP Accounts Payable Tcodes & Accounts Receivable Tcodes ( SAP AP Tcodes & SAP AR Tcodes)

SAP AP Tcodes & SAP AR Tcodes: House Banks Tcodes, Advance Payments or Down Payments,…

August 1, 2019

The Most Important SAP Payment Terms Tables (ZTERM, Text…)

What are the main SAP Payment Terms Tables ? What are the related Tables in…

October 21, 2018

The most Important SAP Work Center Tables in SAP PP

Work center consists of master data related to routing of products. It contains data related…

October 21, 2018