Updating a Drop Down List Selected Item | Community
Skip to main content
friendlyPerson
February 17, 2016
Solved

Updating a Drop Down List Selected Item

  • February 17, 2016
  • 7 replies
  • 2793 views

What I want:

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.

My code in the change event of dataDropDownList1

function findItemInDataDropDownList(dataDropDownList,itemSearchValue) { for(var i=0;i<=dataDropDownList.length;i++) { if(dataDropDownList.getSaveItem(i)==itemSearchValue) { dataDropDownList.selectedIndex = i; break; } } } xfa.connectionSet.DataConnection1.execute(false); findItemInDataDropDownList(dataDropDownList2,"UNKN");
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by sixteenlabsinc

This is actually a fairly simple thing to do:

  • 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.

7 replies

smacdonald2008
Level 10
February 17, 2016

What AEM version are you using. Are you using Touch UI or classic? 

friendlyPerson
February 17, 2016

I am using Adobe Experience Manager - Forms Version 6.1.0.20150517.1.919161 Designer.

Level 3
February 17, 2016
So, a couple of things about your code:

- 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:

selectedValue     = this.boundItem(xfa.event.newText);
friendlyPerson
February 17, 2016

If the soap web service require a variable for example 

Content-Type: text/xml; charset=utf-8 SOAPAction: http://tempuri.org/IOnlineAccessioningService/GetCommodities <x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <x:Header/> <x:Body> <tem:GetCommodities> <tem:speciesBreedCode>insert a value here</tem:speciesBreedCode> </tem:GetCommodities> </x:Body> </x:Envelope>

How can I pass the speciesBreedCode to

service = xfa.connectionSet.findCurrentStatus.clone(true);

sixteenlabsincAccepted solution
Level 3
February 17, 2016

This is actually a fairly simple thing to do:

  • 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.

Adobe Employee
February 17, 2016

http://216.104.208.185/content/demo-listings/demo-listings.html

Third sample from the bottom and you can click the link at the top to get the package

Level 8
March 30, 2016

Hi,

I have been looking for a web services integration from AEM Forms 6.1 to populate a dropdown and posted a query in this Forum..

Got the solution for AEM 6.2.

Could you please help me with the procedure of achieving this using 6.1?

Any web service is fine with me.

Thanks,

Rama.