0% found this document useful (0 votes)
80 views12 pages

DFC Sample Programs-1

The document describes various Documentum operations including: 1. Getting a list of available docbases, creating cabinets, folders, and documents within docbases. 2. Checking documents in and out of docbases, importing and exporting documents, updating and retrieving document attributes. 3. Creating virtual documents, viewing their structure, and exporting virtual documents. 4. Additional operations covered include canceling checkouts, deleting documents, and retrieving documents using IDQL queries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views12 pages

DFC Sample Programs-1

The document describes various Documentum operations including: 1. Getting a list of available docbases, creating cabinets, folders, and documents within docbases. 2. Checking documents in and out of docbases, importing and exporting documents, updating and retrieving document attributes. 3. Creating virtual documents, viewing their structure, and exporting virtual documents. 4. Additional operations covered include canceling checkouts, deleting documents, and retrieving documents using IDQL queries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

To get a list of available docbase

To create a cabinet (dm_cabinet) in docbase


To create a folder (dm_folder object) in docbase
To create a document (dm_document object) in docbase
To check out a document from docbase using IDfOperations
To check in a document to docbase using IDfOperations
making use of IAPI methods
To import a document into docbase
To cancelcheckout a document into docbase
To check out a document from docbase
To check in a document to docbase
To delete a document from docbase
To update document’s in docbase
To retrieve document’s attributes from docbase
To create a virtual document in docbase
To export a virtual document from docbase
To view virtual document from docbase
To retrieve document from document using IDQL
To create and start workflow
to view task in inbox
To attach a lifeCycle to a document in docbase
To promote a lifeCycle state of a document
To demote a lifeCycle state of a document
To expire a lifeCycle state of a document
To resume a lifeCycle state of a document
To assign a ACL to a document

/*

Documentum DFC Standalone Sample Program

Code Snippet – START

*/

package com.sample.dctm.programs;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import com.documentum.com.DfClientX;
import com.documentum.com.IDfClientX;
import com.documentum.fc.client.DfClient;
import com.documentum.fc.client.DfQuery;
import com.documentum.fc.client.IDfACL;
import com.documentum.fc.client.IDfActivity;
import com.documentum.fc.client.IDfClient;
import com.documentum.fc.client.IDfCollection;
import com.documentum.fc.client.IDfDocbaseMap;
import com.documentum.fc.client.IDfDocument;
import com.documentum.fc.client.IDfFolder;
import com.documentum.fc.client.IDfProcess;
import com.documentum.fc.client.IDfQuery;
import com.documentum.fc.client.IDfQueueItem;
import com.documentum.fc.client.IDfSession;
import com.documentum.fc.client.IDfSessionManager;
import com.documentum.fc.client.IDfSysObject;
import com.documentum.fc.client.IDfType;
import com.documentum.fc.client.IDfTypedObject;
import com.documentum.fc.client.IDfVirtualDocument;
import com.documentum.fc.client.IDfVirtualDocumentNode;
import com.documentum.fc.client.IDfWorkflow;
import com.documentum.fc.client.IDfWorkflowBuilder;
import com.documentum.fc.client.IDfWorkitem;
import com.documentum.fc.common.DfException;
import com.documentum.fc.common.DfList;
import com.documentum.fc.common.DfLoginInfo;
import com.documentum.fc.common.IDfAttr;
import com.documentum.fc.common.IDfId;
import com.documentum.fc.common.IDfList;
import com.documentum.fc.common.IDfLoginInfo;
import com.documentum.operations.IDfCancelCheckoutNode;
import com.documentum.operations.IDfCancelCheckoutOperation;
import com.documentum.operations.IDfCheckinNode;
import com.documentum.operations.IDfCheckinOperation;
import com.documentum.operations.IDfCheckoutNode;
import com.documentum.operations.IDfCheckoutOperation;
import com.documentum.operations.IDfExportNode;
import com.documentum.operations.IDfExportOperation;
import com.documentum.operations.IDfImportNode;
import com.documentum.operations.IDfImportOperation;
import com.documentum.operations.IDfOperation;
import com.documentum.operations.IDfOperationError;
import com.documentum.xml.xdql.DfXmlQuery;
import com.documentum.xml.xdql.IDfXmlQuery;

