Kbase P109913: Dynamics Treeview node displays the wrong data.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  14/10/2005 |
|
Status: Unverified
FACT(s) (Environment):
OpenEdge 10.0B
SYMPTOM(s):
Selecting low level Dynamics Treeview node does not refresh the displayed data.
Treeview node does not display the correct data.
The problem is very intermittent and only seems to happen for some nodes.
CAUSE:
This is a known issue being investigated by Development
FIX:
There are two possible ways to resolve this problem:
1. Set the Session property "maxHiddenContainers" to 0.
2. Refresh the SDO foreign fields with dataAvailable in tvNodeSelected. This has to be done in the lower level Treeview SDO. In this example the top level node SDO is a product SDO (productfullo) and the lower level SDO node is a wharehouse SDO (stkWHfullo). Therefore in the Treeview super procedure add a tvNodeSelected override procedure with the following code:
DEFINE INPUT PARAMETER pcNodeKey AS CHARACTER NO-UNDO.
DEFINE VARIABLE hTreeBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hData AS HANDLE NO-UNDO.
DEFINE VARIABLE cTargets AS CHARACTER NO-UNDO.
RUN SUPER (pcNodeKey).
RUN returnTreeBuffer IN TARGET-PROCEDURE
(INPUT pcNodeKey, OUTPUT hTreeBuffer).
hData = IF hTreeBuffer:AVAILABLE THEN
hTreeBuffer:BUFFER-FIELD("sdo_handle":U):BUFFER-VALUE
ELSE ?.
/* Get handle of top level node SDO */
IF VALID-HANDLE(hData) AND
DYNAMIC-FUNCTION('getObjectName':U IN hData) = "productfullo" AND
NOT VALID-HANDLE(h_productSDO) THEN
h_productSDO = hData.
/* Get handle of lower level SDO */
IF VALID-HANDLE(hData) AND
DYNAMIC-FUNCTION('getObjectName':U IN hData) = "stkWHfullo" AND
NOT VALID-HANDLE(h_WHSDO) THEN
h_WHSDO = hData.
IF VALID-HANDLE(h_WHSDO) THEN
DO:
/* Refresh foreign fields */
PUBLISH 'dataAvailable' FROM h_WHSDO ("DIFFERENT").
END.