The user selects an Item in a data drop down list (dataDropDownList1). A second data drop down (dataDropDownList2) list is populated with items from a wsdl service. One of the items in the second data drop down (dataDropDownList2) is selected automatically after the population of items.
What is happening:
dataDropDownList2 does not updated its text unless the item in dataDropDownList1 is selected twice.
create a new subform on your form below all the other elements on your form.
drag and drop the soap service from your data view onto your form into the new subform.
in the subform you created for these elements, go to the initialize event and make it hidden (this.presence="hidden";)
the input variable for the soap can now be manipulated to send the data you'd like using its' .rawValue.
The .rawValue of your input variable will serve as the input to your service, even when cloned it still uses the form fields for the values. Even better, keep the subform visible and you'll be able to see the values being past to your service as well as being retrieved.
- Don't use the hard-coded xfa.connectionSet when calling web services. Use a clone of the service and replace the soapAddress with a variable that you can pass into your form data from your rendering process. This will let you move your form from one environment to another without having to change your WSDL.
service = xfa.connectionSet.findCurrentStatus.clone(true); service.soapAddress.value = controlPanel.findCurrentStatusWSDL.rawValue; var serviceCall = service.execute(0);
- The thing you need to know about the dropdown is that to get the current selected value you have to do a little more work. To get the current value you need to check the fa.event.newText then look up the bound value: