Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

F110 debug - exit FEDI0003

Former Member
0 Kudos

My apologies in advance, as this topic has been posted before. I do realize that there are quite a few threads on this already on the forum, however most, if not all previous postings, don't list a definitive answer aside from 'Thanks, solved problem'. That being said, here is my question:

I am looking to be able to change values in IDoc PEXR2002 prior to the document being created.

I have done the following steps:

1. Create project in CMOD, and activated the following enhancements: FEDI0002 (EXIT_SAPLIEDP_101), FEDI0003 (EXIT_SAPLIEDP_002), FEDI0004 (EXIT_SAPLIEDP_902). Within the code of each exit, I have inserted 'BREAK-POINT' in each. I have even tried being more specific in my code by specifying segment name. All are exits are active.

2. Create entries in table 'FEDICUS' for message type PAYEXT, basic type PEXR2002, and listed all segments of that Idoc. It is my understanding that entries for selected segments must exist in this table in order for the user-exit to get called.

In running multiple payment runs via F110 (interactively), none of my break-points will activate. I have tried running F110 in background, as well as F110S in both foreground/background with the same results.

I have already checked notes 1248868 and 937966. Neither has helped resolve this issue for me.

Anyone else have any ideas or hopefully an answer?

Thanks.

7 REPLIES 7

Former Member
0 Kudos

I can suggest something to analyse..

These user exits are being called from include LIEDPF15 based on some conditions. Put a break point on these IF conditions and see when and how it triggers.

Thanks,

SKJ

0 Kudos

EXIT_SAPLIEDP_902 is the correct exit to use. We use it in our company for manipulating the PAYEXT IDoc before it is sent to the banks for clearing the payment to our vendors.

You need to set and save the parameters and/or proposal in F110 but should not actually run it, if you want your breakpoints to be hit.

F110 only schedules the payment run in background and is designed for business users, who don't want to wait on the run to complete.

Put your breakpoint and run the program RFFOEDI1 through SE38 / SA38, with the payment run date and identification saved in F110. This works perfectly for me.

Revert back if you have any issues.

0 Kudos

Thanks for the feedback so far.

Vishnu- I followed what you said and the breakpoint is indeed being called now. Strange in that since part of the F110 process also includes running RFFOEDI. I would have thought that my breakpoints would have been called as part of F110. Is there something else I am missing here?

Do your Accounting users break up the payment process and use F110 to create proposals only, and run RFFOEDI seperately?

0 Kudos

Hi Fricis Zuments,

I want to add a point on to your discussion, In order to debugg the F110 process first thing you need to understand is programs "RFFOAVIS" 'RFFOEDI1' are used to post the documents.

When user runs F110 in Printout/data medium tab based on the clearing we will be giving the variant name choosing the program

"RFFOAVIS" or 'RFFOEDI1' accordingly. And now put your breakpoint in the program "RFFOAVIS" or 'RFFOEDI1' as per your run.

And from process level of F110 after creating SCHEDULE PROPOSAL, don't run the paymentt run from F110, rather go to SE38 and execute the program "RFFOEDI1" and select the variant which you gave in F110 and also give the "Program run date" and "Identification feature" same as F110's "Run date" and "Identification" by which you can debugg the whole flow of F110.

I hope i might have confused you, if u confused lemme know i will clear tht confusion

Regards

Venkat

0 Kudos

Dear Fricis,

I am glad that I could be of some help to you.

The business users in our company use F110 to do the full payment run as it is more convenient that way.

The reason why F110 did not hit your break points is because it runs RFFOEDI1 as a background job (background jobs are run by the system and are detached from your user session running in foreground that actually has your breakpoints) by using SUBMIT ... VIA JOB construct

I use RFFOEDI1 to debug payment run user exits myself and I don't know anyone who uses it other than for testing purposes. I also don't think anyone would use it to automatically run as a scheduled job even, as payment runs are taking money out of the company bank accounts and business would want to run them through F110 only when they really need to pay.. hahaha )

If your problem is resolved you can set your question to resolved, so that it will help others searching for similar issues in locating this thread more easliy.

Best regards,

Vishnu T

0 Kudos

Thanks again for your input Vishnu and everyone.

From what I have read in some SAP notes (note 1248868 to be exact) as well as other postings, it seems like some are saying EXIT_SAPLIEDP_002 is the correct exit to use, however you are saying EXIT_SAPLIEDP_902 is the correct one. To be thorough in my tests, I decided to place the same code in both of them and try it out. Here is what I put in:

IF segment_name = 'E1EDKU3'.

DATA ls_e1idku3 LIKE e1idku3.

DATA: i TYPE i.

DESCRIBE TABLE edidd_table LINES i.

IF edidd_table-segnam = 'E1EDKU3'.

ls_e1idku3 = edidd_table-sdata.

IF ls_e1idku3-pairzawe = 'A'.

ls_e1idku3-pairzawe = 'D'.

edidd_table-sdata = ls_e1idku3.

MODIFY edidd_table INDEX i.

ENDIF.

ENDIF.

ENDIF.

Essentially, I am trying to change the value for payment method from one value to another. I see the exit getting called when I set an external breakpoint at my top IF statement, however the underlying code gets skipped over, even though the condition has been met.

Do you or anyone see any issues with my logic here?

Thanks!

former_member651693
Discoverer
0 Kudos

Hello all,

Dedug F110.

Run f110 after payment propsal and payment click on printout

uncheck start immediately give start time for 1 hr after. now so to sm37 search for our job

go to step we get

1 SAPFPAYM_SCHEDULE ABAP &0000000042857

2 RFFOEDI1 ABAP &0000000000756

this we need to run in forground . run program SAPFPAYM_SCHEDULE and varient from background job .

now keep break point RFFOEDI1 take varient from background job and delted the job.

for user exit go to SM37:FI_EDI_PAYEXT_PEXR2001_OUT

search :perform store_pexr_segment keep break point

include :LIEDPF15

CALL CUSTOMER-FUNCTION '001'
EXPORTING SEGMENT_NAME = PEXR_EDIDD-SEGNAM
SEGMENT_DATA = PEXR_EDIDD-SDATA
POSITION = AKT_POS
REGUH_DATA = REGUH_IN
REGUP_DATA = TAB_REGUP
IMPORTING I_FIMSG = USER_MSG
TABLES EDIDD_TABLE = PEXR_EDIDD
REGUP_TABLE = TA

Run :RFFOEDI1 it 100% stop @ break point.