getworkitemvariable.java
来自「公司自己开发的工作流引擎」· Java 代码 · 共 162 行
JAVA
162 行
package cn.com.iaspec.workflow.engine.business;
import cn.com.iaspec.workflow.vo.workflow.*;
import com.sunyard.sunflow.client.*;
import com.sunyard.sunflow.engine.dataclass.*;
public class GetWorkItemVariable{
public GetWorkItemVariable(){
}
/**
* 取得工作项的相关变量信息
* @param workItemId int
* @param userInfo UserInfo
* @return WMTAttribute[]
*/
public ActivityVariable[] getWorkItemAllVariableValue(long workItemId,
UserInfo userInfo)
throws Exception{
SunflowClient sunflowclient=WorkflowSession.getSunflowClient(userInfo);
try{
return convertToActivityVariable(sunflowclient.getWorkItemRelevantData(
workItemId,null));
}
finally{
WorkflowSession.deleteSunflowClient(userInfo);
}
}
/**
* 将ActivityVariable转化为WMTAttribute
* @param attr WMTAttribute[]
* @throws Exception
* @return ActivityVariable[]
*/
public static ActivityVariable[] convertToActivityVariable(WMTAttribute[]
attr)
throws Exception{
ActivityVariable[] actVar=new ActivityVariable[attr.length];
for(int i=0;i<attr.length;i++){
ActivityVariable tempActVar=new ActivityVariable();
actVar[i]=tempActVar;
actVar[i].setAttributeName(attr[i].getAttributeName());
actVar[i].attributeType=attr[i].attributeType;
switch(attr[i].attributeType){
case 4: // '\004'
actVar[i].setStringValue(attr[i].getStringValue());
break;
case 8: // '\b'
actVar[i].setFileValue(attr[i].getFileValue());
break;
case 3: // '\003'
actVar[i].setDoubleValue(attr[i].getDoubleValue());
break;
case 1: // '\001'
actVar[i].setIntValue(attr[i].getIntValue());
break;
case 2: // '\002'
actVar[i].setBooleanValue(attr[i].getBooleanValue());
break;
case 6: // '\006'
actVar[i].setDateValue(attr[i].getDateValue());
break;
case 5: // '\005'
actVar[i].setTimestampValue(attr[i].getTimestampValue());
break;
case 10: // '\n'
actVar[i].setBinaryValue(attr[i].getBinaryValue());
break;
case 7: // '\007'
actVar[i].setArrayValue(attr[i].getArrayValue());
actVar[i].setClassPath(attr[i].getClassPath());
break;
case 9: // '\t'
actVar[i].setObjectValue(attr[i].getObjectValue());
actVar[i].setClassPath(attr[i].getClassPath());
break;
}
}
return actVar;
}
/**
* 将ActivityVariable转化为WMTAttribute
* @param actVar ActivityVariable[]
* @throws Exception
* @return WMTAttribute[]
*/
public static WMTAttribute[] convertToWMTAttribute(ActivityVariable[] actVar)
throws Exception{
WMTAttribute[] attr=new WMTAttribute[actVar.length];
for(int i=0;i<actVar.length;i++){
WMTAttribute tempAttr=new WMTAttribute();
attr[i]=tempAttr;
attr[i].setAttributeName(actVar[i].getAttributeName());
attr[i].attributeType=actVar[i].attributeType;
switch(actVar[i].attributeType){
case 4: // '\004'
attr[i].setStringValue(actVar[i].getStringValue()==null?"":
actVar[i].getStringValue());
break;
case 8: // '\b'
attr[i].setFileValue(actVar[i].getFileValue());
break;
case 3: // '\003'
attr[i].setDoubleValue(actVar[i].getDoubleValue());
break;
case 1: // '\001'
attr[i].setIntValue(actVar[i].getIntValue());
break;
case 2: // '\002'
attr[i].setBooleanValue(actVar[i].getBooleanValue());
break;
case 6: // '\006'
attr[i].setDateValue(actVar[i].getDateValue());
break;
case 5: // '\005'
attr[i].setTimestampValue(actVar[i].getTimestampValue());
break;
case 10: // '\n'
attr[i].setBinaryValue(actVar[i].getBinaryValue());
break;
case 7: // '\007'
attr[i].setArrayValue(actVar[i].getArrayValue());
attr[i].setClassPath(actVar[i].getClassPath());
break;
case 9: // '\t'
attr[i].setObjectValue(actVar[i].getObjectValue());
attr[i].setClassPath(actVar[i].getClassPath());
break;
}
}
return attr;
}
public void updateWorkitemReleData(long workitemId,ActivityVariable[] vars,UserInfo userInfo)
throws Exception{
SunflowClient sunflowClient = WorkflowSession.getSunflowClient(userInfo);
WMTAttribute[] wmtAttrs = this.convertToWMTAttribute(vars);
sunflowClient.modifyWorkItemRelevantData(workitemId,wmtAttrs);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?