Hi All,

This seems like it should be simpler than it has been for me, but I am neither 
an expert with webservices nor CF. Though not a newbie, my guess is that there 
is something fundamental I am missing. I have sought answers to this and read 
many articles, but either the suggestions do not work, do not apply or talk of 
writing a wrapper in java. Perhaps it isn't even possible to represent this in 
CF, but I have not seen anything that says that, either.

Anyway, the webservice I call returns an array of objects named 
TABLE_OF_BAPIRET2 (if I am understanding properly). After making the call, 
doing a cfdump of the result I get "Variable TABLE_OF_BAPIRET2 is undefined". 
See attached code below for INVOKE and CFDUMP code.

These results are not surprising after reading the article "Handling complex 
data types" 
(http://livedocs.adobe.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00001554.htm).
 So, I changed the cfdump to reference TABLE_OF_BAPIRET2.MESSAGE. This did not 
work (I did not expect it to since there is nothing in the statement 
referencing the array element). However, it did give me more promising results: 
"Element MESSAGE is undefined in TABLE_OF_BAPIRET2". This tells me I can 
reference the return variable as suggested by the cited article, but I must be 
doing something wrong. NOTE: when I specified an index by stating 
TABLE_OF_BAPIRET2[1].MESSAGE, I go back to the error "Variable 
TABLE_OF_BAPIRET2 is undefined". This I did not expect and am now stumped.

I've attached below the relevant section of the wsdl defining the structure. I 
am also attaching the SOAP message that is returned.

Is it even possible to decipher this object? Or, do I need to use java (I am 
comfortable with that, but would rather use CF). I strongly believe this is not 
the case, that there is something fairly simple I am overlooking, but cannot 
see it. So, any help is greatly appreciated!

TIA,

bill 
-------------------------------------------------
The INVOKE of the webservice
-------------------------------------------------
        <cfinvoke 
               
webservice="http://sapcrd.comfort.com:8000/sap/bc/srt/rfc/sap/Z_YXG_SIMPLE_INPUT_TEST_WS?sap-client=300&wsdl=1.1";
               username="turnbo"
               password="myX2bare"
               method="Z_YXG_SIMPLE_INPUT_TEST"
               BAPIRET2="#myArray#"
               IN_NO_ROW="1"
               IN_TEXT="This is a test."
               returnVariable="TABLE_OF_BAPIRET2"
          />
          
        <cfdump var="#TABLE_OF_BAPIRET2#" /> 

-------------------------------------------------
The WSDL snippet
-------------------------------------------------
               <xsd:complexType name="BAPIRET2">
                    <xsd:sequence>
                         <xsd:element name="TYPE" type="tns:char1"/>
                         <xsd:element name="ID" type="tns:char20"/>
                         <xsd:element name="NUMBER" type="tns:numeric3"/>
                         <xsd:element name="MESSAGE" type="tns:char220"/>
                         <xsd:element name="LOG_NO" type="tns:char20"/>
                         <xsd:element name="LOG_MSG_NO" type="tns:numeric6"/>
                         <xsd:element name="MESSAGE_V1" type="tns:char50"/>
                         <xsd:element name="MESSAGE_V2" type="tns:char50"/>
                         <xsd:element name="MESSAGE_V3" type="tns:char50"/>
                         <xsd:element name="MESSAGE_V4" type="tns:char50"/>
                         <xsd:element name="PARAMETER" type="tns:char32"/>
                         <xsd:element name="ROW" type="xsd:int"/>
                         <xsd:element name="FIELD" type="tns:char30"/>
                         <xsd:element name="SYSTEM" type="tns:char10"/>
                    </xsd:sequence>
               </xsd:complexType>
               <xsd:complexType name="TABLE_OF_BAPIRET2">
                    <xsd:sequence>
                         <xsd:element name="item" minOccurs="0" 
maxOccurs="unbounded" type="tns:BAPIRET2"/>
                    </xsd:sequence>
               </xsd:complexType>

-------------------------------------------------
The SOAP response
-------------------------------------------------
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/";>
     <soap-env:Body>
          <n0:Z_YXG_SIMPLE_INPUT_TESTResponse 
xmlns:n0="urn:sap-com:document:sap:rfc:functions">
               <BAPIRET2>
                    <item>
                         <TYPE>S</TYPE> 
                         <ID>Trillium</ID> 
                         <NUMBER>001</NUMBER> 
                         <MESSAGE>This is a test.</MESSAGE> 
                         <LOG_NO /> 
                         <LOG_MSG_NO>000000</LOG_MSG_NO> 
                         <MESSAGE_V1 /> 
                         <MESSAGE_V2 /> 
                         <MESSAGE_V3 /> 
                         <MESSAGE_V4 /> 
                         <PARAMETER /> 
                         <ROW>0</ROW> 
                         <FIELD /> 
                         <SYSTEM /> 
                    </item>
               </BAPIRET2>
          </n0:Z_YXG_SIMPLE_INPUT_TESTResponse>
     </soap-env:Body>
</soap-env:Envelope> 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;160198600;22374440;w

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:299498
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to