public static void createNewProcess(String workflowName,
ModelObject[] objects) throws ServiceException, NotLoadedException {
WorkflowService wfService = WorkflowService.getService(AppXSession
.getConnection());
ContextData contextData = new ContextData();
String observerKey = "";
String name = "SOA-workflow";
String subject = "FileDeal";
String desc = "";
contextData.processTemplate = workflowName;
contextData.attachmentCount = objects.length;
String[] attachments = new String[objects.length];
int[] attachmentTypes = new int[objects.length];
for (int i = 0; i < objects.length; i++) {
attachments[i] = objects[i].getUid();
attachmentTypes[i] = 1;
}
contextData.attachments = attachments;
contextData.attachmentTypes = attachmentTypes;
InstanceInfo instanceInfo = wfService.createInstance(true, observerKey,
name, subject, desc, contextData);
ServiceData data = instanceInfo.serviceData;
int size = data.sizeOfCreatedObjects();
EPMSelectSignoffTask task = null;
for (int i = 0; i < size; i++) {
ModelObject obj = data.getCreatedObject(i);
Utils1.getProperty(new ModelObject[]{obj}, "all_tasks");
EPMJob job = (EPMJob) obj;
ModelObject[] alltask = job.get_all_tasks();
for (int j = 0; j < alltask.length; j++) {
if (alltask[j].getTypeObject().getName()
.equals("EPMSelectSignoffTask")) {
task = (EPMSelectSignoffTask) alltask[j];
break;
}
}
}
// 获取负责人指派
Utils1.getProperty(objects, "zy8_AssignmentResource");
Property pro = objects[0].getPropertyObject("zy8_AssignmentResource");
ModelObject userobj = pro.getModelObjectValue();
User user = (User) userobj;
Utils1.getProperty(new ModelObject[]{user}, new String[]{"user_id","user_name","default_group"});
System.out.println(user.get_user_id()+"=================");
ModelObject group = user.get_default_group();
Utils1.getProperty(new ModelObject[]{group}, "name");
System.out.println(group.getPropertyDisplayableValue("name")+"==================");
String[] mkeys = { "组","用户ID" };
String[] mvalues = { group.getPropertyDisplayableValue("name"),user.get_user_id() };
SavedQueryResults results1 = getSearch(mkeys, mvalues,
"ZY8__EINT_group_members");
ModelObject[] items1 = results1.objects;
GroupMember member = (GroupMember) items1[0];
Workflow.CreateSignoffInfo signoffInfo = new Workflow.CreateSignoffInfo();
signoffInfo.signoffMember = member;
signoffInfo.signoffAction = "SOA_EPM_Review";
signoffInfo.originType = "SOA_EPM_ORIGIN_UNDEFINED";
signoffInfo.origin = null;
Workflow.CreateSignoffInfo[] arrayOfCreateSignoffInfo = new Workflow.CreateSignoffInfo[1];
arrayOfCreateSignoffInfo[0] = signoffInfo;
Workflow.CreateSignoffs createSignoffs = new Workflow.CreateSignoffs();
createSignoffs.signoffInfo = arrayOfCreateSignoffInfo;
createSignoffs.task = task;
Workflow.CreateSignoffs[] arrayOfCreateSignoffs = new Workflow.CreateSignoffs[1];
arrayOfCreateSignoffs[0] = createSignoffs;
ServiceData signdata = wfService.addSignoffs(arrayOfCreateSignoffs);
// 自动提交
PerformActionInputInfo[] infos = new PerformActionInputInfo[1];
PerformActionInputInfo info = new PerformActionInputInfo();
info.clientId = "AppX_Test";
info.action = "SOA_EPM_complete_action";
info.supportingValue = "SOA_EPM_completed";
info.actionableObject = task;
infos[0] = info;
wfService.performAction3(infos);
}