public class DFCWorkShop {

IDfSysObject sysObject = null;


IDfSession idfSession = null;
IDfSessionManager sessMgr = null;

public DFCWorkShop(String user, String passwd, String docbase) throws


Exception {
getDfSession(user, passwd, docbase);
}

public IDfSession getDfSession(String args1, String args2, String args3)


throws Exception {

IDfLoginInfo login = new DfLoginInfo();


login.setUser(args1);
login.setPassword(args2);
IDfClient client = new DfClient();
sessMgr = client.newSessionManager();
sessMgr.setIdentity(args3, login);
idfSession = sessMgr.getSession(args3);

if ( idfSession != null )
System.out.println(“Session created successfully”);

return idfSession;
}

public void getAllDocbases() throws Exception {

IDfClient client = DfClient.getLocalClient();


IDfDocbaseMap docbaseMap = client.getDocbaseMap();
for ( int i=0;i<docbaseMap.getDocbaseCount();i++) {
System.out.println(“Docbase Name : ” + docbaseMap.getDocbaseName(i));
System.out.println(“Docbase Desc : ” +
docbaseMap.getDocbaseDescription(i));
}
}

public void createCabinet() throws Exception {

IDfFolder cabinet = (IDfFolder) idfSession.newObject(“dm_cabinet”);


if (cabinet != null) {
cabinet.setObjectName(“Training Cabinet XXX”);
cabinet.save();
}
}

public void createFolder() throws Exception {

IDfFolder folder = (IDfFolder) idfSession.newObject(“dm_folder”);


if (folder != null) {
folder.setObjectName(“Folder Level 2”);
folder.link(“/Training Cabinet XXX”);
folder.save();
}
}

public IDfDocument createDocument() throws Exception {

IDfDocument document = (IDfDocument) idfSession.newObject(“dm_document”);


if (document != null) {
document.setObjectName(“Test-Document”);
document.setContentType(“crtext”);
document.setFile(“C:\\Documentum\\config\\dfc.properties”);
document.link(“/Training Cabinet XXX/Folder Level 1”);
document.save();
}
return document;
}

public void updateAttributes() throws Exception {

sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet


XXX/Folder Level 1/New Document”);
sysObject.setString(“object_name”, “New Document”);
sysObject.setString(“authors”, “Prasad”);
sysObject.setRepeatingString(“authors”,1,”RamKumar”);
sysObject.save();
}

public void getAttributes() throws Exception {

sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet


XXX/Folder Level 1/New Document”);
if (sysObject != null ) {
System.out.println(“objectName ” + sysObject.getString(“object_name”));
//System.out.println(“authors ” + sysObject.getString(“authors”));
String authors = sysObject.getAllRepeatingStrings(“authors”, “,”);
List list = new ArrayList();
StringTokenizer st = new StringTokenizer(authors, “,”);
System.out.println(“length of st ” + st.countTokens());
while( st.hasMoreTokens() ) {
list.add(st.nextElement());
}
System.out.println(“length ” + list.size());

for (int i=0;i<list.size();i++) {


System.out.println(“Author[“+i+”] ” + list.get(i));
}
}
}

public void getTypeAttributes() throws Exception {

IDfType type = (IDfType)idfSession.newObject(“dm_document”);


for (int i=0;i<type.getAttrCount();i++ ) {
IDfAttr attr = type.getAttr(i);
System.out.println(“Name ” + attr.getName());
System.out.println(“Datatype ” + attr.getDataType());
System.out.println(“Length ” + attr.getLength());
System.out.println(“IS Repeating Attr ” + attr.isRepeating());
}
}

public void checkoutDoc() throws Exception {

sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet


XXX/Folder Level 1/”);
if (!sysObject.isCheckedOut()) // if it is not checked out
sysObject.checkout();

System.out.println(“is Check out ” + sysObject.isCheckedOut());


}

public void checkinDoc() throws Exception {

sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet


XXX/Folder Level 1/Test-Document”);

if (sysObject.isCheckedOut() ) { // if it is checked out


sysObject.checkin(false,”CURRENT”);
}
}

public void deleteDoc() throws Exception {

sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet


XXX/Folder Level 1/Test-Document”);
if (sysObject != null ) {
sysObject.destroyAllVersions(); // delete all versions
System.out.println(“object destroyed…..”);
}
}

