on 06-12-2007 5:33 PM
The only documentation I could find used multiple deprecated methods. I was hoping someone could help me with the current version API.
I have a Node named DocumentSourceNode in my View Context. In that I have an attribute named DocumentSource of type binary.
In my wdDoInit() I have the code needed to retrieve the file and it reports the correct number of bytes. I then create a node, set the DocumentSource to the byte array and then add it to the node.
I have the OfficeIntegration component set to expert with the dataSource pointing to the DocumentSource attribute.
What I get is a red x ( like a missing image or something). It repors an WDIOSEnvironmentException. Here's the code I have:
try {
IPrivateWorkbenchView.IDocumentSourceNodeNode node = wdContext.nodeDocumentSourceNode();
//ISimpleTypeModifiable mod = node.getNodeInfo().getAttribute("DocumentSource").getModifiableSimpleType();
//ModifiableBinaryType bin = (ModifiableBinaryType)mod;
//bin.setMimeType(WebResourceType.XLS);
IPrivateWorkbenchView.IDocumentSourceNodeElement element = node.createDocumentSourceNodeElement();
String path = wdControllerAPI.getComponent().getURLService().getResourcePath("MultiView.xls");
File file = new File(path);
FileInputStream is = new FileInputStream(file);
int length = is.available();
byte[] bytes = new byte[length];
long bytesRead = is.read(bytes);
is.close();
if (bytesRead < length) {
wdComponentAPI.getMessageManager().reportException("Unable to read file.", true);
}
else {
element.setDocumentSource(bytes);
wdContext.nodeDocumentSourceNode().addElement(element);
wdComponentAPI.getMessageManager().reportSuccess("Loaded file. " + length + " bytes.");
//WDOfficeControlMethods.showDocument(this.wdThis.wdGetAPI(),"OfficeControl");
IWDAttributeInfo info = node.getNodeInfo().getAttribute("DocumentSource");
if (info != null) {
IWDIOSFactory factory = WDOfficeControlMethods.getMethodHandlerInstance(info);
if (factory != null) {
IWDIOSDocument document = factory.getDocumentProxy();
if (document != null) {
wdComponentAPI.getMessageManager().reportSuccess("Status " + document.openDocument());
}
else {
wdComponentAPI.getMessageManager().reportWarning("Null document.");
}
}
else {
wdComponentAPI.getMessageManager().reportWarning("Null factory.");
}
}
else {
wdComponentAPI.getMessageManager().reportWarning("Null attribute info.");
}
}
}
catch(Exception ex) {
StringWriter sw = new StringWriter();
PrintWriter out = new PrintWriter(sw);
ex.printStackTrace(out);
wdComponentAPI.getMessageManager().reportException(sw.toString(), true);
wdComponentAPI.getMessageManager().reportException("" + ((BaseException)ex).toString(), true);
}
Any help would be greatly greatly appreciated.
Hi Tom,
Please set the expertMode property of OfficeControl to true and try again. Hope it resolves your problem.
Regards
Vishal Patel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
2004s SP 9.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Tom, are you working with NW2004 or 2004s? And which SP?
regards
Stefanie
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For those interested the full stack trace looks like this:
com.sap.tc.webdynpro.clientserver.uielib.officecomp.api.WDIOSEnvironmentException at com.sap.tc.webdynpro.clientserver.uielib.officecomp.impl.IOSFactory.getDocumentProxy(IOSFactory.java:100) at com.linxas.formulation.WorkbenchView.wdDoInit(WorkbenchView.java:135) at com.linxas.formulation.wdp.InternalWorkbenchView.wdDoInit(InternalWorkbenchView.java:125) at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doInit(DelegatingView.java:61) at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215) at com.sap.tc.webdynpro.progmodel.view.View.initController(View.java:412) at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200) at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:690) at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:560) at com.sap.tc.webdynpro.progmodel.view.ViewManager.makeVisible(ViewManager.java:774) at com.sap.tc.webdynpro.progmodel.view.ViewManager.performNavigation(ViewManager.java:296) at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.navigate(ClientApplication.java:762) at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.navigate(ClientComponent.java:873) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doNavigation(WindowPhaseModel.java:498) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:144) at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:330) at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143) at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:297) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:706) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:660) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:228) at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:56) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241) at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148) 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:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.