楼主,现在问题是楼主好像还是没有真正理解流程在何时启动实例,这在8楼的第二点已经说的很清楚了,即
2、RunFunc启动流程是怎么用的
RunFunc是运行功能,不是启动流程,流程的启动,决定流程的启动规则的启动模式,是流转时还是处理时,如果是流转时,那么只有点击流转按钮,且在流转对话框中点击“确定”按钮才启动流程实例;如果是处理时,那么需要保存一下数据,流程实例才启动
而你,现在是,仅仅在报警监控功能中,仅仅修改 'F_IsDealWithed' 这个字段的值,且这个功能不是流程中的功能,然后去run入口功能,流程实例肯定不会,如果run功能后,在run的入口功能中修改数据,且保存,就有可以启动流程实例(流程的启动模式需要修改为处理时)
解决你的问题,应该把1楼的代码修改为
for i:=0 to dsb_Alarm.DataSet.RecordCount-1 do
begin
dsb_Alarm.DataSet.Edit;
alarmId:=dsb_Alarm.DataSet.FieldByName('F_Alarm_ID').AsString;
// SystemCore.TSystemCore.FuncManager.RunFunc(SystemCore.TSystemCore.Operator.Positions[0].Context, '', 'Biz:\WGXTDEMO\BJCLStart.Func', '', nil, False);
dsb_Alarm.DataSet.FieldByName('F_IsDealWithed').AsString:='1';//
isAlarmed:=true;
dsb_Alarm.DataSet.Next;
end;
dsb_Alarm.DataSet.ApplyUpdates;
//下面代码启动流程实例,代码参考http://bbs.justep.com/forum.php?mod=viewthread&tid=1202
这样就可以了
如果你这个应该入口功能是没有意义的,所以启动流程实例的接收者直接设置为第二个功能的接收者就可以了 |