procedure TVOUCHER_ENTER.FlowBroker1AfterFlowFinish(Sender: TObject; Command: TFlowFinishCommand);
var
lDataSet1,lDataSet2: TDataSet;
ls_vouid, ls_balsysid, ls_sql, ls_operator:string;
lContextCurrent: Business.Model.TContextCurrent;
H:TTransactionHandle;
begin
lContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
try
ls_operator := lContextCurrent.Operator.ID; //当前操作者ID
finally
lContextCurrent.Free;
end;
H := Start(False); //启动事务
// Start 后面的参数是指事务的启动方式,分为立即方式和非立即方式,建议使用False,非立即方式
try
lDataSet1 := DataSetBroker1.DataSet;
if not lDataSet1.Active then
lDataSet1.Open;
ls_vouid:= lDataSet1.FieldByName('VouID').AsString;
ls_sql:= 'update EXP_VOUCHER set VouAuditState = '+ QuotedStr('30')+' where VouID = '+QuotedStr(ls_vouid);
TSysBaseUtils.ExcSql(ls_sql);
//更新费用审核状态
lDataSet2 := DataSetBroker2.DataSet;
if not lDataSet2.Active then
lDataSet2.Open;
lDataSet2.First;
while not lDataSet2.Eof do
begin
with lDataSet2 do
begin
ls_balsysid:= lDataSet2.FieldByName('BalSysId').AsString;
ls_sql:= 'update EXP_BALANCE set BalCheckFlg = '+ QuotedStr('30')+ ',' +
' BalCheckDate = '+ QuotedStr(FormatDatetime('yyyy-mm-dd',Business.Data.SysSrv.SysService.Time)+' 00:00:00') +',' +
' BalChecker = ' + QuotedStr(ls_operator) + ',' + 'BalCnclTtl = BalTtl, BalCnclStdTtl = BalStdTtl' +
' where BalSysID = '+QuotedStr(ls_balsysid);
TSysBaseUtils.ExcSql(ls_sql);
next;
end;
end;
Commit(H); // 结束
except
Rollback(H); //回滚事务
end;
end;
以上语句报错:
[警告] 循环引用: "Biz:\JQERP\FYJS\DZFKPZ\VOUCHERFUNC.FUNC"-->"Biz:\JQERP\FYJS\DZFKPZ\VOUCHERINFO.Info"-->"Biz:\JQERP\HDGLXT\YWXXGGZY\GZBHXZ\JOBNOSELECT.Info"-->"Biz:\JQERP\HDGLXT\YWXXGGZY\GZBHXZ\JOBNOSELECT.Info"
[错误]Biz:\JQERP\FYJS\DZFKPZ\VOUCHERFUNC.FUNC.DIR\VOUCHER_ENTER.Form.pas(167, 8): Undeclared identifier "Start"
[错误]Biz:\JQERP\FYJS\DZFKPZ\VOUCHERFUNC.FUNC.DIR\VOUCHER_ENTER.Form.pas(195, 5): Undeclared identifier "Commit"
[错误]Biz:\JQERP\FYJS\DZFKPZ\VOUCHERFUNC.FUNC.DIR\VOUCHER_ENTER.Form.pas(197, 5): Undeclared identifier "Rollback"
为什么说没有定义呢? |