Hi all,
I was trying to create version tree for controlled document. For that I have written code as below:
String documentClass = "DC1";
public IDfPersistentObject createNewDocument(){
IDfSession session = new CreateSession().getSession();
IDfPersistentObject persObj = null;
try {
persObj = session.newObject("dm_document");
persObj.setString("object_name", "lenka");
((IDfSysObject)persObj).setFileEx("D:\\rani.doc", "msw8", 0, null);
((IDfSysObject)persObj).link("/Temp/AnuNewControlFolder");
persObj.save();
//System.out.println("Object saved.");
} catch (DfException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return persObj;
}
public IDfPersistentObject createControlDocument() {
IDfPersistentObject persObj = createNewDocument();
ConvertDocParams param = new ConvertDocParams();
IDfSession session = new CreateSession().getSession();
try {
if(persObj instanceof IDfDocument) {
DcmManager manager = (DcmManager)DfClient.getLocalClient().newModule(session.getDocbaseName(),
com.documentum.dcm.services.DcmManager.class.getName(), session.getSessionManager());
manager.setDocbase(session.getDocbaseName());
String username = session.getLoginUserName();
System.out.println("Username: "+username);
IDfDocument document = (IDfDocument)persObj;
DocumentClassManager docClassMgr = new DocumentClassManager(session);
List documentClassList = docClassMgr.getAllDocumentClassesList();
System.out.println("Document class list:");
/*for(int i = 0; i < documentClassList.size(); i++) {
//System.out.println(i+" "+documentClassList.get(i));
DocumentClass dc = docClassMgr.getDocumentClass(documentClassList.get(i).toString());
System.out.println("dc: "+dc.getObjectName());
}*/
if(documentClass != null) {
DocumentClass dc = docClassMgr.getDocumentClass(documentClass);
System.out.println("document class: "+dc.getObjectName());
System.out.println("Contributor: "+dc.isContributor(username));
if(dc.isContributor(username) || dc.isCoordinator(username)) {
if(dc.getDocbaseType().equals(document.getTypeName())) {
if(dc.isContentTypeSupported(document.getContentType())) {
param.setDocumentClassName(documentClass);
param.setTargetObjectId(document.getObjectId());
param.setDocumentName(document.getObjectName());
param.setOpType(ConvertDocParams.OP_CONVERT);
manager.convert(param);
//IDfId newObjId = manager.convert(param);
if(param.isWarning()) {
System.out.println(param.getWarningString());
}
System.out.println("Object is saved.");
} else {
System.out.println("Document class does not support conent type :"+document.getContentType());
persObj.destroy();
}
} else {
System.out.println("Document class does not support object type: "+document.getTypeName());
persObj.destroy();
}
} else {
System.out.println("Document class does not exist.");
persObj.destroy();
}
}
}
} catch (DfException e) {
e.printStackTrace();
}
return persObj;
}
public void createControlledDocVersionTree() {
IDfPersistentObject persObj = createControlDocument();
IDfDocument idfDocObj = new DfDocument();
IDfSession session = new CreateSession().getSession();
try {
idfDocObj = (IDfDocument) session.getObject(persObj.getObjectId());
if(!idfDocObj.isCheckedOut()) {
idfDocObj.checkout();
IDfId idfid = idfDocObj.checkin(false, "");
idfDocObj = null;
idfDocObj = (IDfDocument) session.getObject(new DfId(idfid.getId()));
idfDocObj.setFileEx("D:\\PQR_ver2.0.doc", "msw8", 0, null);
idfDocObj.save();
}
} catch (DfException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
and I was getting exception at line in bold like
DfException:: THREAD: main; MSG: Controlled document has no specified document class.; ERRORCODE: ff; NEXT: null
at com.documentum.dcm.aspect.impl.DcmControlledDocAspect.validate(DcmControlledDocAspect.java:1407)
at com.documentum.dcm.aspect.impl.DcmControlledDocAspect.save(DcmControlledDocAspect.java:197)
at com.documentum.dcm.aspect.impl.DcmControlledDocAspect___PROXY.save(DcmControlledDocAspect___PROXY.java)
at createControlledVersionTree.createControlledDocVersionTree(createControlledVersionTree.java:114)
at createControlledVersionTree.main(createControlledVersionTree.java:124)
How to create version tree for controlled documents and how to remove this exception?
Thanks.