Kbase P186229: The WRITE-XML method does not write out the correct XML node name.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/19/2011 |
|
Status: Unverified
SYMPTOM(s):
The WRITE-XML method does not write out the correct XML node name when a dataset is passed back from a called procedure..
XML-NODE-NAME value is not passed back from a called procedure to a calling procedure using a dynamic dataset.
XML-NODE-NAME attribute isn't passed back with dataset parameter.
The XML-NODE-NAME attribute is ignored when copying a ProDataSet back to a calling procedure.
The calling procedure uses a dynaimc prodataset as followw:
DEFINE VARIABLE hDataSet AS HANDLE NO-UNDO.
DEF VAR lok AS LOGICAL.
RUN customer.p (OUTPUT DATASET-HANDLE hDataSet ).
lok = hDataSet:WRITE-XML("file", 'customerNOT-OK.xml', YES).
The called procedure associates the dynamic prodataset with a static prodataset as follows:
DEFINE OUTPUT PARAMETER DATASET-HANDLE ophDataSet .
DEF VAR lok AS LOGICAL.
DEF TEMP-TABLE ttCustomer NO-UNDO XML-NODE-NAME 'Customer' RCODE-INFORMATION
FIELD cName AS CHARACTER XML-NODE-NAME 'Name'.
DEFINE DATASET dsCustomer
FOR ttCustomer.
CREATE ttCustomer.
ASSIGN ttCustomer.cName = "Lift Tours".
ASSIGN
ophDataSet = DATASET dsCustomer:HANDLE.
lok = ophDataSet:WRITE-XML("file", 'customerOK.xml', YES).
The WRITE-XML method creates different node names from the same dataset, in calling and called procedures.
FACT(s) (Environment):
Passing a dynamic ProDataSet to a called procedure with a static dataset definition.
All Supported Operating Systems
OpenEdge 10.2x
CAUSE:
Bug# OE00206829
FIX:
None at this time. As a workaround, define the dataset statically in the calling procedure. For example:
DEFINE VARIABLE hDataSet AS HANDLE NO-UNDO.
DEF VAR lok AS LOGICAL.
DEF TEMP-TABLE ttCustomer NO-UNDO XML-NODE-NAME 'Customer' RCODE-INFORMATION
FIELD cName AS CHARACTER XML-NODE-NAME 'Name'.
DEFINE DATASET dsCustomer FOR ttCustomer.
hDataset = DATASET dsCustomer:handle.
RUN customer.p (OUTPUT DATASET-HANDLE hDataSet).
lok = hDataSet:WRITE-XML("file", 'customerNOT-OK.xml', YES).