Skip to Content
0
Former Member
May 05, 2010 at 07:37 AM

Error while Uploading the docs into KM using webdynpro for java

29 Views

In My view I have create a context node(ctx_va_FileData) with value attribute (ctx_va_FileResource) of type ,Resource.

Select the Simple Type, navigate to Dictionaries u2192 Local Dictionary u2192com.sap.ide.webdynpro.uielementdefinitions and select Resource.

In View part of Layout :Create one u201CFileUpload u201C UI with Create one LinkToAction IU element and assign u201CaUploadFileinto_KMu201D action to this action

Coding Part in Web Dynpro java

Step 1:

Go to the wdDoInit() method and paste the following code

public void wdDoInit()

{

//@@begin wdDoInit()

try {

IPrivateUploadFile_KMView.ICtx_vn_FileDataElement element = wdContext.createCtx_vn_FileDataElement();

if (element != null)

{

wdContext.nodeCtx_vn_FileData().bind(element);

}

}catch (Exception e) {

wdComponentAPI.getMessageManager().reportSuccess("Error: " + e.getCause().toString());

}

//@@end

}

Go to the onActionaUploadFileinto_KM and paste the following code

public void onActionaUploadFileinto_KM(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )

{

//@@begin onActionaUploadFileinto_KM(ServerEvent)

msgMgr = wdComponentAPI.getMessageManager();

IPrivateUploadFile_KMView.ICtx_vn_FileDataElement element =

wdcontext.currentCtx_vn_FileDataElement();

IWDResource resource = element.getCtx_va_FileResource();

if(resource!=null){

try {

//To get the Current User

IWDClientUser wdClientUser = WDClientUser.getCurrentUser();

com.sap.security.api.IUser sapUser = wdClientUser.getSAPUser();

com.sapportals.portal.security.usermanagement.IUser ep5User =

WPUMFactory.getUserFactory().getEP5User(sapUser);

ResourceContext resourseContext = new ResourceContext(ep5User);

//Portal KM Path

RID pathRID = RID.getRID("/documents/SDN"); //Root Directory

IResourceFactory resourseFactory =

com.sapportals.wcm.repository.ResourceFactory.getInstance();

ICollection collection = (ICollection)resourseFactory.getResource(pathRID,

resourseContext);

//Read the File

InputStream stream = resource.read(true);

String resourceName = resource.getResourceName();

String resourceExtn = resource.getResourceType().getFileExtension();

//KM Content

Content cont = new Content(stream,"application/octet-stream",-1,"UTF-16");

//create a file in above mentioned path in KM

com.sapportals.wcm.repository.IResource new_resource =

(com.sapportals.wcm.repository.IResource)collection.

createResource(resourceName, null, cont);

//Get the File length

long contentLen = new_resource.getContent().getContentLength();

//If no data in file

if(contentLen <= 0){

msgMgr.reportException("No data in file" , true);

}else {

msgMgr.reportMessage(IMessageUploadFile_KMComp.SF__UPLOAD,

new Object[] {resourceName},true);

}

} catch (NotSupportedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (AccessDeniedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (WDUMException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ResourceException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ContentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (UserManagementException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}else

msgMgr.reportException("No file Selected ,Browse the file!",true);

element.setCtx_va_FileResource(null);

}//End of Action

But in the onActionaUploadFileinto_KM part IUser is deprecated and i m stuck at that point.

Plz provide me the solution and is there ant alternative solution for this and MY Portal is EP6 Nwds version is 7.0.9