SAP Process Order IDoc LOIPRO – Structure, User-Exit and Outbound Processing

SAP Process Order IDoc in detail is the main topic of the following SAP ABAP Tutorial.
The topics will be splited into the following 4 subtopics:

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

SAP Process Order IDoc LOIPRO Structure

LOIPRO Message & Basic Type

LOIPRO is the Mesage Type for SAP Process Order IDoc.The basic Types available in ECC 6 system for example are:

  • LOIPRO01 SAP IDOC for Master production order
  • LOIPRO02 SAP IDOC for Production Order (MES Integration)
  • LOIPRO03 SAP IDOC for Production Order (SAP ME Integration)

Let focus on SAP Process Order Master Data (LOIPRO01). for the rest of the ABAP Tutorial.
Read more on SAP Process Order on help.sap.com ( Integration of Production Orders)

IDoc LOIPRO01 Structure

In a last SAP system version, here the different segments which compose the IDoc LOIPRO01 for Master production order

  • E1AFKOL Production order header (AFKO, AUFK)
    • E1JSTKL Production order status for header (JEST)
    • E1AFABL Master Production Order Relationships (AFAB)
    • E1AFFLL Production Order Sequences (AFFL)
      • E1AFVOL Production order processes (AFVV, AFVC)
        • E1JSTVL Production order status for process (JEST)
        • E1RESBL Reservation/dependent requirements (RESB)
        • E1AFUVL Production Order Suboperations (AFVV,AFVC)
          • E1JSTUL Production order status for subprocesses (JEST)
          • E1KBEUL Capacity requirements records for subprocesses (KBED)
        • E1KBEDL Capacity requirements records for processes (KBED)
    • E1AFPOL Production order items (AFPO)

Generate Outbound IDoc LOIPRO for SAP PO

Thank to a SAP Standard Function modulen there is no need to write the LOIPRO01 IDoc Segment by segment and field by field. To generate an outbound IDoc for SAP Process Order, call the function CLOI_MASTERIDOC_CREATE_LOIPRO ( Create master IDOC for message type LOIPRO ).

Here the signature of CLOI_MASTERIDOC_CREATE_LOIPRO function:

You have with all the information, the different pieces how to trigger  LOIPRO01 Idoc when SAP Process Order is created or Updated even how to fill the extension segments for the SAP Process Order IDOC.

SAP PO IDoc LOIPRO Extension

For most of case, the Standard IDoc LOIPRO01 is enough to replicate through ALE the Process Order.
If you want to extend the LOIPRO01 IDoc, first create the extra segments in WE31,then  create a new Extension for LOIPRO01 in WE30 and assign the new segments.

IDoc LOIPRO01 UserExit

The question now, is how to fill the extra segments for LOIPRO extension ?

Simply, use the UserExit, EXIT_SAPLLOI1_002. Do not forget to use a WHEN Statement in order to process the business logic only for the extension you have created.
An exemple of implementation in the EXIT_SAPLL01_002 include would be

For information, the EXIT_SAPLLO1_00* exits are:

User Exits for LOI Interface Description
EXIT_SAPLLOI1_001 User exit for planned orders
EXIT_SAPLLOI1_002 User exit for production orders
EXIT_SAPLLOI1_003 User exit for current stock/requirements lists
EXIT_SAPLLOI1_004 User exit for run schedule headers
EXIT_SAPLLOI1_005 User exit for BOMs
EXIT_SAPLLOI1_006 User exit for routings
EXIT_SAPLLOI1_007 User exit for work centers
EXIT_SAPLLOI1_008 User exit for hierarchies/resource networks
EXIT_SAPLLOI1_009 User exit for calendars

How To trigger IDOC LOIPRO when PO Changed/Created

Continue to the next post explaining  How To trigger IDOC LOIPRO when PO Changed/Created

Continue How to Trigger LOIPRO IDOC

Sab125

Hi. I have been working as SAP Technical and functional for a decade. Through this blog, I am trying to share with you my experience. Hopefull, it makes your ways easier path ...Sab

Leave a Reply

Your email address will not be published. Required fields are marked *