users@jax-rpc.java.net

Dynamic Invocation

From: Gautam Bajekal <gautam.bajekal_at_COMMERCEONE.COM>
Date: Thu, 21 Nov 2002 13:59:44 -0700

Hello,

I had a question on Dynamic Invocation using JAX-RPC. Lets say I am designing a broker that dynamically discovers a wsdl and invokes an operation on it. The WSDL specifies that the output is a message consisting of several parts as follows


<wsdl:portType name='MaterialPhysInv'>
  <wsdl:operation name='bapi_matphysinv_getitems' parameterOrder='adjust_status_ra batch_ra count_status_ra fiscalyear_ra grouping_crit_ra headers items material_ra physinventory_ra phys_inv_no_ra plant_ra plan_date_ra ssw_return stge_loc_ra'>
   <wsdl:input message='bapi_matphysinv_getitems'/>
   <wsdl:output message='bapi_matphysinv_getitemsResponse'/>
   <wsdl:fault name='RFCException' message='RFCException'/>
  </wsdl:operation>

<wsdl:message name='bapi_matphysinv_getitemsResponse'>
  <wsdl:part name='adjust_status_ra' type='RFC:BAPI_PHYSINV_ADJUST_ST_RASeq'/>
  <wsdl:part name='batch_ra' type='RFC:BAPI_PHYSINV_BATCH_RASeq'/>
  <wsdl:part name='count_status_ra' type='RFC:BAPI_PHYSINV_COUNT_ST_RASeq'/>
  <wsdl:part name='fiscalyear_ra' type='RFC:BAPI_PHYSINV_YEAR_RASeq'/>
  <wsdl:part name='grouping_crit_ra' type='RFC:BAPI_PHYSINV_GROUP_CRIT_RASeq'/>
  <wsdl:part name='headers' type='RFC:BAPI_PHYSINV_HEADSeq'/>
  <wsdl:part name='items' type='RFC:BAPI_PHYSINV_ITEMSeq'/>
  <wsdl:part name='material_ra' type='RFC:BAPI_PHYSINV_MATERIAL_RASeq'/>
  <wsdl:part name='physinventory_ra' type='RFC:BAPI_PHYSINV_DOC_RASeq'/>
  <wsdl:part name='phys_inv_no_ra' type='RFC:BAPI_PHYSINV_PH_INV_NO_RASeq'/>
  <wsdl:part name='plant_ra' type='RFC:BAPI_PHYSINV_PLANT_RASeq'/>
  <wsdl:part name='plan_date_ra' type='RFC:BAPI_PHYSINV_PLAN_DATE_RASeq'/>
  <wsdl:part name='ssw_return' type='RFC:BAPIRET2Seq'/>
  <wsdl:part name='stge_loc_ra' type='RFC:BAPI_PHYSINV_STGE_LOC_RASeq'/>
 </wsdl:message>



Now when I use Dynamic Invocation using the Call object, what should I set my output type to be. The output is not a single object like what is given in the webservices tutorial but consists of several different parts. How do you handle such a situtation?