on 02-09-2006 6:00 AM
Hi,
I am trying to implement a file control which is not working. I have done the following.
I have mapped the data attribute to a context node of type binary.
The content of the file is String array. I have converted the contents to byte and assigned it to data node. But I think the data node should not be assigned the content it is a place holder for the data while downloading. So I have tried by assigning data as well as without it.
And following mappping has been done in code
IWDModifiableBinaryType binaryTypeDownload;
IWDAttributeInfo attInfo = wdContext.nodeConfigFiles().getNodeInfo().getAttribute("DownloadData");
ISimpleTypeModifiable type1 = attInfo.getModifiableSimpleType();
binaryTypeDownload = (IWDModifiableBinaryType) type1;
binaryTypeDownload.setMimeType(new WDWebResourceType(type,"",false));
binaryTypeDownload.setFileName(FileNameSelected);
It gives me this exception :
com.sap.tc.webdynpro.progmodel.context.ContextException: MappedAttributeInfo(DetailsView.Device1.ConfigFiles.DownloadData): must not modify the datatype of a mapped attribute
Please help.
Regards,
Parminder
Hi,
The attribute is mapped to the controller context and you are trying to change it in the view context.
Create a seperate attribute in view and do this or you can write this piece of code in the controller.
Regards
Bharathwaj
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bharathwaj,
The exception problem got solved.Thanks a lot. But I have one more doubt. We are just providing the name of the file and its type to binaryTypeDownload. And now when I click on the download link nothing happens. I want to know from where it will pick the file and the contents. Something is still missing in my implementation.
Regards,
Parminder
Hi,
You have to use FileInputStream in java to fetch the data from the server.
<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileInputStream.html">File Input Stream API</a>
<filestreamobject>.read(bytedata);
"bytedata".. is of type byte , "bytedata" will have the data ..
This will give you a binary value which you set to this a value attribute. After this , onCLick of the downlaod element..you can download the file.
Regards
Bharathwaj
Hi Bharathwaj,
I am doing the following,
Reading the data in byte array :
*******************************************
FileInputStream istr = new FileInputStream(configFile);
BufferedInputStream bstr = new BufferedInputStream( istr ); // promote
int size = (int) configFile.length(); // get the file size (in bytes)
byte[] data = new byte[size]; // allocate byte array of right size
bstr.read( data, 0, size ); // read into byte array
bstr.close();
wdContext.nodeDevice1().nodeConfigFiles().currentConfigFilesElement().setFileContent(data);
*************************************************
And the setting it into the context node
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
String type = FileNameSelected.substring(count);
content = wdContext.nodeConfigFiles().currentConfigFilesElement().getFileContent();
wdContext.nodeDevice1().nodeConfigFiles().currentConfigFilesElement().setDownloadData(content);
IWDAttributeInfo attInfo = wdContext.nodeConfigFiles().getNodeInfo().getAttribute("Binary");
binaryTypeDownload = (IWDModifiableBinaryType) attInfo.getModifiableSimpleType();
binaryTypeDownload.setMimeType(new WDWebResourceType(type,"",false));
binaryTypeDownload.setFileName(FileNameSelected);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DownloadData is the context node mapped to the data attribute of control.
I get an illegal argument exception .
Please suggest.
Regards,
Parminder
Message was edited by: Parminder Kaur
Hi Parminder,
We need to have just one binary attribute to make the FileDownload work. From your code, it seems you
are using three binary attributes, all under the node 'ConfigFiles' :
1) <i>fileContent</i>
wdContext.nodeDevice1().nodeConfigFiles().currentConfigFilesElement().setFileContent(data);
2) <i>DownloadData</i>
wdContext.nodeDevice1().nodeConfigFiles().currentConfigFilesElement().setDownloadData(content);
3) <i>Binary</i>
IWDAttributeInfo attInfo = wdContext.nodeConfigFiles().getNodeInfo().getAttribute("Binary");
Instead if you stick to one attribute, say 'DownloadData', your code should look something like:
*******************************************
FileInputStream istr = new FileInputStream(configFile);
BufferedInputStream bstr = new BufferedInputStream( istr ); // promote
int size = (int) configFile.length(); // get the file size (in bytes)
byte[] data = new byte[size]; // allocate byte array of right size
bstr.read( data, 0, size ); // read into byte array
bstr.close();
wdContext.nodeDevice1().nodeConfigFiles().currentConfigFilesElement().setDownloadData(data);
*************************************************
And the setting it into the context node
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
String type = FileNameSelected.substring(count);
IWDAttributeInfo attInfo = wdContext.nodeConfigFiles().getNodeInfo().getAttribute("DownloadData");
// make sure the attribute name is in correct case
binaryTypeDownload = (IWDModifiableBinaryType) attInfo.getModifiableSimpleType();
binaryTypeDownload.setMimeType(new WDWebResourceType(type,"",false));
binaryTypeDownload.setFileName(FileNameSelected);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
If the mimetype being set is not proper, by default it would take the html format. So it shouldn't throw an error if the mimetype being set is not proper.
Hope this helps,
Best Regards,
Nibu.
Hi,
Following is the stack trace :
java.lang.IllegalArgumentException
at com.sap.dictionary.runtime.DdTypeBinary.format(DdTypeBinary.java:62)
at com.sap.tc.webdynpro.clientserver.data.DataContainer.doFormat(DataContainer.java:1372)
at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1066)
at com.sap.tc.webdynpro.clientserver.data.DataContainer.getAndFormat(DataContainer.java:1038)
at com.sap.tc.webdynpro.clientimpl.html.uielib.standard.uradapter.FileDownloadAdapter.getReference(FileDownloadAdapter.java:260)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.LinkRenderer.render(LinkRenderer.java:45)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:252)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:193)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:41)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:516)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.TabStripRenderer.renderTabStripItemContentFragment(TabStripRenderer.java:1555)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.TabStripRenderer.renderTabStripFragment(TabStripRenderer.java:644)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.TabStripRenderer.render(TabStripRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:739)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:388)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:310)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:71)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.TrayRenderer.renderTrayFragment(TrayRenderer.java:2233)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.TrayRenderer.render(TrayRenderer.java:71)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.FlowLayoutRenderer.renderFlowLayoutItemFragment(FlowLayoutRenderer.java:252)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.FlowLayoutRenderer.renderFlowLayoutFragment(FlowLayoutRenderer.java:193)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.FlowLayoutRenderer.render(FlowLayoutRenderer.java:41)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:516)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ViewContainerRenderer.renderViewContainerFragment(ViewContainerRenderer.java:118)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ViewContainerRenderer.render(ViewContainerRenderer.java:41)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:739)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:388)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:310)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:71)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:667)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ViewContainerRenderer.renderViewContainerFragment(ViewContainerRenderer.java:118)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ViewContainerRenderer.render(ViewContainerRenderer.java:41)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ViewContainerRenderer.renderViewContainerFragment(ViewContainerRenderer.java:118)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ViewContainerRenderer.render(ViewContainerRenderer.java:41)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:739)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:388)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:310)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:71)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:516)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:739)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:388)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:310)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:71)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:667)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:739)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:388)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:310)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:71)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:667)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.UiWindowRenderer.render(UiWindowRenderer.java:45)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)
at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendHtml(HtmlClient.java:555)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:346)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:255)
at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.retrieveData(HtmlClient.java:157)
at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:425)
at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)
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:95)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
Regards,
Parminder
Hi Parminder,
I am extremely sorry for misleading you. I had read only the last post of yours and hence didn't know that you are using a mapped attribute. So, now you need to have atleast two attributes, else you need to write these lines of code in your component controller.
I am sorry
Best Regards,
Nibu.
Strange ! Somewhere you have missed some mapping or some type setting !
Do this.. !
1. Create a byte array using a string. say <some string>.getBytes().
2. Set this to a value attribute(binary) outside the node.
3.Map this to the FileDownlaod element.
4.Set the MIME type as TXT.
Is it working correctly.?
<b>
Make the attribute "FileContent" also as simpletype modifiable as you did for "DownloadContent"</b>
Regards
Bharathwaj
Hi,
I tried the other suggestion also. But still on clicking of FileDownload Control I get the same exception.
Also I am not using the FileContent attribute now. I have just two .
1. Binary -
IWDAttributeInfo attInfo = wdContext.nodeConfigFiles().getNodeInfo().getAttribute("Binary");
- Type Binary and it is in View Context.
2. DownloadData :
type binary
It is getting populated in Component controller where I assign it a byte array and in View the DownloadData mapped to this DownloadData (in comp controller) is assigned to data attribute of download Control.
Regards,
Parminder
Hi,
FileDownload is very simple.There must be something really silly missing here.
Hmmm. I will tell you how it works. It might be easier for you debug it yourself.
FileDownload :
1. The UI Element data should be mapped to a attribute of type binary
2. This attribute should be of <b>IWDModifiableBinaryType</b>.
3. The FileDownload UI shows whatever binary (bytes) are stored in the format specified in the MIME TYPE.
So when you have these three conditions met with some binary data available , the FileDownload element should and will work.
Check if all these conditions are met.To avoid confusion, delete all attributes.Start from scratch , create a valueattribute in the view context and do the steps i have told.
Also use this for reference. <a href="http://help.sap.com/saphelp_nw04/helpdata/en/c8/32cc6922fb6040a768652aaa0b6879/frameset.htm">FileDownload API</a>
Now see if it works. Please don't use data from controller context. Have <b>only one variable directly in view 's context</b> and check.
Regards
Bharathwaj
Hi,
IllegalArguementException problem got solved. I just changed the addElement to bindElement for the context element to which I was adding the data byte array , to add it to the context node. I am surprised how it made so much of difference. Thanks a lot for your guidance and hints.
I am left with now two small problems.
I am downloading 4 types of files - .uconfig, .config, .txt, .bat - .txt and .bat are getting downloaded properly but for the other files the download dialog box does not show any FILETYPE . Also it adds .txt to the files when saving to disk. How can I make it accept all the file types I am using.
I want to fire start the download of a file from code rather than user clicking on the FileDownload control. Can we somehow fire it from the code.
Can you please suggest something.
Regards,
Parminder
Hi Parminder,
Hmmm.You had said.. you got the same exception with a value attribute that was directly under the node.. Thats strange.
Ok.For your MIMETYPE problem, dont set the mimetype and try.(i.e) Dont use setMimeType() at all.
Second, you cannot trigger a automatic download without the UI element.
Regads
Bharathwaj
User | Count |
---|---|
84 | |
24 | |
11 | |
9 | |
7 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.