[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New to http questions



Hello Walker,

> 1. In the Incoming proc,  what is the purpose of calling the proc
> 'atof' ? I am working on the response from the web service, which is
> a pass/fail value.

atof() is a C function that converts a character string representing a 
floating point number into a floating point variable (data type F in RPG).

It was used in my currency exchange example because the WSDL for the 
currency exchange web service claimed that it returned a floating point 
value -- so it made sense.

> 2. Not only is the web service passing a flag, but also a
> description. I notice that when I get name = 'anyType' I get two of
> them. The first comes as the flag and then the next instance of
> 'anyType', the description. They don't come as value(PSuccess), but
> value(P) and then value(Success).

It depends on how the XML document is laid out.  From what you're 
describing, your web service is returning an XML document that looks 
like this:

<Sample>
    <anyType>P</anyType>
    <anyType>Success</anyType>
</Sample>

Note that XML elements like <Sample> (that do NOT have a slash) are 
"start elements". XML elements like </Sample> that do have a slash are 
"end elements". HTTPAPI will call your subprocedures individually for 
every element found.  The character data (the data in between the tags) 
is passed in the "value" parameter for end elements.

In this sample XML, HTTPAPI would call your procedures as follows:

StartProc: depth=1, name="Sample", path="/"
StartProc: depth=2, name="anyType", path="/Sample"
EndProc  : depth=2, name="anyType", path="/Sample", value="P"
StartProc: depth=2, name="anyType", path="/Sample"
EndProc  : depth=2, name="anyType", path="/Sample", value="Success"
EndProc  : depth=1, name="Sample", path="/", value="      "

Although I don't think you mentioned this, your sample code sounds like 
it's a copy of EXAMPLE18 (Currency Exchange). EXAMPLE18 tells HTTPAPI to 
skip the StartProc (by passing *NULL in the StartProc parameter) and 
tells HTTPAPI to call a subprocedure named 'Incoming' as the EndProc. 
So HTTPAPI would do the following:

Incoming: depth=2, name="anyType", path="/Sample", value="P"
Incoming: depth=2, name="anyType", path="/Sample", value="Success"
Incoming: depth=1, name="Sample", path="/", value="      "

But, in any event, HTTPAPI is just following the XML document that was 
given to it.  The reason you'd get two XML elements with the same name 
would be because the document contained two XML elements with the same 
name.

If you think HTTPAPI is doing this when it shouldn't, please send me a 
copy of the XML document that's giving you grief, and I'll try to 
reproduce the problem and fix it.
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------