public void createVirtualDocument() throws Exception {

IDfSysObject pSys = (IDfSysObject) idfSession.getObjectByPath(“/Training


Cabinet XXX/Folder Level 2/log4j.properties”);
IDfSysObject cSys = (IDfSysObject) idfSession.getObjectByPath(“/Training
Cabinet XXX/Folder Level 1/trace.log”);

pSys.setIsVirtualDocument(true);
pSys.save();
IDfVirtualDocument vDoc = pSys.asVirtualDocument(“CURRENT”, false);
IDfVirtualDocumentNode pNode = vDoc.getRootNode();
pSys.checkout();

IDfVirtualDocumentNode nodeChild1 =
vDoc.addNode( pNode, null, cSys.getChronicleId(),
“CURRENT”, false, false);

pSys.checkin(false, “CURRENT”);
}

public void viewVirtualDocument() throws Exception {

IDfSysObject pSys = (IDfSysObject) idfSession.getObjectByPath(“/Training


Cabinet XXX/Folder Level 2/log4j.properties”);
if ( pSys.isVirtualDocument() ) {
System.out.println(“virtual document –> true”);
IDfVirtualDocument vDoc = pSys.asVirtualDocument(“CURRENT”, false);
IDfVirtualDocumentNode pNode = vDoc.getRootNode();

System.out.println(“Iterating thru the lis to get the child nodes”);


for ( int i=0;i<pNode.getChildCount();i++) {
IDfVirtualDocumentNode cNode = pNode.getChild(i);
System.out.println(“Child Name ”
+cNode.getSelectedObject().getObjectName());
}
}
}

public void exportVirtualDocument() throws Exception {

System.out.println(“exporting virtual document”);

IDfClientX clientx = new DfClientX();


IDfExportOperation expOperation = clientx.getExportOperation();

IDfSysObject sysObject = (IDfSysObject)


idfSession.getObjectByPath(“/Training Cabinet XXX/Folder Level
2/log4j.properties”);
if ( sysObject.isVirtualDocument() ) {
IDfVirtualDocument Vdoc = sysObject.asVirtualDocument(“CURRENT”, false);
IDfExportNode expNode = (IDfExportNode) expOperation.add(sysObject);
expOperation.setDestinationDirectory(expOperation.getDefaultDestinationDi
rectory());
boolean flag = expOperation.execute();
displayError(expOperation, flag);
}
}

public void cancelCheckoutDocument() throws Exception {

IDfClientX clientx = new DfClientX();


IDfCancelCheckoutOperation cancelcheckoutOper =
clientx.getCancelCheckoutOperation();
sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet
XXX/Folder Level 2/log4j.properties”);

IDfCancelCheckoutNode node = (IDfCancelCheckoutNode)


cancelcheckoutOper.add(sysObject);
boolean flag = cancelcheckoutOper.execute();
displayError(cancelcheckoutOper, flag);
}

