1. 在树型结构中查找指定节点
string parObjID = p_bd.ParentObjID;
BusinessInvokeResult res = BusinessRunTimeService.LoadBusinessData(parObjID,null,null,null,null);
if(res.IsSuccessful)
{
BusinessData bd = (BusinessData)res.ResultValue;
p_bd["MC"] = bd["MC"];
p_bd["XH"] = bd["XH"];
}
string id = parObjID;
string bm = "",sql = "";
do
{
sql = string.Format("select l.src_obj_id ID from mwt_om_link l where l.TGT_OBJ_ID =\'{0}\'",id);
id = (string)DataAccessService.ExecuteScalar(sql);
sql = string.Format("select MC from MW_APP.PM_NW_ZH_BM where obj_id=\'{0}\'",id);
bm = (string)DataAccessService.ExecuteScalar(sql);
}while(bm==null);
p_bd["BM"] = bm;
2.创建具体对象之间的连接并保存业务对象
BusinessInvokeResult res = WorkflowMediator.GetObjIDOfProcessInstance(Context.SourceActivityInstance.ProcessInstanceID);
string objID = (string)res.ResultValue;
res = BusinessRunTimeService.LoadBusinessData(objID,null,null,null,null);
if(res.IsSuccessful)
{
BusinessData bd = (BusinessData)res.ResultValue;
bd["ZT"] = "提出";
BusinessRunTimeService.SaveBusinessData(bd, null,null, null);
string asctID = "5F73900F-12BA-411A-AFD4-F75856372E6D";
string parObjID = bd["MC"].ToString();
BusinessInvokeResult link = BusinessRunTimeService.CreateLink(asctID,parObjID,objID);
if(!link.IsSuccessful)
{
result.IsSuccessful = false;
result.ResultHint = "创建业务对象失败!";
return result;
}
}
private IBusinessRunTimeService modelService;

protected void Page_Load(object sender, EventArgs e)
{
string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string filter = "mw_sys.MWT_PD_BULLETIN.bulletin_exptime > to_date(\'" + dt + "\',\'yyyy-MM-dd HH24:mi:ss\')";

BusinessObject bo = new BusinessObject();
modelService = PlatformSingleton.Platform.GetService(typeof(IBusinessRunTimeService)) as IBusinessRunTimeService;
BusinessNodeCollection collection = modelService.LoadBusinessNodes("75EA100E-592A-426F-9379-845DE456DC4A",
null,
"74C27BD6-4F26-4A5B-85F1-EA43F18F30A5",
null,
null,
null);

foreach (BusinessNode node in collection)
{
Response.Write(node.ObjID);
}

BusinessInvokeResult result = modelService.BatchLoadBusinessData2("75EA100E-592A-426F-9379-845DE456DC4A",
filter,
null,
null,
null,
"74C27BD6-4F26-4A5B-85F1-EA43F18F30A5",
null);
if (result.IsSuccessful)
{
BusinessDataCollection datas = result.ResultValue as BusinessDataCollection;

foreach (BusinessData data in datas)
{
Response.Write(data["bulletin_body"]);
}
}
}
2.创建具体对象之间的连接并保存业务对象
需要注意的是,以上代码是在迁移脚本中实现的,而在活动脚本中获取业务对象就有点不同.代码如下
BusinessInvokeResult res = WorkflowMediator.GetObjIDOfProcessInstance(Context.ActivityInstance.ProcessInstanceID);
3. 在UserControl的服务段获取业务对象