cancel
Showing results for 
Search instead for 
Did you mean: 

External Break-point not triggering for OData

Sijin_Chandran
Active Contributor

Hello Gurus,

As evident from the heading am not able to debug DPX_EXT methods because of External Breakpoints not triggering.

We have two systems CED for Backend.

CFD is the Gateway hub where we are registering our backend services.

I kept External Break-point in the DPC_EXT methods and activated the code.

When I am checking the service from CFD's gateway client it's not stopping at the break-point.

Note:

* Am sure the method I have kept the break-point is correct only since they are Custom added EntitySets and also checked by adding hard-coded Texts.

* Did below step as well.

I remember in my earlier projects I was able to do so. Can you all please suggest where I am missing.

Thanks,

Sijin

Sandra_Rossi
Active Contributor
0 Kudos

Session breakpoints work only if the ABAP program runs in the same user session, so they can't work with all HTTP, RFC and so on.

Use external breakpoints instead. Same user and same client.

Sijin_Chandran
Active Contributor
0 Kudos

Hi Sandra,

Actually I have mentioned I have kept External Break-points only.

Thanks,

Sijin

Sandra_Rossi
Active Contributor
0 Kudos

SRDEBUG is obsolete as of ABAP 7.02 (not needed anymore), as explained by note 1766428 - Remote ABAP debugging: changed behavior

Sandra_Rossi
Active Contributor
0 Kudos

Okay, but what about "Same user and same client"?

Sandra_Rossi
Active Contributor
0 Kudos

Side note: in case someone wants to propose to try SRDEBUG, this transaction code was useful before ABAP 7.02 but is not needed anymore, as explained by note 1766428 - Remote ABAP debugging: changed behavior.

Sijin_Chandran
Active Contributor
0 Kudos

Can't even guess why my question was downvoted by someone. Its a genuine issue and all in my previous systems I was able to debug using External break-point set.

Sijin_Chandran
Active Contributor
0 Kudos

Okay, but what about "Same user and same client"?

Hi Sandra,

For the above comments of yours.

Yeah I have same user ID across all systems.

As I said I was able to debug this in my previous Projects. Don't know why it's not working here.

Do I need special authorization from Basis for RFC Debugging ?

Thanks,

Sijin

Ankit_Maskara
Active Contributor
0 Kudos

It would then depend on your Netweaver stack. Which SP are you on ?

Sijin_Chandran
Active Contributor
0 Kudos

Hi Ankit,

System is S/4 HANA 1909.

Initial Shipment Stack

Accepted Solutions (1)

Accepted Solutions (1)

Sijin_Chandran
Active Contributor

Hello All,

The answer was lying in RZ11.

Maintained Parameter 'rfc/ext_debugging' with value '3' in the Back-end system and the debugger started working like a charm.

Thanks,

Sijin

Answers (3)

Answers (3)

Sijin_Chandran
Active Contributor

Just an update:

I was able to Debug this with another alternative. Still why External-Breakpoint is not Triggering is a Mystery only.

Actually the OData am building is for Purchase Order Output.

CED 100 is our DEV system and CED 110 is our cross client system with Data.

So CFD ( Gateway Hub ) accesses CED 110 as a backend only.

What we did we have configured PO Output in CED 110 and by setting local break-points in CED 110 DPC_EXT method's itself I was able to debug and I can continue now.

But still why am not able to debug using External Break-Points is mystery and hence keeping this thread open.

Thanks,

Sijin

Sandra_Rossi
Active Contributor
0 Kudos

Thanks for the info. But did you initially st the external breakpoints in the right client? (110)

I wonder if it could be solved by activating the system debug via SICF?

chaouki_akir
Contributor
0 Kudos

If you are in your dev system, you can add an infinite LOOP in the code you expect to go through. And, with the help of sm50, you will see the process and you can activate the debug. May be there a kind of technical user (like wf-batch for the workflows).

Sijin_Chandran
Active Contributor
0 Kudos

Hi Sandra,

Yes I set the External breakpoints in CED 110 only which is our backend and CFD 110 our FrontEnd where also Backend services are registered. With this workaround anyways my debugging purpose got solved. But I definitely want to explore why its not triggering.

I wonder if it could be solved by activating the system debug via SICF?

This I will search and give a try and update you for sure.

Thanks,

Sijin

Sandra_Rossi
Active Contributor
Sijin_Chandran
Active Contributor
0 Kudos

I will definitely give this blog a try to understand where am missing. And will update for sure.

Sijin_Chandran
Active Contributor
0 Kudos

Hi Sandra,

The blogs talks about setting break-points when you are using ADT.

But here am using SAP GUI only, so I guess this blog won't do the purpose.

