cancel
Showing results for 
Search instead for 
Did you mean: 

PDF binary in backend, show in WDJ interactive form

joo_ferreira
Participant
0 Kudos

Hello,

I have a backend system, supplying a PDF in binary format "Xstring".

I want to show it in Web Dynpro Java, using an Interactive Form.

I'm trying to bind the binary, to the pdfSource, but a error comes up.

What is the problem?

Best Regards

Accepted Solutions (0)

Answers (2)

Answers (2)

joo_ferreira
Participant
0 Kudos

Thanks

The problem was a missing mimetype (PDF)

Best Regards,

Joã

chintan_virani
Active Contributor
0 Kudos

May be you can post the error and the code here to discuss the issue further.

joo_ferreira
Participant
0 Kudos

com.sap.tc.webdynpro.clientserver.adobe.pdfdocument.base.core.PDFDocumentRuntimeException: Failed to  USEPDF
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.InteractiveForm.afterHandleActionEvent(InteractiveForm.java:418)
	at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.afterApplicationModification(ClientApplication.java:1132)
	at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.afterApplicationModification(ClientComponent.java:895)
	at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doRespond(WindowPhaseModel.java:573)
	at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:152)
	at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
	at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
	at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:319)
	at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
	at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
	at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
	at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
	at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
	at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:46)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
	at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
	at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
	at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
	at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
	at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
	at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
Caused by: java.lang.IllegalArgumentException
	at com.sap.dictionary.runtime.DdTypeBinary.format(DdTypeBinary.java:63)
	at com.sap.dictionary.runtime.DdTypeBinary.toString(DdTypeBinary.java:67)
	at com.sap.tc.webdynpro.clientserver.data.DataContainer.doFormat(DataContainer.java:1405)
	at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1098)
	at com.sap.tc.webdynpro.clientimpl.xdp.renderer.data.XfdRenderer.renderAttributes(XfdRenderer.java:370)
	at com.sap.tc.webdynpro.clientimpl.xdp.renderer.data.XfdRenderer.renderElement(XfdRenderer.java:221)
	at com.sap.tc.webdynpro.clientimpl.xdp.renderer.data.XfdRenderer.renderLeadSelectedElement(XfdRenderer.java:183)
	at com.sap.tc.webdynpro.clientimpl.xdp.renderer.data.XfdRenderer.render(XfdRenderer.java:79)
	at com.sap.tc.webdynpro.clientserver.renderer.AbstractRenderManager.render(AbstractRenderManager.java:62)
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.AdobeFormHelper.getDataStream(AdobeFormHelper.java:537)
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.AdobeFormHelper.getDataStream(AdobeFormHelper.java:1047)
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.AdobeFormHelper.getDocumentContextForXMLExchange(AdobeFormHelper.java:907)
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.InteractiveForm.afterHandleActionEvent(InteractiveForm.java:365)
	... 29 more


wdContext.currentContextElement().setPdfbinary(); (type binary)

the backend data, is byte[], and starts with 25 50 ... (it's ok, confirmed in a HEX editor)

Regars

Edited by: Joao.Ferreira on Aug 19, 2010 5:02 PM

chintan_virani
Active Contributor
0 Kudos

Try changing the mode to updateDatInPdf or generatePDF. Also have you installed the Adobe Credentials for working with Interactive forms?

joo_ferreira
Participant
0 Kudos

Thanks for the fast answer.

Yes i have adobe credentials installed.

Using generatePdf:

com.sap.tc.webdynpro.clientserver.adobe.pdfdocument.base.core.PDFDocumentRuntimeException: Failed to  GENERATEPDF
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.InteractiveForm.afterHandleActionEvent(InteractiveForm.java:418)
	at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.afterApplicationModification(ClientApplication.java:1132)
	at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.afterApplicationModification(ClientComponent.java:895)
	at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doRespond(WindowPhaseModel.java:573)
	at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:152)
	at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
	at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)

Caused by: java.lang.IllegalArgument Exception
	at com.sap.dictionary.runtime.DdTypeBinary.format(DdTypeBinary.java:63)
	at com.sap.dictionary.runtime.DdTypeBinary.toString(DdTypeBinary.java:67)
	at com.sap.tc.webdynpro.clientserver.data.DataContainer.doFormat(DataContainer.java:1405)
	at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1098)
	at com.sap.tc.webdynpro.clientimpl.xdp.renderer.data.XfdRenderer.renderAttributes(XfdRenderer.java:370)

And usign updateDataInPdf: I think is trying to get the template, I dont want it, because the full document comes from the backend

Caused by: com.sap.tc.webdynpro.services.exceptions.WDIllegalArgumentException: The specified resourceName '' is invalid.
	at com.sap.tc.webdynpro.serverimpl.core.url.AbstractURLGenerator.getPrivateResourcePath(AbstractURLGenerator.java:437)
	at com.sap.tc.webdynpro.services.sal.url.core.URLGeneratorInternal.getPrivateResourcePath(URLGeneratorInternal.java:125)
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.AdobeFormHelper.getTemplateMap(AdobeFormHelper.java:598)
	at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.AdobeFormHelper.getTemplate(AdobeFormHelper.java:1002)

Thanks

Edited by: Joao.Ferreira on Aug 19, 2010 5:21 PM