Consultor Eletrônico



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 */).