Kbase P7927: RowObjUpd records are being accumulated when using preTransa
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  25/11/2003 |
|
Status: Unverified
FACT(s) (Environment):
Progress 9.1C
FACT(s) (Environment):
Progress 9.1D
SYMPTOM(s):
RowObjUpd records are being accumulated when using preTransactionValidate
CAUSE:
There are always 2 records for each update. The RowMod field identifies the record type, 'U' = update, blank = before update, 'A' = Add , 'C' = Copy.
When preTransactionValidate is being used, remove the before image RowObjUpd if it returns an error. Otherwise, the records accumulate.
FIX:
Remove the before image RowObjUpd record by using updateState('reset') in the PreTransactionValidate procedure when it fails. This will not work in 9.1D however.
i.e.
RUN updateState
( INPUT 'reset' /* CHARACTER */).
In 9.1D, deletion of the before image RowObjUpd can be done by calling resetRow() in the SDO's handle.
i.e. sample trigger code
Use the following code in the trigger code for BUTTON-1 using SDO handle h_dcustomer:
DYNAMIC-FUNCTION('resetRow':U IN h_dcustomer,
INPUT DYNAMIC-FUNCTION('fetchRowIdent':U IN h_dcustomer,sRowID,"") /*
CHARACTER */).