Application Development and Automation Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Jigang_Zhang
Active Contributor
0 Likes
4,129

cover.jpg

RFFOEDI1 is the program of 'International Payment Medium - Payment Orders by EDI', which can be used to generate checks from F110 through IDOC with the message type PAYEXT for payment or DIRDEB for direct debit.

If someone needs to manipulate any field values for the generated IDOC, may need to deeply investigate its include program RFFORI14. This article just lists some tips that may help to familiarize with this IDOC processing during debugging.

 

1. Function modules initial with 'FI_EDI_PAYEXT_PEXR2001'

There are 3 major function modules used for IDoc processing inside RFFORI14:

  • 'FI_EDI_PAYEXT_PEXR2001_NEW' will do the initialization per bank for payment instructions, and populate the IDoc header segments from table REGUH (Settlement data from the payment program).
  • 'FI_EDI_PAYEXT_PEXR2001_OUT' will populate the IDoc item segments from table REGUP (Processed items from payment program) and send payment instructions out by calling 'MASTER_IDOC_DISTRIBUTE'.
  • 'FI_EDI_PAYEXT_PEXR2001_END' will deal with the final work when sending payment instructions and provide a final chance to manipulate values through 3 user exits at include program LIEDPF0J.

 

2, Populating IDOC item segments

To determine whether the payment is for Payment with the message type PAYEXT or Direct Debit with the message type DIRDEB, which relies on the Indicator of 'Payment Method Used for Incoming Payments.

01.jpg

It comes from table T042Z-XEINZ at the level of Country Key combined with Payment Method.

02.jpg

Take the processing for payment as an example, the routine 'ITEM_PAYEXT' will perform the item segment filling. 

03.jpg

Then just check which segment you are interested in:

 

 

FORM ITEM_PAYEXT.
  PERFORM FILL_SEGMENT_IDPU1     USING IDOC_PAYEXT.
  PERFORM FILL_SEGMENT_IDPU5_SG  USING IDOC_PAYEXT.
  PERFORM FILL_SEGMENT_EDP03     USING IDOC_PAYEXT.
  PERFORM FILL_SEGMENT_EDP02     USING IDOC_PAYEXT.
  PERFORM FILL_SEGMENT_IDPU2     USING IDOC_PAYEXT.
  PERFORM FILL_SEGMENT_IDPU3_SG  USING IDOC_PAYEXT.
ENDFORM.                               "ITEM_PAYEXT

 

 

There are 3 user exits available here inside routine 'STORE_PEXR_SEGMENT':

05.jpg

One pre-condition for the above 3 user-exit is range RG_SEGNAM populated by routine 'FILL_RG_SEGNAM' at include LIEDPF14. Table FEDICUS controls the segments which need need active user-exit accordingly.

Image 13.jpg

3. Reset after IDOC has been generated

It's precious to have a perfect test case, and you may need to verify new changes back and forth. So just learn how to reset the IDOC and make it ready for the next execution.

06.jpg

1 Comment