Kbase P89359: DATETIME field causes error 5729 in af/app/afauditlgp.p audit procedure
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Unverified
FACT(s) (Environment):
OpenEdge 10.0A
SYMPTOM(s):
Dynamics
Updating records get error:
Incompatible datatypes found during runtime conversion (5729)
The 4GL Stack Trace shows the error in af/app/afauditlgp.p
One of the updated fields has DATETIME data type.
Auditing is enabled for that table
CAUSE:
This is a known issue being investigated by Development.
FIX:
In af/app/afauditlgp.p use STRING function everywhere the BUFFER-VALUE is used.
ORIGINAL af/app/afauditlgp.p code:
/*-----------------------*/
IF LOOKUP(pcAction,"DELETE":U) > 0
THEN DO:
ASSIGN
cBufferFieldValueOld = (IF VALID-HANDLE(hNewBufferField) THEN hNewBufferField:BUFFER-VALUE ELSE "":U)
cBufferFieldValueNew = (IF VALID-HANDLE(hOldBufferField) THEN hOldBufferField:BUFFER-VALUE ELSE "":U)
.
END.
ELSE DO:
ASSIGN
cBufferFieldValueNew = (IF VALID-HANDLE(hNewBufferField) THEN hNewBufferField:BUFFER-VALUE ELSE "":U)
cBufferFieldValueOld = (IF VALID-HANDLE(hOldBufferField) THEN hOldBufferField:BUFFER-VALUE ELSE "":U)
.
END.
/*-----------------------*/
SUGGESTED SOLUTION:
/*-----------------------*/
IF LOOKUP(pcAction,"DELETE":U) > 0
THEN DO:
ASSIGN
cBufferFieldValueOld = (IF VALID-HANDLE(hNewBufferField) THEN /*Change*/ string(hNewBufferField:BUFFER-VALUE) ELSE "":U)
cBufferFieldValueNew = (IF VALID-HANDLE(hOldBufferField) THEN /*Change*/ string(hOldBufferField:BUFFER-VALUE) ELSE "":U)
.
END.
ELSE DO:
ASSIGN
cBufferFieldValueNew = (IF VALID-HANDLE(hNewBufferField) THEN /*Change*/ string(hNewBufferField:BUFFER-VALUE) ELSE "":U)
cBufferFieldValueOld = (IF VALID-HANDLE(hOldBufferField) THEN /*Change*/ string(hOldBufferField:BUFFER-VALUE) ELSE "":U)
.
END.
/*-----------------------*/