How to get PDF render trace of ABAP webdynpro interactiveForm control
In ABAP webdynpro you can use InteractiveForm control to achieve PDF render, as long as you specify the dataSource of PDF via context node, and form template uploaded via tcode SFP.
In some case you need to know the details about PDF rendering process by ADS, for example the PDF is failed to be rendered, and you want to know the root cause, or you meet with a performance issue of PDF rendering, and you want to find the bottleneck ( is it caused by too many elements in form template, or inefficient script written? ). Then you can follow the steps below to get the detail PDF render trace:
1. set a breakpoint on method CL_FP_PDF_OBJECT~EXECUTE_INTERNAL. Render your PDF as usual. The breakpoint should be triggered.
In the debugger callstack you can also know how the PDF render is triggered from ABAP webdynpro layer.
2. Change the variable _adstrace’s content to 4 in debugger. The source code line 125 gives you a hint that you can just set a user parameter to avoid the manual change on _adstrace in debugger each time.
And maintain the parameter value as 04.
3. Debug until you reach line 218. Click F6 to step over it.
Download the PDF binary code stored in variable l_soapresponse-rp_streams into your local laptop:
Open the local PDF, click the attachment icon as below, then you can find all types of useful information there:
1. the original form template
2. the runtime performance trace file (trace.txt)
3. the xml data file for the pdf (xfd.xml)
4. detail information raised by ADS server during PDF render time (error.pdf)
The error.pdf contains all kinds of information including warning messages raised by ADS, which could be used to improve your form template design.
How are you ? Thanks for sharing this nice and informative document.