Assign-copy problem, very strange!
pkovgan Jan 3, 2007 11:15 AMI have very "strange" problem in Assign:
The problem is : I failed to copy second element of complex type using XPATH. Copy is possible only if I copy 1-st element, then second.
Look at my sequence:
<sequence> <!-- receive the name of a person --> <receive operation="CustomerCustomerCreated" partnerLink="MakeDonationcaller" portType="tns:MakeDonationConsumer" variable="_start" createInstance="yes"/> <assign> <copy> <from variable="_start" part="ID"/> <to variable="_createOrderMessage" part="root" query="/root/impl3:customerRoot/impl4:id"/> </copy> </assign> <invoke name="SalesOrderAccessCreate" operation="salesOrderAccessCreate" partnerLink="SalesOrder" portType="impl3:ISalesOrderService" inputVariable="_createOrderMessage" outputVariable="_customerId"> </invoke> </sequence>
I copy TO id of customerRoot. But id appeares as SECOND element in WSDL:
<complexType name="CustomerRootWrapper"> ? <sequence> <element maxOccurs="unbounded" minOccurs="0" name="customerRootBillToAddress" nillable="true" type="tns:CustomerRootBillToAddressWrapper"/> <element maxOccurs="unbounded" minOccurs="0" name="customerRootContactPersons" nillable="true" type="tns:CustomerRootContactPersonsWrapper"/> <element maxOccurs="unbounded" minOccurs="0" name="customerRootShipToAddress" nillable="true" type="tns:CustomerRootShipToAddressWrapper"/> <element name="description" nillable="true" type="string"/> <element name="id" nillable="true" type="string"/> <element name="name" nillable="true" type="string"/> </sequence> </complexType>
If I change my copy and first copy TO description of customerRoot and THEN TO id of customerRoot - copy succeeds.
<sequence> <!-- receive the name of a person --> <receive operation="CustomerCustomerCreated" partnerLink="MakeDonationcaller" portType="tns:MakeDonationConsumer" variable="_start" createInstance="yes"/> <assign> <copy> <from variable="_start" part="ID"/> <to variable="_createOrderMessage" part="root" query="/root/impl3:customerRoot/impl4:description"/> </copy> <copy> <from variable="_start" part="ID"/> <to variable="_createOrderMessage" part="root" query="/root/impl3:customerRoot/impl4:id"/> </copy> </assign> <invoke name="SalesOrderAccessCreate" operation="salesOrderAccessCreate" partnerLink="SalesOrder" portType="impl3:ISalesOrderService" inputVariable="_createOrderMessage" outputVariable="_customerId"> </invoke> </sequence>
Strange? Please help!
Thanks!