$PBExportHeader$f_aps_mrp_lock.srf global type f_aps_mrp_lock from function_object end type forward prototypes global function integer f_aps_mrp_lock (long arg_scid, string arg_lockemp, ref string arg_msg) end prototypes global function integer f_aps_mrp_lock (long arg_scid, string arg_lockemp, ref string arg_msg);Int rslt = 1 UPDATE aps_mrp_lock SET iflock = 1, lastlocktime = getdate(), locktime = getdate(), lockemp = :arg_lockemp Where scid = :arg_scid; IF sqlca.SQLCode <> 0 THEN arg_msg = 'MRP运算锁定失败,'+sqlca.SQLErrText rslt = 0 GOTO ext ELSEIF sqlca.SQLNRows = 0 THEN INSERT INTO aps_mrp_lock(scid,iflock,lastlocktime,locktime,lockemp) Values(:arg_scid,1,getdate(),getdate(),:arg_lockemp); IF sqlca.SQLCode <> 0 THEN arg_msg = '新增MRP运算锁定失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSE COMMIT; END IF RETURN rslt end function