Issue with Attaching a content to a workflow in webpublisher
Hello All,I am trying to import a html file into a folder of a particular webcabinet and then attach a workflow to it.Althugh at the time DFC runs no exception is thrown,but when I see the logs I get the following error.Tue Dec 15 15:55:59 2009 997926 [DM_WORKFLOW_E_AGENT_LAUNCH]error: "Failed to launch 4a0069a280002100 due to an operating system error: No Error Message Available."Tue Dec 15 15:56:05 2009 707511: 1606[1606] TRACE LAUNCH: java -classpath ../../../shared/config:../../../shared/dfc/dfc.jar:../custom/dsmwcm.jar com.swordecm.projects.dsm.method.UpdateWFAliasSet -docbase_name wcm01 -user "dmadmin" -packageId 4a0069a280002100 -ticket DM_TICKET=T0JKIE5VTEwgMAoxMwp2ZXJzaW9uIElOVCBTIDAKMwpmbGFncyBJTlQgUyAwCjEKc2VxdWVuY2VfbnVtIElOVCBTIDAKMTcKY3JlYXRlX3RpbWUgSU5UIFMgMAoxMjYwODg4OTY1CmV4cGlyZV90aW1lIElOVCBTIDAKMTI2MDg4OTI2NQpkb21haW4gSU5UIFMgMAowCnVzZXJfbmFtZSBTVFJJTkcgUyAwCkEgNyBkbWFkbWluCnBhc3N3b3JkIElOVCBTIDAKMApkb2NiYXNlX25hbWUgU1RSSU5HIFMgMApBIDUgd2NtMDEKaG9zdF9uYW1lIFNUUklORyBTIDAKQSAzMSB3ZWJiczAwNThkc20uc3J2ZmFybTItZXVyLmRzbS1nCnNlcnZlcl9uYW1lIFNUUklORyBTIDAKQSA1IHdjbTAxCnNpZ25hdHVyZV9sZW4gSU5UIFMgMAo1NgpzaWduYXR1cmUgU1RSSU5HIFMgMApBIDU2IFY5ZFlTVUFHd3JHUHZ0aUN1cCtMMGdJcXZpSUlSOU9iWUJsd0IzOEdQSEF6dWZSVDBmYTBtdz09Cg== -mode 0dmExec::ForkLaunch() system(java -classpath ../../../shared/config:../../../shared/dfc/dfc.jar:../custom/dsmwcm.jar com.swordecm.projects.dsm.method.UpdateWFAliasSet -docbase_name wcm01 -user "dmadmin" -packageId 4a0069a280002100 -ticket DM_TICKET=T0JKIE5VTEwgMAoxMwp2ZXJzaW9uIElOVCBTIDAKMwpmbGFncyBJTlQgUyAwCjEKc2VxdWVuY2VfbnVtIElOVCBTIDAKMTcKY3JlYXRlX3RpbWUgSU5UIFMgMAoxMjYwODg4OTY1CmV4cGlyZV90aW1lIElOVCBTIDAKMTI2MDg4OTI2NQpkb21haW4gSU5UIFMgMAowCnVzZXJfbmFtZSBTVFJJTkcgUyAwCkEgNyBkbWFkbWluCnBhc3N3b3JkIElOVCBTIDAKMApkb2NiYXNlX25hbWUgU1RSSU5HIFMgMApBIDUgd2NtMDEKaG9zdF9uYW1lIFNUUklORyBTIDAKQSAzMSB3ZWJiczAwNThkc20uc3J2ZmFybTItZXVyLmRzbS1nCnNlcnZlcl9uYW1lIFNUUklORyBTIDAKQSA1IHdjbTAxCnNpZ25hdHVyZV9sZW4gSU5UIFMgMAo1NgpzaWduYXR1cmUgU1RSSU5HIFMgMApBIDU2IFY5ZFlTVUFHd3JHUHZ0aUN1cCtMMGdJcXZpSUlSOU9iWUJsd0IzOEdQSEF6dWZSVDBmYTBtdz09Cg== -mode 0 )2009/12/15 15:56:06 - com.swordecm.projects.dsm.method.UpdateWFAliasSet2009/12/15 15:56:17 - Release 3 update changeset alias set started2009/12/15 15:56:17 - Workitem - 4a0069a280002100 / dmadmin / 12/15/2009 3:55:45 PM / 00000000000000002009/12/15 15:56:17 - Workflow - 4d0069a280001d00 / wf_single_review 2009-12-15 / 4b0069a280002d53 / 1 / dmadmin2009/12/15 15:56:18 - This Activity - DSMUpdateWFAliasSet2009/12/15 15:56:18 - WCM Change Set - 090069a280062915 / dsm_comment / Test-Workflow / html2009/12/15 15:56:19 - ERROR - Invalid workflow package type. wcm_change_set expected.The code :packageimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportimportpublicpublic static IDfSession session;public static IDfSysObject newDoc;public static void main(String args[]){session =getSession();try {customImportOperation(session);initiateWorkFlow();}catch(DfException exp) {exp.printStackTrace();}}public static IDfSession getSession(){IDfSession session =null;try {IDfClientX clientx =new DfClientX();IDfClient client = clientx.getLocalClient();//create an IDfLoginInfo object named "loginInfoObj"IDfLoginInfo loginInfoObj = clientx.getLoginInfo();String user ="dmadmin";String pass="s4BTRKgr";String strDocbaseName ="wcm01";loginInfoObj.setUser(user);loginInfoObj.setPassword(pass);loginInfoObj.setDomain(null);//create a session using newSessionsession = client.newSession(strDocbaseName, loginInfoObj);}catch(DfException exp){exp.printStackTrace();}System.out.println("Session connected is "+session.isConnected());return session;}public static void customImportOperation(IDfSession xSession) throws DfException{IDfClientX loClientX =new DfClientX();IDfImportOperation importOperation =loClientX.getImportOperation();importOperation.setSession(session);String filePath="D:\\test.html";IDfId folderId=loClientX.getId("0b0069a2800553cf");IDfFile file =loClientX.getFile(filePath);//IDfImportNode impNode= (IDfImportNode)customImportOperation(getSession()).add(file);IDfImportNode impNode= (IDfImportNode)importOperation.add(file);impNode.setDestinationFolderId(folderId);impNode.setDocbaseObjectType("dsm_comment"); //Set here the object type for the imported objectimpNode.setFormat("html");// this should be a valid format impNode.setNewObjectName("Test-Workflow");boolean result = importOperation.execute();System.out.println("Result of the import operation is "+result);IDfList objList = importOperation.getNewObjects();int size = objList.getCount();for(int k=0;k<size;k++) {//IDfId newId = (IDfId)objList.getId(k);newDoc = (IDfSysObject)objList.get(k);System.out.println("Object Id of the newly imported document is "+newDoc.getString("r_object_id"));}newDoc.setString("acl_name", "dyneema");newDoc.setString("acl_domain", "wcm01");newDoc.setString("a_special_app", "2");System.out.println(@");newDoc.save();System.out.println("bbbbbbbbbbbbbb");newDoc.fetch(null);newDoc.attachPolicy(new DfId("460069a280002d49"), "WIP", "");//newDoc.setString("r_alias_set_id", "660069a280002502");System.out.println(" ha ha ha");newDoc.save();System.out.println("$$$$$$$$$$$$$$$$$$$$");//return importOperation;}public static void initiateWorkFlow() {IDfQuery queryProcess =new DfClientX().getQuery();String process_id =null; IDfCollection collProcess =null;IDfWorkflowBuilder wfBldrObj =null;IDfWorkflow workflow =null;try{queryProcess.setDQL("select r_object_id from dm_process where object_name='wf_single_review'");collProcess = queryProcess.execute(session, IDfQuery.DF_READ_QUERY);while (collProcess.next()) {process_id=collProcess.getString("r_object_id");}IDfWorkflowBuilderworkflowBuilder = session.newWorkflowBuilder(new DfId( process_id ) );// Init the workflow!IDfId NewWorkflowId = workflowBuilder.initWorkflow();System.out.println("Workflow initted! Id: " + NewWorkflowId );// Start the workflow running!IDfId NewWorkflowId2 = workflowBuilder.runWorkflow();System.out.println("Workflow started! Id: " + NewWorkflowId2 );// You would add your package here if necessary// Get the workflow object we createdworkflow = workflowBuilder.getWorkflow();// Get lists of the start activity Names and IDsIDfList StartActivityNames = workflowBuilder.getStartActivityNames();for(int k=0;k<StartActivityNames.getCount();k++) {System.out.println("Name of the start activity is :"+StartActivityNames.getString(k));}IDfList StartActivities = workflowBuilder.getStartActivityIds();// for(int p=0;p<StartActivities.getCount();p++) {//// System.out.println("Id of the start activity is "+StartActivities.getString(p));// }// Get the first start activity's NameString ActivityName = StartActivityNames.getString(0);// Get the first start activity IDIDfId ActivityId = (IDfId)StartActivities.get(0);// Construct an IDfActivity from the start activity IDIDfActivity TheActivity = (IDfActivity)session.getObject( ActivityId );String AnActivityName =TheActivity.getObjectName();// Get the number of ports and loop through them until you find an input portint nPorts = TheActivity.getPortCount();System.out.println("Number of ports are :"+nPorts);String InputPortName =null;for (int j=0; j<nPorts; j++){System.out.println("Port Name: " + TheActivity.getPortName(j) +", " + "Port Type = " + TheActivity.getPortType(j) );if ( TheActivity.getPortType(j).equals( "INPUT" ) )InputPortName = TheActivity.getPortName(j);System.out.println("Name of the input port is:"+InputPortName);}// With AnActivity and InputPort, we can now attach a package// First create a list of components (even though we only have one component)System.out.println("Package type is :"+TheActivity.getPackageType(0));DfList List =new DfList();List.append(new DfId( newDoc.getString("r_object_id") ) );System.out.println("Name of the package retrieved is :"+TheActivity.getPackageName(0));if(newDoc.getHasFolder()) {int k = newDoc.getFolderIdCount();for( int p=0;p<k;p++) {IDfId folderId = newDoc.getFolderId(p);IDfSysObject folderObj = (IDfSysObject)session.getObject(folderId);System.out.println("Name of the folder is "+folderObj.getObjectName());IDfCollection wfColl = folderObj.getWorkflows("","");while(wfColl.next()) {String wfId = wfColl.getString("r_workflow_id");IDfWorkflow wf = (IDfWorkflow)session.getObject(new DfId("wfId"));System.out.println("Name of the workflow associated is :"+wf.getObjectName());}}}// IDfId PackageId = workflow.addPackage(// AnActivityName,// InputPortName,// "Test-Package-Name",// "dsm_comment",// "This is a message to the first recipient",// false,// List );//// IDfId PackageId = workflow.addPackage(// AnActivityName,// InputPortName,// TheActivity.getPackageName(0),// TheActivity.getPackageType(0),// "This is a message to the first recipient",// false,// List );IDfId PackageId = workflow.addPackage(AnActivityName,InputPortName,TheActivity.getPackageName(0),TheActivity.getPackageType(0),"This is a message to the first recipient",false,List );}catch(DfException exp) {exp.printStackTrace();}}} class ImportFunction { com.documentum.fc.common.DfList; com.documentum.fc.common.IDfList; com.documentum.fc.client.IDfActivity; com.documentum.fc.common.DfId; java.util.Date; com.documentum.fc.client.IDfCollection; com.documentum.fc.client.IDfProcess; com.documentum.fc.client.IDfWorkflowBuilder; com.documentum.fc.client.IDfWorkflow; com.documentum.fc.client.IDfQuery; com.documentum.operations.IDfFile; com.documentum.fc.common.IDfId; com.documentum.operations.IDfImportNode; com.documentum.operations.IDfImportOperation; com.documentum.fc.common.DfLoginInfo; com.documentum.fc.common.IDfLoginInfo; com.documentum.fc.common.DfException; com.documentum.com.IDfClientX; com.documentum.com.DfClientX; com.documentum.fc.client.IDfSysObject; com.documentum.fc.client.IDfSessionManager; com.documentum.fc.client.IDfSession; com.documentum.fc.client.IDfDocument; com.documentum.fc.client.DfSession; com.documentum.fc.client.IDfClient; com.documentum.fc.client.DfSysObject; com.documentum.fc.client.DfDocument; com.documentum.fc.client.DfClient; com.documentum.dsm.blog;