File Name As content of a Feild in Form
Hi Gurus,
I had a requirement , When i click on the Save option in the Form , I need to get the File name as Value Of a Feild in the Form...!
i more doubt is there any way to disable the Save Option in the Form...??
Edited by: Prakash Naga on Nov 8, 2010 5:32 PM
Would you suggest to use Ideaplace for this?
Have you ever visited? Voted? Commented? Posted an Idea? Would be great!
I had a discussion with Kuhan Milroy who cares about the IP and he told me that this is just a beginning and not all the internal SAP teams which work on products/ services come to Idea place. I am afraid we will have to wait a little more to get th Adobe forms on board. But let´s not forget about it, let´s try.
Cheers Otto
p.s.: I remember I posted an Idea asking for a Idea place session/ topic about our Adobe forms. I don´t think the Idea is "DELIVERED":))
Similar Messages
-
Problem with non-ASCII file name in content disposition header
Hi All,
I am facing some problems with the non-ASCII file name incase of content-disposition header. I read from the RFC 2183 that if the file name contains non-ASCII characters then the same should be encoded before sending to browser. I did the same but realized 2 problems:
1. The name of the file is truncated in case the file name is slightly long for e.g. �����������j�b�g��������������������������.txt
2. Also when the same file is opened in notepad, the title is showing encoded name %E6%9C%80%E4%B8%8A%E4%BD%8D.....
Overall, I feel that the browser is not understanding or responding to the encoded header values.
Is there any solution to this problem? I am using Microsoft IE 6.0.
The code snippet is given below:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String fileName = "�����������j�b�g��������������������������.txt";
fileName = URLEncoder.encode(fileName, "UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
resp.setContentType("application/download-binary");
String s = "This is inside txt file";
resp.getOutputStream().write(s.getBytes("UTF-8"));
return;
}Any help or pointer would be highly appreciated.
Thanks and Regards,
AshishThe MIME standards for non-ASCII filenames are not widely implemented.
Many mailers use an ad hoc method for encoding filenames. JavaMail
supports both methods, but you need to set properties, such as the
mail.mime.encodefilename property. See the JavaMail javadocs for
the javax.mail.internet package. -
I want to search by FILE NAME not CONTENT!
Whenever I do a search, using either Spotlight or a Finder window, the results displayed are by "Content." Then I have to click "File Name," because 9.9 times out of 10, that's how I want to search. How do I get the search to default to File Name?
CMDSHIFTF instead of CMD+F.
-
Internal File Names within Content Areas
I have a problem where I have loaded up a series of inter-linked HTML files created in an HTML editor (e.g. Dreamweaver). They all exist within a folder and all the links work. As soon as I amend a file and reload it, it gets a new name on the database (for example index_0.htm and then index_1.htm). Therefore because the name has changed the links no longer work. I have item versioning switched off in the content area and the folders where the items reside.
Is there any way around this problem?
nullThis behavior has been fixed for Portal 3.0.8, which is going to be part of 9iAS release 1.0.2.1, due out later this month.
In the meantime, perhaps you could have dreamweaver update the links for your files as part of a dreamweaver "site" definition. If you update the name for one file say from ("myfile" to "myfile_1", all the other links would then be automatically updated by dreamweaver to reflect that). What version of Portal are you currently using? 3.0.6 or 3.0.7? -
10.4.4 Find by File Name, NOT CONTENTS !
I HATE Find by Contents that Spotlight does. It's like Google giving 1,000,000 completely irrelevant articles. What a Brain Damaged idea to make as THE DEFAULT. Arrrgghh.
Can you imagine a room full of people, and you say "Charlie?" and everyone answers "Yes" because they know of Charlie? YOU CAN"T HEAR CHARLIE ANSWER !!!
I only ever search by contents of files perhaps ONCE PER YEAR.
Is there an Easy Way to just search by name?Just to add a bit to MacOSXHints article:
If you installed Developer Tools you can use Property List Editor to make your changes to the default_smart.plist file.
Also, you can avoid the spinning beach ball when you type if you first put the search window into list view (command-2). You can also have this come up as the default view with another edit to the plist--Add a ViewOptions Sibling after the Version key, containing a Child of ViewStyle with the class String, value of Nlsv. I put the version of the plist that I use HERE. Be sure to work on a copy and to save the original! Also make sure your permissions are correct after you finish, and remember to relaunch the Finder.
The only remaining problem is that there is no way Tobias Welti and I could discover to eliminate the Search field altogether, nor to have the cursor appear in Name:Contains instead as the default.
Francine
Schwieder -
Can't search contents of files only file names.
I am really stuck guys. It's been aggrevating me for days. I tried to download 3rd party programs for searching in files and it still doesn't work. I checked the forums here and people only have trouble searching for kinds of files. Even when I use search strings like "contents" or "description" it still will only look for file names not contents.
It's frustrating because I am typing up my own personal book and I am in the process of fixing all the mistakes which requires searching by contents in my folder where my files are stored!
Thanks in advance!I've tried various file types.
I tried adding my HD to the list and literally waited 1 minuted but to no avail.
The next step is probably reinstalling Snow Leopard, right?
By the way, I mostly use Finder for searching, so how would I enable the indexing there? Or is it only spotlight that has this indexing thing? -
How can I add form field value to the file name in save as dialog box
I do not want the form to be saved automatically, just want the form to auto populate the "file name" only.
A little background on the forms I want to use: My company has 70 retail outlets, I'll use one of our pdf forms called an "Incident Report" as an example. I would like for a store manager to be able to complete the form, then email the form to the main office (I already have javascript to add field values and form name to the email subject line), once the main office receives it, I want for them to be able to file the pdf electronically on our server. We have mutliple forms that we use so I do not want any of the forms to automatically save anywhere, (at this time anyway) I just want the office personnel to be able to click "save as" (or whatever they will need to click) and the form automatically add certain field values from the pdf they have received, of which will be different each time the form is sent to the office (Date, store #, employee name etc.) in addition to the name of the form in the "File name" of the "Save As" dialog box. The main office employees will decide into which server file the pdf should be saved.
I'm using Acrobat 8 professional, the stores and office personnel use Adobe reader.
One little note: We currently print and file a lot of paper on a daily bases, as soon as I can get this to work, we are going green.
Me and a lot of trees in this will really apprecitate any help you can give with this! :-)You might want to take a look at the document "Developing Acrobat Applications Using JavaScript" (js_developer_guide.pdf) which is part of the Adobe Acrobat SDK, which can be downloaded here. Read the "Privileged versus non-privileged context" (p. 45ff.). You will find an example for "Executing privileged methods in a non-privileged context". Should be almost exactly what you are looking for.
Small Outline: For security reasons ("the user always has to know what's going on") you are not allowed to use the "Doc.saveAs"-method without the user permission (--> in a non-privileged context). In order to reach the goal of a privileged context you can use a trusted function. You do this by creating a JavaScript file (*.js) in either the Application-JavaScript-Folder (default location on Windows systems: "%ProgramFiles%\Adobe\Acrobat 10.0\Acrobat\Javascripts") or the User-JavaScript-Folder (default location on Windows systems: "%AppData%\Adobe\Acrobat\10.0\JavaScripts"). Add the following content to the new file:
myTrustedBrowseForDoc = app.trustedFunction( function ( oArgs ) {
app.beginPriv();
var myTrustedRetn = app.browseForDoc( oArgs );
app.endPriv();
return myTrustedRetn;
myTrustedSaveAs = app.trustedFunction( function ( doc, oArgs ) {
app.beginPriv();
var myTrustedRetn = doc.saveAs( oArgs );
app.endPriv();
return myTrustedRetn;
The developer guide actually wants you to add this content to the existing "config.js" file. I recommend creating a new file, since its easier to deploy in a network. Either way, every client/user who needs to be able to save documents this way, needs this JavaScript Code in his Application/User-JavaScript-Folder.
Within the Acrobat Document, which you want to obtain a certain file name, you can now use the trusted functions "myTrustedBrowseForDoc" and "myTrustedSaveAs" to store the file. To call the trusted functions and deliver the file name you can either you use a form field (button) or you add a new menu item. Add the following JavaScript Action to the button/menu item and change "Roller Coaster" to the name of the field which contains the value which you want to become the new file name:
var fileName = this.getField("Roller Coaster").valueAsString;
try {
var oRetn = myTrustedBrowseForDoc({bSave: true, cFilenameInit: fileName + ".pdf"});
try {
myTrustedSaveAs(this, { cPath: oRetn.cPath, cFS:oRetn.cFS });
catch(e) {
console.println("Save not allowed, perhaps readonly.");
catch(e) {
console.println("User cancelled Save As dialog box");
Good Luck! -
Hi,
I use ridc to check in file into Oracle Center Content server. There is no problem at the beginning. But after running for several days, there is following error.
I must restart my program to solve this issue.
Can anyone help me solve this problem?
Thanks,
Tony
2013-07-11 12:24:31,189 ERROR [BatchEventHandler] com.edocs.common.api.integration.contmgmt.ContentException: oracle.stellent.ridc.protocol.ProtocolEx
ception: java.io.IOException: Input terminated before being able to read line
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:95)
at com.edocs.common.reporting.batch.BatchEventHandler.processBatchRequest(BatchEventHandler.java:284)
at com.edocs.common.reporting.batch.BatchEventHandler.service(BatchEventHandler.java:138)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.executeInternal(BatchReportProcessorTask.java:156)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.doProcessTask(BatchReportProcessorTask.java:68)
at com.edocs.pwc.tasks.CommonTask.processTask(CommonTask.java:166)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.processTask(Unknown Source)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: oracle.stellent.ridc.protocol.ProtocolException: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:149)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:81)
... 17 more
Caused by: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readLine(HdaBinderSerializer.java:371)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readToEnd(HdaBinderSerializer.java:335)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:165)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:71)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:126)
... 19 more
2013-07-11 12:24:33,005 ERROR [BatchEventHandler] com.edocs.common.api.integration.contmgmt.ContentException: oracle.stellent.ridc.protocol.ProtocolEx
ception: java.io.IOException: Input terminated before being able to read line
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:95)
at com.edocs.common.reporting.batch.BatchEventHandler.processBatchRequest(BatchEventHandler.java:284)
at com.edocs.common.reporting.batch.BatchEventHandler.service(BatchEventHandler.java:138)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.executeInternal(BatchReportProcessorTask.java:156)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.doProcessTask(BatchReportProcessorTask.java:68)
at com.edocs.pwc.tasks.CommonTask.processTask(CommonTask.java:166)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.processTask(Unknown Source)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: oracle.stellent.ridc.protocol.ProtocolException: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:149)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:81)
... 17 more
Caused by: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readLine(HdaBinderSerializer.java:371)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readToEnd(HdaBinderSerializer.java:335)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:165)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:71)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:126)
... 19 more
2013-07-11 12:24:37,870 ERROR [BatchEventHandler] com.edocs.common.api.integration.contmgmt.ContentException: oracle.stellent.ridc.protocol.ProtocolEx
ception: java.io.IOException: Input terminated before being able to read line
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:95)
at com.edocs.common.reporting.batch.BatchEventHandler.processBatchRequest(BatchEventHandler.java:284)
at com.edocs.common.reporting.batch.BatchEventHandler.service(BatchEventHandler.java:138)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.executeInternal(BatchReportProcessorTask.java:156)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.doProcessTask(BatchReportProcessorTask.java:68)
at com.edocs.pwc.tasks.CommonTask.processTask(CommonTask.java:166)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.processTask(Unknown Source)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: oracle.stellent.ridc.protocol.ProtocolException: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:149)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:81)
... 17 more
Caused by: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readLine(HdaBinderSerializer.java:371)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readToEnd(HdaBinderSerializer.java:335)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:165)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:71)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:126)
... 19 more
2013-07-11 12:24:39,722 ERROR [BatchEventHandler] com.edocs.common.api.integration.contmgmt.ContentException: oracle.stellent.ridc.protocol.ProtocolEx
ception: java.io.IOException: Input terminated before being able to read line
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:95)
at com.edocs.common.reporting.batch.BatchEventHandler.processBatchRequest(BatchEventHandler.java:284)
at com.edocs.common.reporting.batch.BatchEventHandler.service(BatchEventHandler.java:138)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.executeInternal(BatchReportProcessorTask.java:156)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask.doProcessTask(BatchReportProcessorTask.java:68)
at com.edocs.pwc.tasks.CommonTask.processTask(CommonTask.java:166)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl.processTask(Unknown Source)
at com.edocs.common.reporting.tasks.batchprocessor.BatchReportProcessorTask_9qwgr6_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:85)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: oracle.stellent.ridc.protocol.ProtocolException: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:149)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
at com.edocs.common.integration.contmgmt.UCMContentManager.saveContent(UCMContentManager.java:81)
... 17 more
Caused by: java.io.IOException: Input terminated before being able to read line
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readLine(HdaBinderSerializer.java:371)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.readToEnd(HdaBinderSerializer.java:335)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:165)
at oracle.stellent.ridc.model.serialize.HdaBinderSerializer.parseBinder(HdaBinderSerializer.java:71)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:126)
... 19 moreThe following is my testing code.
package ebilling;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import oracle.stellent.ridc.IdcClient;
import oracle.stellent.ridc.IdcClientManager;
import oracle.stellent.ridc.IdcContext;
import oracle.stellent.ridc.model.DataBinder;
import oracle.stellent.ridc.model.DataObject;
import oracle.stellent.ridc.model.DataResultSet;
import oracle.stellent.ridc.model.TransferFile;
import oracle.stellent.ridc.protocol.ServiceResponse;
import org.apache.commons.lang.StringUtils;
public class UCMContentManager {
* Check in a file into a Oracle WebCenter Content Server and return content id of uploaded content item in Oracle WebCenter Content Server.
* @param properties The Oracle WebCenter Content Server connection properties.
* @param contentFile This file will be checked in a Oracle WebCenter Content Server.
* @param path The location path of checked in file in Oracle WebCenter Content Server. This path includes the file name.<br>
* For example, "/folder1/folder2/file1.txt". The "file1.txt" is the file name part. <br>
* The file name will be used as dDocName in Oracle WebCenter Server. It must be unique.<br>
* @throws ContentException The exception when uploading file into Oracle WebCenter Content Server.
* @return The content id of uploaded content item in Oracle WebCenter Content Server.
public String saveContent(Properties properties, File contentFile, String path) throws ContentException{
if(path.endsWith(SLASH)) {
throw new ContentException("Require file name in Content Management Server");
if(!path.startsWith(SLASH)) {
throw new ContentException("The file store path in Content Management Server should be absolute.");
if (path.indexOf("//") != -1) {
path = path.replace("//", SLASH);
String[] paths = path.split(SLASH);
String[] parents = new String[paths.length - 1];
String itemName = paths[paths.length-1];
System.arraycopy(paths, 0, parents, 0, paths.length-1);
ServiceResponse response = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
//create the parent folders if they don't exist
String folderGUID = makeFolders(properties, parents);
//check in the file
DataBinder requestData = client.createBinder();
requestData.putLocal("IdcService", "CHECKIN_UNIVERSAL");
requestData.putLocal("IsJava", "1");
requestData.putLocal("dDocName", itemName);
requestData.putLocal("dDocTitle", itemName);
requestData.putLocal("dDocType", "Binary");
requestData.putLocal("dSecurityGroup", "Public");
requestData.addFile("primaryFile", new TransferFile(contentFile));
response = client.sendRequest(connectionContext, requestData);
DataBinder responseData = response.getResponseAsBinder();
//String did = responseData.getLocal("dID");
String dDocname = responseData.getLocal("dDocName");
closeResponse(response);
//link the file in a folder
requestData = client.createBinder();
requestData.putLocal("IdcService", "FLD_CREATE_FILE");
requestData.putLocal("fParentGUID", folderGUID);
String fileType = "owner";
requestData.putLocal("fFileType", fileType);
requestData.putLocal("dDocName", dDocname);
response = client.sendRequest(connectionContext, requestData);
return dDocname;
} catch (Throwable e) {
throw new ContentException(e);
} finally{
closeResponse(response);
public void deleteContent(Properties properties, String contentId) throws ContentException{
List<String> didList = getDIds(properties, contentId);
contentId = contentId.toUpperCase();
ServiceResponse response = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
DataBinder requestData = null;
for(int i=0; i<didList.size(); i++) {
String did = didList.get(i);
requestData = client.createBinder();
requestData.putLocal("IdcService", "DELETE_DOC");
requestData.putLocal("dDocName", contentId);
requestData.putLocal("dID", did);
response = client.sendRequest(connectionContext, requestData);
closeResponse(response);
//delete parent folder
// try {
// requestData = client.createBinder();
// requestData.putLocal("IdcService", "FLD_DELETE");
// requestData.putLocal("item1", "path:" + parentPath);
// requestData.putLocal("constructDialog", "1");
// response = client.sendRequest(connectionContext, requestData);
// } catch (Exception e) {
// // TODO: handle exception
} catch (Exception e) {
throw new ContentException(e);
} finally {
closeResponse(response);
public int getFileCountInFolder(Properties properties, String path) throws ContentException{
ServiceResponse response = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
DataBinder binder = client.createBinder();
binder.putLocal("IdcService", "FLD_BROWSE");
binder.putLocal("path", path);
response = client.sendRequest(connectionContext, binder);
DataBinder result = response.getResponseAsBinder();
String num = result.getLocal("numFiles");
return Integer.parseInt(num);
catch (Exception e) {
throw new ContentException(e);
} finally {
closeResponse(response);
private String getFolderGUID(Properties properties, String path) throws ContentException {
ServiceResponse response = null;
String tmpFolderGUID = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
DataBinder requestData = client.createBinder();
requestData.putLocal("IdcService", "FLD_INFO");
requestData.putLocal("path", path);
response = client.sendRequest(connectionContext,
requestData);
DataResultSet result = response.getResponseAsBinder().getResultSet("FolderInfo");
tmpFolderGUID = result.getRows().get(0).get("fFolderGUID")
.toString();
if(StringUtils.isBlank(tmpFolderGUID))
tmpFolderGUID = null;
} catch (Exception e) {
} finally {
closeResponse(response);
return tmpFolderGUID;
public boolean deleteFolder(Properties properties, String path) throws ContentException {
if(getFolderGUID(properties, path)==null)
return false;
int fileCount = getFileCountInFolder(properties, path);
ServiceResponse response = null;
if(fileCount==0) {
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
DataBinder binder = client.createBinder();
binder.putLocal("IdcService", "FLD_DELETE");
binder.putLocal("item1", "path:" + path);
binder.putLocal("constructDialog", "1");
response = client.sendRequest(connectionContext, binder);
return true;
catch (Exception e) {
throw new ContentException(e);
} finally {
closeResponse(response);
} else {
return false;
private String buildPath(String[] arr, int i) {
StringBuilder buf = new StringBuilder();
for(int j=0; j<=i; j++) {
buf.append(arr[j]);
buf.append(SLASH);
return buf.toString();
private String makeFolders(Properties properties, String[] paths) throws ContentException{
String folderGUID = "";
ServiceResponse response = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
String parentFolderGUID = null;
for(int i=0; i<paths.length; i++) {
String fullPath = buildPath(paths, i);
DataBinder requestData = null;
parentFolderGUID = folderGUID;
folderGUID = getFolderGUID(properties, fullPath);
boolean exists = folderGUID!=null;
DataResultSet result = null;
if(!exists) {
//create new folder
try {
requestData = client.createBinder();
requestData.putLocal("IdcService", "FLD_CREATE_FOLDER");
requestData.putLocal("fParentGUID", parentFolderGUID);
requestData.putLocal("fFolderName", paths[i]);
response = client.sendRequest(connectionContext, requestData);
} finally {
closeResponse(response);
//retrieve folderGUID of new folder
folderGUID = getFolderGUID(properties, fullPath);
} catch (Throwable e) {
throw new ContentException(e);
} finally{
closeResponse(response);
return folderGUID;
public List<String> getDIds(Properties properties, String contentId) throws ContentException{
contentId = contentId.toUpperCase();
List<String> didList = new ArrayList<String>();
ServiceResponse response = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
DataBinder requestData = null;
requestData = client.createBinder();
requestData.putLocal("IdcService", "GET_SEARCH_RESULTS");
requestData.putLocal("SortField", "dInDate");
requestData.putLocal("SortType", "DESC");
requestData.putLocal("QueryText", "dDocName <matches> `" + contentId +"`");
response = client.sendRequest(connectionContext, requestData);
DataBinder result = response.getResponseAsBinder();
DataResultSet resultSet = result.getResultSet("SearchResults");
for (DataObject dataObject : resultSet.getRows()) {
// System.out.println("ID : " + dataObject.get("dID")+" dDocName : "
// + dataObject.get("dDocName") + " Title : " + dataObject.get("dDocTitle")
// + " Author : " + dataObject.get("dDocAuthor") + " Security Group : "
// + dataObject.get("dSecurityGroup"));
String did = dataObject.get("dID");
didList.add(did);
//break;
} catch (Exception e) {
throw new ContentException(e);
} finally{
closeResponse(response);
return didList;
* Get the file content represented by contentId from a Oracle WebCenter Content Server.
* The return value is the input stream of retrieved file content.
* @param properties The Oracle WebCenter Content Server connection properties.
* @param contentId The Content ID for the content item in Oracle WebCenter Content Server.
* @throws ContentException The exception when retrieving content from Oracle WebCenter Content Server.
* @return The input stream of retrieved file content.
public InputStream retrieveContent(Properties properties, String contentId) throws ContentException{
try {
return new FileInputStream(retrieveContentFile(properties, contentId));
} catch (Throwable e) {
throw new ContentException(e);
public File retrieveContentFile(Properties properties, String contentId) throws ContentException {
contentId = contentId.toUpperCase();
ServiceResponse response = null;
try {
IdcClientManager manager = new IdcClientManager();
IdcClient client = manager.createClient(properties.getProperty(URL_PROPERTY));
client.getConfig().setProperty ("http.library", "apache4");
String user = properties.getProperty(USERNAME_PROPERTY);
String pwd = properties.getProperty(PASSWORD_PROPERTY);
IdcContext connectionContext = new IdcContext(user, pwd);
pwd = null;
DataBinder binder = client.createBinder();
binder.putLocal("IdcService", "GET_FILE");
//binder.putLocal("dID", dID);
binder.putLocal("dDocName", contentId);
binder.putLocal("RevisionSelectionMethod", "Latest");
response = client.sendRequest(connectionContext, binder);
InputStream in = null;
OutputStream out = null;
String edxhome = System.getProperty("edx.home");
File tmpParent = new File(edxhome);
tmpParent = new File(tmpParent, "Output");
tmpParent = new File(tmpParent, "tmp");
tmpParent.mkdirs();
File tmpFile = File.createTempFile("down_", "_ucm", tmpParent);
tmpFile.deleteOnExit();
try {
in = response.getResponseStream();
out = new FileOutputStream(tmpFile);
byte[] buf = new byte[1024];
int read = -1;
while((read = in.read(buf))!=-1) {
out.write(buf, 0, read);
} finally{
try {
if(in!=null)
in.close();
} catch (Exception e2) {
try {
if(out!=null)
out.close();
} catch (Exception e2) {
return tmpFile;
} catch (Throwable e) {
throw new ContentException(e);
} finally{
closeResponse(response);
private void closeResponse(ServiceResponse response) {
if(response!=null) {
try {
response.close();
} catch (Exception e) {
private static final String SLASH = "/";
private static final String URL_PROPERTY = "contentServerURL";
private static final String USERNAME_PROPERTY = "contentServerUser";
private static final String PASSWORD_PROPERTY = "contentServerPassword";
static volatile boolean flag = false;
static class UploadTask implements Runnable{
public void run() {
try {
while(!flag) {
UCMContentManager manager = new UCMContentManager();
Properties properties = new Properties();
properties.put(URL_PROPERTY, "https://slc402124:16201/cs/idcplg");
properties.put(USERNAME_PROPERTY, "weblogic");
properties.put(PASSWORD_PROPERTY, "weblogic1");
File contentFile = new File("C:/toding/mypro/UCM/test.txt");
String parentPath = "/new/test/multiThreadUpload/";
String location = makePath(parentPath);
manager.saveContent(properties, contentFile, location);
System.out.println(location);
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
flag = true;
public static void main(String[] args) throws Exception{
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 10, 60, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>());
for(int i=0; i<10; i++) {
UploadTask uploadTask = new UploadTask();
executor.execute(uploadTask);
while(!flag) {
Thread.sleep(5000);
executor.shutdown();
public static String makePath(String parentPath) {
StringBuilder buf = new StringBuilder();
buf.append(parentPath);
if(!parentPath.endsWith("/")) {
buf.append("/");
Calendar rightNow = Calendar.getInstance();
String pattern = "yyyyMMdd";
SimpleDateFormat simDateForm = new SimpleDateFormat(pattern);
String dateStr = simDateForm.format((rightNow).getTime());
pattern = "HHmmssSSS";
simDateForm = new SimpleDateFormat(pattern);
String timeStr = simDateForm.format((rightNow).getTime());
buf.append(dateStr);
buf.append("/");
buf.append(timeStr);
buf.append("_");
buf.append(random.nextInt(10000));
String finalLocation = buf.toString();
return finalLocation;
private static SecureRandom random = new SecureRandom(); -
can we control the PDF file name that is generated by BI Publisher based on the content in the input PDF?
No, there isn't. The way you're using the file is not recommended. You
should use a review tracker to avoid getting in the way of one another. -
Sharepoint document library file name column in content database?
Hi,
How to get a sharepoint document library file name column in content database?
Thanks
Poomani SankaranYou're not supposed to develop any solutions accessing the content database directly. It's not supported. Document Library Filename is stored in LeafName column, table: AllDocs.
2.2.6.1 AllDocs Table
This post is my own opinion and does not necessarily reflect the opinion or view of Slalom. -
Missing "Content-Disposition" and attachment's file name
We're testing OCFO 10.1.3.0.6 with MS Outlook 2003 and found some problems when message with attachments is received.
If the attachment's file name is encoded and the body part looks like:
Content-Type: application/msword; name="=?utf-8?B?encoded name?="
Content-Disposition: attachment; filename="=?utf-8?B?encoded name?="
everything is OK - the message is displayed as expected and the attachment's file name is decoded right.
But, if Content-Disposition field is missing, the attachment's file name is not decoded - it's displayed as "=?utf-8?B?encoded name?=" (the name is obviously taken from Content-Type's name parameter), we loose information about file's type and we can't open the attachment.
It seems that MS Outlook (without OCFO) is "smart" enough to decode Content-Type's name parameter as file name in the absence of Content-Disposition field. The same is true for Thunderbird.
Any ideas?Actually the "name" parameter in Content-Type was declared depricated in RFC 1521 in september 1993, (now belongs to Content-Disposition) so they can be excused in a way....
Message was edited by:
user464123 -
Loading File name and file contents into two separate tables using Sqlloadr
Hi All,
I have situtation like to load File contents into One table and File name into one table . File comes with .txt extension
Example :
File name : product_09_abc.txt
File contents :
Productcode
ABC
CDE
EFT
Can you please help me out this how can we acheive this using SQLLOADER.SQL*Loader will not pass through the filename for you to be able to insert into a table.
You will need to have a controlling o/s script that picks up the file name, calls sql*loader and then also call's an SQL script (using sql*plus?) to insert the filename into a.n.other table. -
Writing file content on to mobile phone (need to specify the file name req)
Hi,
I have a jsp page which i am trying to execute on a mobile phone. In this page i am trying to open a ServletOutputStream and using this i am trying to write some content on to the phone. But by default the file name is beeing given as the name of the jsp page, so is there any that we can we specify the name of the file explicitly using the program itself (i mean other than the jsp file name). Can some one give me an idea to implement this.
Here is the code snippet used......
ServletOutputStream outstr = response.getOutputStream();
String itemPath = "http://172.10.100.25/file_dwn/funny_pic.gif";
java.net.URL url = new java.net.URL(itemPath);
javax.activation.URLDataSource source = new javax.activation.URLDataSource(url);
javax.activation.DataHandler dataHand = new javax.activation.DataHandler(source);
String file = itemPath.substring(itemPath.lastIndexOf("/")+1);
response.setHeader("Content-Type","application/vnd.oma.drm.message;boundary=foo");
outstr.println();
outstr.println("--foo");
outstr.println("Content-Type: " + dataHand.getContentType()+";Name=\""+file+"\"");
outstr.println("");
dataHand.writeTo(outstr);
outstr.println();
outstr.println("--foo--");
outstr.println();
outstr.flush();
outstr.close();Hi,
You can Include a Knowledge Management Folder as a Web Folder, this way you can copy and paste files from KM to file system very easily.
Check this
http://help.sap.com/saphelp_nw70/helpdata/EN/30/75b62c659d724fb908c74ade23af51/frameset.htm
Regards,
Praveen Gudapati -
AS2 File name preseve - can we force the file name to be in Content-Type
Ref: http://www.b2bgurus.com/2007/11/as2-file-name-preserve-feature.html
Our TP wants file name to be part of Content-Type of MIME rather than Content-Disposition. is this possible in Oracle B2B?
Thanks,
KalyanHi Ramesh,
Older applications still use "name" parameter of content-type to identify and further process the document
I think B2B should provide a way to include "name" parameter as part of content-type for backward compatibility
Expected by our TP
Content-Type: application/pdf; name="example.pdf"
Content-Transfer-Encoding: base64
few links to throw some more light on the topic
http://osdir.com/ml/ietf.rfc822/1996-03/msg00000.html
http://pear.php.net/bugs/bug.php?id=4057
h3. expert from wiki
The original MIME specifications only provided a means to associate filenames with application/octet-stream parts. This was done through the use of a name= parameter on the content-type. The theory here was that filenames were mostly used for type information and therefore did not need to be present in most cases. It was a mistake. The specification of content-disposition attempted to provide a more general means of providing file name information by defining a filename parameter as part of the content-disposition field -
To create 3 diff files with same content but with diff names in same target
Hi SapAll.
i have got a a requirement where pi need to create 3 different files with same content but with different names under same target from a single Idoc.
its an IDOC to 3 File Inteface.
can any body help me in providing the differnt solutions for this without use of any script executions.
will be waiitng for response.
regards.
Varma> i want to use only one communication channel to produce 3 different file names with same content ,so here i should use only one message mapping in 3 operation mappings .
This is not possible to produce 3 different file names with single CC. You have to use 3 different CCs. unless you have going to use some other trick e.g some script to rename the file etc..
As I suggested in my previous reply use Multi-Mapping Or create 3 different Interface Mappings (by using the same MM).
Note: You have to create 3 different Inbound Message Interfaces (you can use the same Inbound Message Type) otherwise while creating the 3 Interface Determination it won't allow because of same Outbound & Inbound Message Interface. It will simply say Interface alreday exists..
So, just use the Multi-Mapping which is best solution in my opinion, because the benefit of using multi-mapping are:
1. You have to create only single Message Mapping
2. Single Interface Mapping
3. Single Receiver Determination
4. Single Interface Determination
5. 3 Receiver CCs (3 you have to use in any case)
6. Performance wise it is good (read the blog's last 2 para)
7. And last but not the least easy to maintain the scenario.
Maybe you are looking for
-
Snow Leopard 'error code 50', 'Low Application memory'. Help.
Hi. I've been facing **** lot of problems with my MBP of late, and all that I could try have turned unfruitful. I'd appreciate some help. Problems started when I downloaded and tried to install SL update 10.6.7 on 10.6.6. It was working fine on 10.6.
-
Using My N73's Bluetooth connection as adapter for...
Hey guys, This is not a question that can be put into one sentence... I shall put it as short and descriptive as possible. I can connect my laptop to the internet using the Built-in Modem I have in my laptop (Dial-Up). My brothers laptop is new, He d
-
In order to upload a scanned photo that is PDF I need to convert it to Jpeg. How do I do this?
-
I have difficulty sending photos through iPhoto 11 often get a connection error. When I go to my email and copy the photos in email the emails go out right away and never seem to have a connection problem? Why did they cahnge the process for sendin
-
No ICC printer profiles available
I am using Lightroom 2.4 and tried to select a printer / media profile, but there are none of my profiles availabe. Just if I click the "Include Display Profiles" I can see the display profiles, but no more. Does any one know how to get the printerpr