Consultor Eletrônico



Kbase P149078: How can I change the result of the Web service?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/11/2010
Status: Unverified

GOAL:

How can I change the result of the Web service?

GOAL:

How to return something like 'OK' instead in case no error occurs?

GOAL:

How to change contents of ProDataSet via XML

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.x

FIX:

Example code:
DEFINE VAR hdoc AS HANDLE.
DEFINE VAR hRoot AS HANDLE.
DEFINE VARIABLE hXfield AS HANDLE.
DEF VAR vlong AS LONGCHAR INITIAL "OK" NO-UNDO.
CREATE X-DOCUMENT hdoc.
CREATE X-NODEREF hRoot.
hdoc:LOAD("file", "AppServerXxresult.xml", FALSE).
hdoc:GET-DOCUMENT-ELEMENT(hRoot).
RUN GetChildren(hRoot, 1).
hdoc:SAVE("file", "MODIFIEDAppServerRXresult.xml").
PROCEDURE GetChildren:

DEFINE INPUT PARAMETER hParent AS HANDLE.
DEFINE INPUT PARAMETER level AS INT.
DEFINE VAR i AS INT.
DEFINE VAR hNoderef AS HANDLE.
DEFINE VAR hNoderefChild AS HANDLE.

CREATE X-NODEREF hNoderef.
CREATE X-NODEREF hNoderefChild.

REPEAT i = 1 TO hParent:NUM-CHILDREN.
hParent:GET-CHILD(hNoderef,i).

CREATE X-NODEREF hXfield.
IF hNoderef:NAME = "responseContext" THEN DO:
IF hNoderef:NUM-CHILDREN = 1 THEN hNoderef:GET-CHILD(hNoderefChild,1).

hdoc:CREATE-NODE(hXfield, ? , "Text") .
hXfield:LONGCHAR-TO-NODE-VALUE(vlong) .
hNoderef:APPEND-CHILD(hXfield).

DELETE OBJECT hXfield .
hNoderef:REMOVE-CHILD(hNoderefChild).

END.

RUN GetChildren(hNoderef, (level + 1)).

END.
DELETE OBJECT hNoderef.
END.