Consultor Eletrônico



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