Kbase P118001: Dynamics Dynamic Lookup linked field behavior changed in OpenEdge
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  15/08/2006 |
|
Status: Unverified
FACT(s) (Environment):
OpenEdge 10.x
Dynamics
SYMPTOM(s):
Dynamic Lookup linked field behavior changed in OpenEdge
RowDisplay is run before Dynamic Lookup/Combo linked fields are updated
Code written in rowDisplay that relies on the value of Dynamic smartDataField linked fields fails in OpenEdge 10.0B05 and OpenEdge 10.1A
CHANGE:
Upgraded Dynamics application from OpenEdge 10.0A01 to OpenEdge 10.0B05.
CAUSE:
This is a known issue being investigated by Development
There has been a change in behavior in the displayFields procedure in viewer.p. The problem is that in 10.0A01 the displayfields procedure in viewer.p, ends with:
/* Display Lookup query/Combo results */
PUBLISH "displayLookup":U FROM TARGET-PROCEDURE (INPUT TABLE ttLookup).
PUBLISH "displayCombo":U FROM TARGET-PROCEDURE (INPUT TABLE ttDCombo).
END.
RUN updateTitle IN TARGET-PROCEDURE.
RUN rowDisplay IN TARGET-PROCEDURE NO-ERROR. /* Custom display checks.*/
RETURN.
But in 10.0B05 and 10.1A01 the same procedure ends with:
/* Display Lookup query/Combo results */
PUBLISH "displayLookup":U FROM TARGET-PROCEDURE (INPUT TABLE
ttLookup).
PUBLISH "displayCombo":U FROM TARGET-PROCEDURE (INPUT TABLE
ttDCombo).
END.
END. /* lRefreshFields */
END. /* if pcColValues = ? and useRepository */
RUN updateTitle IN TARGET-PROCEDURE.
RUN rowDisplay IN TARGET-PROCEDURE NO-ERROR. /* Custom display checks.*/
/* publish displayField if record avail ( pcColValues <> ? )
clearField is being run in all SDFs above if no record avail*/
IF pcColValues <> ? OR lRefreshDataFields THEN
PUBLISH 'displayField':U FROM TARGET-PROCEDURE.
RETURN.
The result is that in the later version, because the run of rowDisplay
is before the PUBLISH of displayField then his code breaks because the
old linked field value is used in any rowDisplay override.
FIX:
The problem can be worked around by simply moving the RUN of rowDisplay after the PUBLISH displayField.