f_aps_mrp_lock.srf 953 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. $PBExportHeader$f_aps_mrp_lock.srf
  2. global type f_aps_mrp_lock from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_aps_mrp_lock (long arg_scid, string arg_lockemp, ref string arg_msg)
  6. end prototypes
  7. global function integer f_aps_mrp_lock (long arg_scid, string arg_lockemp, ref string arg_msg);Int rslt = 1
  8. UPDATE aps_mrp_lock
  9. SET iflock = 1,
  10. lastlocktime = getdate(),
  11. locktime = getdate(),
  12. lockemp = :arg_lockemp
  13. Where scid = :arg_scid;
  14. IF sqlca.SQLCode <> 0 THEN
  15. arg_msg = 'MRP运算锁定失败,'+sqlca.SQLErrText
  16. rslt = 0
  17. GOTO ext
  18. ELSEIF sqlca.SQLNRows = 0 THEN
  19. INSERT INTO aps_mrp_lock(scid,iflock,lastlocktime,locktime,lockemp)
  20. Values(:arg_scid,1,getdate(),getdate(),:arg_lockemp);
  21. IF sqlca.SQLCode <> 0 THEN
  22. arg_msg = '新增MRP运算锁定失败,'+sqlca.SQLErrText
  23. rslt = 0
  24. GOTO ext
  25. END IF
  26. END IF
  27. ext:
  28. IF rslt = 0 THEN
  29. ROLLBACK;
  30. ELSE
  31. COMMIT;
  32. END IF
  33. RETURN rslt
  34. end function