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.