public void checkoutDocument() throws Exception {

IDfClientX clientx = new DfClientX();


IDfCheckoutOperation checkoutOper = clientx.getCheckoutOperation();

System.out.println(“Checkout Dir ” +
checkoutOper.getDefaultDestinationDirectory());
checkoutOper.setDestinationDirectory(checkoutOper.getDefaultDestinationDi
rectory());

sysObject = (IDfSysObject) idfSession.getObjectByPath(“/Training Cabinet


XXX/Folder Level 2/log4j.properties”);

IDfCheckoutNode node = (IDfCheckoutNode) checkoutOper.add(sysObject);


boolean flag = checkoutOper.execute();
displayError(checkoutOper, flag);

public void checkinDocument() throws Exception {

IDfClientX clientx = new DfClientX();


IDfCheckinOperation checkinOper = clientx.getCheckinOperation();

IDfCheckinNode node = (IDfCheckinNode) checkinOper.add(sysObject);


System.out.println(“Flag —->” + checkinOper.execute());
}

public void importDocument() throws Exception {

IDfSysObject sysObject = (IDfFolder)


idfSession.getObjectByPath(“/Training Cabinet XXX/Folder Level 2”);
System.out.println(“Object ID ” + sysObject.getObjectId());

IDfClientX clientx = new DfClientX();


IDfImportOperation importOper = clientx.getImportOperation();
importOper.setSession(idfSession);

if (importOper == null )
System.out.println(“operation object is null”);

importOper.setDestinationFolderId(sysObject.getObjectId());
importOper.setVersionLabels(“imported using operation”);

IDfImportNode node = (IDfImportNode)


importOper.add(“C:\\Documentum\\config\\log4j.properties”);
node.setFormat(“pdf”);

boolean flag = importOper.execute();


displayError(importOper, flag);
}
public void displayError(IDfOperation operation, boolean flag) throws
Exception {

if (!flag) {

IDfList errlist = operation.getErrors();

for (int i=0;i<errlist.getCount(); i++) {


IDfOperationError errOperation = (IDfOperationError) errlist.get(i);
System.out.println(“Error MSG ” + errOperation.getMessage());
}
}
}

public void dmclAPI() throws Exception {

System.out.println(“Starting……..”);
IDfSysObject sysObj = (IDfSysObject)
idfSession.getObjectByQualification(“dm_document where object_name=’Test-
Document'”);
String rObjectId = sysObj.getObjectId().getId();

String name = (String)idfSession.apiGet(“get”,rObjectId +


“,object_name”);
System.out.println(“Name : ” + name);
//idfSession.apiSet(“set”,rObjectId+”,title”,”sample-doc”);
idfSession.apiExec(“link”,rObjectId+”,/Training Cabinet XXX/Folder Level
2?);
System.out.println(“Linked ” + idfSession.apiExec(“save”,rObjectId));
}

public void collection() throws Exception {

IDfQuery query = new DfQuery();


query.setDQL(“select * from dm_document where object_name=’New Document’
and any r_version_label like ‘CURRENT%'”);
IDfCollection coll = query.execute(idfSession, 0);

while ( coll.next() ) {
IDfTypedObject typeObject = (IDfTypedObject) coll.getTypedObject();
System.out.println(“Object Name ” + typeObject.getString(“r_object_id”));
System.out.println(“creation date ” +
typeObject.getString(“r_creation_date”));
}

if ( coll != null )
coll.close();
}

public void startWorkflow() throws Exception {

//to get the attachment document


IDfSysObject sysObj = (IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’DFCtest'”);

// to get the Workflow Template


IDfProcess process = (IDfProcess)
idfSession.getObjectByQualification(“dm_process where object_name like
‘%INDIA_TIMES%'”);

//to create a Workflo Builder to start a workflow


IDfWorkflowBuilder builder =
idfSession.newWorkflowBuilder(process.getObjectId());
IDfId wfId = builder.initWorkflow();

//get the First Activity


IDfList startActivityNames = builder.getStartActivityNames();
IDfList startActivities = builder.getStartActivityIds();
String activityName = startActivityNames.getString(0);
IDfId activityID = (IDfId) startActivities.get(0);
IDfActivity activity = (IDfActivity) idfSession.getObject(activityID);

//to get the Package Name , Port and Package DocType


int nPorts = activity.getPortCount();
String InputPortName = null;
String PkgType = null;
String PkgName = null;

for (int j=0; j<nPorts; j++) {


System.out.println( “Port Name: ” + activity.getPortName(j) + “, ” +
“Port Type = ” + activity.getPortType(j) );

if ( activity.getPortType(j).equals( “INPUT” ) ) {
InputPortName = activity.getPortName(j);
PkgType = activity.getPackageType(j);
PkgName = activity.getPackageName(j);
}
}

//to Add the attachment document to List


IDfList dfList = new DfList();
dfList.append(sysObj.getObjectId());

IDfId wfId2 = builder.runWorkflow();


//Add a Package to Workflow Builder
builder.addPackage(activityName, InputPortName, PkgName, PkgType, null,
false, dfList);
System.out.println(“package added”);

public void getInbox() throws Exception {

IDfCollection tasks = idfSession.getTasks(“temp”, IDfSession.DF_TASKS,


“name, date_sent, message “, “task_name”);

try {
while (tasks.next()) {
IDfWorkitem wi = (IDfWorkitem)
idfSession.getObject(tasks.getId(“item_id”));
IDfId queueItemId = wi.getQueueItemId();
IDfQueueItem qi = (IDfQueueItem) idfSession.getObject(queueItemId);
System.out.println(tasks.getString(“sent_by”)+”
“+tasks.getString(“task_name”)+” “+
tasks.getString(“date_sent”)+” “+tasks.getString(“message”)+”
“+qi.getItemName());
IDfActivity dfActivity=wi.getActivity();
System.out.println(“\tActivity Information : “+
dfActivity.getString(“object_name”));
IDfCollection packColl= null;
try {
packColl=wi.getPackages(“”);
while(packColl.next()) {
IDfSysObject sysObj=(IDfSysObject)
idfSession.getObject(packColl.getId(“r_component_id”));
System.out.println(“\t Package Information: ” +
sysObj.getString(“object_name”));
}
} finally {
if(packColl != null)
packColl.close();
}
// to finish a Task or Workitem
//finishTask(wi);
}
} finally {
if(tasks!=null) tasks.close();
}
}

public void finishTask(IDfWorkitem wi) throws Exception {

if(wi.getRuntimeState() == IDfWorkflow.DF_WF_STATE_DORMANT){
wi.acquire();
}
wi.complete();
}

public void attachLC() throws Exception{

IDfSysObject mDocs=(IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’UniqueDoc’ “);

IDfSysObject procObj=(IDfSysObject)
idfSession.getObjectByQualification(“dm_policy where
object_name=’Training_LC’ “);
mDocs.attachPolicy(procObj.getObjectId(), “Author”,””);

public void promoteLC(String State) throws Exception{


IDfSysObject mDocs=(IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’UniqueDoc’ “);
mDocs.promote(State,false,false);
}

public void demoteLC(String State) throws Exception{


IDfSysObject mDocs=(IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’UniqueDoc’ “);
mDocs.demote(State,false);
}

public void expireLC(String State) throws Exception{


IDfSysObject mDocs=(IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’UniqueDoc’ “);
mDocs.suspend(State,false,false);
}

public void resumeLC(String State) throws Exception{


IDfSysObject mDocs=(IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’UniqueDoc’ “);
mDocs.resume(State,false,false,false);
}
public void releaseSession() throws Exception {
sessMgr.release(idfSession);
}

public void assignACL() throws Exception {

IDfSysObject mDocs=(IDfSysObject)
idfSession.getObjectByQualification(“dm_document where
object_name=’UniqueDoc’ “);
IDfACL dfACL=(IDfACL) idfSession.getObjectByQualification(“dm_acl where
object_name=’TrainingACL’ “);
mDocs.setACL(dfACL);
mDocs.save();
}

public boolean getdm_documentRecordsAsXML(IDfSession sess)throws


DfException
{
String dql = “select * from dm_document where object_name=’Training'”;
String strVal = null;
IDfId idObj = null;
IDfXmlQuery objDfXmlQuery = new DfXmlQuery();
objDfXmlQuery.init();
objDfXmlQuery.setDql(dql);
objDfXmlQuery.execute(IDfQuery.DF_READ_QUERY,sess);
String xml = objDfXmlQuery.getXMLString();
System.out.println(“XML is : ” + xml);
return true;

public static void main(String[] args) throws Exception {

DFCWorkShop object = new DFCWorkShop(args[0], args[1], args[2]);

try {

// To get a list of available docbase


//object.getAllDocbases();

// To create a cabinet (dm_cabinet) in docbase


//object.createCabinet();

// To create a folder (dm_folder object) in docbase


//object.createFolder();

// To create a document (dm_document object) in docbase


//object.createDocument();
// To check out a document from docbase using IDfOperations
//object.checkoutDocument();

// To check in a document to docbase using IDfOperations


//object.checkinDocument();

// making use of IAPI methods


//object.dmclAPI();

// To import a document into docbase


//object.importDocument();

// To cancelcheckout a document into docbase


//object.cancelCheckoutDocument();

// To check out a document from docbase


//object.checkoutDoc();

// To check in a document to docbase


//object.checkinDoc();

// To delete a document from docbase


//object.deleteDoc();

// To update document’s in docbase


//object.updateAttributes();

// To retrieve document’s attributes from docbase


//object.getAttributes();

// To create a virtual document in docbase


//object.createVirtualDocument();

// To export a virtual document from docbase


//object.exportVirtualDocument();

// To view virtual document from docbase


//object.viewVirtualDocument();

// To retrieve document from document using IDQL


//object.collection();

// To create and start workflow


//object.startWorkflow();

// to view task in inbox


//object.getInbox();

// To attach a lifeCycle to a document in docbase


//object.attachLC();

// To promote a lifeCycle state of a document


//object.promoteLC(“Review”);

// To demote a lifeCycle state of a document


//object.demoteLC(“Author”);

// To expire a lifeCycle state of a document


//object.expireLC(“Author”);
// To resume a lifeCycle state of a document
//object.resumeLC(“Author”);

// To assign a ACL to a document


//object.assignACL();

} finally {
// to release a docbase session
object.releaseSession();
}
}
}

/*

END

*/

You might also like