Still its a mystery why the external debugger is not triggering and I am really struggling because of that 😞

Thanks,

Sijin

Sandra_Rossi
Active Contributor
0 Kudos

Can you try to activate the "system debug" option via transaction code SICF to see if the debugger then stops at your breakpoint? (NB: it's different from the system debug option in the ABAP workbench)

Maybe SAP considers that the breakpoint in your custom ABAP code is like being in a system program because the first called program is a system program or considered being system (see Armin Beil comments in the comments below the blog post).

Sijin_Chandran
Active Contributor
0 Kudos

Hi Sandra,

In SICF I just tried by setting break-point.

Opened the Odata path in SICF, clicked on EDIT>Debugging>Activate debugging.

Even though it triggered the break-point in Front end but still the break-point didn't stop at the backed DPC_EXT classes.

Moreover I ran /IFWND/TRACES also and it also confirms I am setting break-points at right places.

I have seen there are many threads in SCN like this but many are unanswered. 😞

Thanks,

Sijin

Sandra_Rossi
Active Contributor
0 Kudos

You said "activate debugging", but did you activate it with "system debugging"?

You may also set the debug on all ICF services, no need to restrict to one OData path in your case (SICF > Execute > Menu Edit > Debugging > Activate Debugging > System Debugging)

By the way, even if the blog post is about ADT, I think it's worth reading because some tips also apply to the backend debugger.

Can you also check:

  • that the user is not of type communication or system (debug can't work)
  • that it's authorized to the external debug (note 668252 - Authorization check for HTTP/external debugging)
  • that the profile parameters are fine: abap/ext_debugging_possible is 0 in all systems, "rfc/ext_debugging should be 3 in all systems" (is for http also as explained by Armin Beil here), and check other debug profile parameters too
  • and again, double check: that you have only one client in your CED system (you may develop in 110 but data is in 120) and that you debug the right user?

If you can't find anything, as Armin Beil says in his blog post, you may open a ticket at SAP support BC-DWB-TOO-DBG (SAP GUI Debugger).

Sijin_Chandran
Active Contributor

Hi ,

Issue was with RZ11.

I have updated my answer.

Such a small thing was the issue.

Thanks,

Sijin

Sandra_Rossi
Active Contributor
0 Kudos

Sijin Chandran Thanks for the feedback!

Ankit_Maskara
Active Contributor

Hi Sijin,

Put an external breakpoint in FM - /IWBEP/FM_MGW_HANDLE_REQUEST and see if it triggers or not.

Thanks and Regards.

Sijin_Chandran
Active Contributor
0 Kudos

Hi Ankit,

No it's not triggering.

Additional request:

I have a Primary EntitySet "PurchaseOrder" and a Dependent EntitySet "PODeliveryDetails".

Below is the relationship.

Cardinality is 1 to 1.

So it triggers GetEntity method of "PODeliveryDetails" when I call the Navigation Property from "PurchaseOrder" EntitySet.

My ask is how to access the Key i.e. 'Ebeln' inside the GetEntity method of "PODeliveyDetails" when the GetEntity Method is triggerred via Navigation Property.

Below statement fails:

READ TABLE it_key_tab WITH KEY name = 'Ebeln' INTO ls_key_tab.

It works only if we calling that EntitySet with key directly i.e. without Navigation Property.

I just need to PurchaseOrder value or Ebeln value in this case and I think its possible via "IT_NAVIGATION_PATH"

Can you please suggest. Since debugger is not triggering am not able to check this.

Thanks,

Sijin

Ankit_Maskara
Active Contributor
0 Kudos

Hi Sijin,

Please check the IO_TECH_REQUEST_CONTEXT. It will have all details which you will need.

BR.

Sijin_Chandran
Active Contributor
0 Kudos

Hi Aniket,

I got it from it_key_tab only. I needed the Key of Primary EntitySet when GET_ENTITYSET method of a dependent EntitySet was being called.

Since I was not able to debug I was not able to figure it out. Later I debugged using a workaround which I have mentioned here.

Thanks,

Sijin

Ankit_Maskara
Active Contributor
0 Kudos

It's good still you should know that it_key_tab, it_navigation etc. have become obsolete and io_tech_request_context is only the advised way forward.

Sijin_Chandran
Active Contributor
0 Kudos

Hi Ankit,

I just checked what you suggested.

io_tech_request_context is empty/initial whereas it_key_tab was having value.

Am working on FDP_EF_PURCHASE_ORDER Gateway service. You can set break-point on any of the Dependent Entity of PurchaseOrderNode. io_tech... object is showing initial only.

I did with it_key_tab only and also in the above Standard Project also I could see they have used this only.

Thanks for suggestion.