Connecting to a Web Service
Since I wrote my various articles on connecting forms to databases, I’ve had numerous inquiries about connecting to web services so here’s the long-overdue article on doing just that.
In Designer, you not only have the ability to create data connections to schemas (directly or based on sample XML data) and databases, you can also connect to web services. Web services are online applications that return information in response to specific requests. These requests and responses are sent and received via the SOAP protocol in various formats, as specified by the web service in an XML-based language called WSDL (you guessed it — Web Service Description Language).
Advantages of Web Services
One of the main advantages of using web services is to create an abstraction from server components such that clients ask the web service for information (via its various operations) without having to know the specifics about the server-side implementation (e.g. the web service may retrieve information from an Access database one day and later switch to a MySQL database but the client would still retrieve information in the same way, via the web service’s operations). If implemented correctly, web services can also provide better security by preventing clients from connecting directly to databases from the Internet, for example.
Supported Web Service Operation Types
To keep things simple, the WSDL basically describes the operations that are supported by the web service. To execute an operation, the client must submit a request to a web service operation and, upon receipt, the web service will execute the operation and submit a response back to the client, possibly containing data. Furthermore, these requests and responses are submitted in specific formats using specific data types which the WSDL also describes for each operation.
Document/Literal — Supported in Designer and Acrobat
The most important thing to note here is that Designer only supports executing web service operations which are specified as document/literal. This means that an operation defines XML schemas for its request and response formats. In turn, the XML data adhering to an operation’s request and response schemas can easily be gathered from a form using basic data bindings (a way, in XFA, to link a particular field’s value to a specific data node in a data connection).
RPC/Encoded — Supported in Acrobat only
Some of you more familiar with web services will note that operations may also be specified in the rpc/encoded format. Designer does not support executing such operations at this time because the data formats are more complex than straight XML schemas. The Google Search web service is an example. You may choose to connect to such operations using Acrobat’s SOAP object but beware that there is no server-side support for this object. This article will focus on doc/literal operations since they’re fully supported across all LiveCycle products.
Creating the Data Connection
Now that you have a basic understanding of web services and the document/literal operation type supported in Designer, let’s see how simple it is to execute a web service operation and receive a response.
First, you must create a new data connection to a web service. In the Data View palette’s menu, choose the "New Data Connection…" command, select "WSDL File" as the type and continue to the next step:

At the second step, you’ll be asked to specify the WSDL file to connect to. For this tutorial, you’ll connect to a little web service called "Echo Employee" which simply defines 4 fields for the request and returns their data back as the response:
http://www.whitemesa.net/wsdl/r3/compound2.wsdl

When you click the "next" button, Designer will attempt to connect to the WSDL file and retrieve a list of its document/literal operations. If successful, you’ll get to the third step where you can choose the operation that will be executed by the data connection:

In this case, there is only one operation. Choose "echoEmpolyee" and click on the "finish" button.
Designer will then use the data type definitions for the request and response formats of the echoEmployee operation to define a data structure in the new data connection in the Data View palette:

The only thing that remains is to create 2 sets of fields (one which will be used to submit the data for the request and another to receive the response) and a button to execute the operation. This can be done very easily simply by dragging and dropping the "DataConnection" node (or whatever you named your data connection earlier when you created it) onto your form. This will automatically generate all the necessary fields and bindings as well as the execute button:

Notice, in the Data View palette, that the icons pertaining to the various request/response fields are different than the usual binding icons: The request field icons have a single red arrow pointing to the left (indicating that their data is outgoing) and the response field icons have a single green arrow pointing to the right (indicating that their data is incoming).
You should now have the following object block on your form (from the earlier drag and drop operation) with fields of types matching the data which they will contain (text, numeric, etc.):

That’s it! All that remains is to preview your form using Acrobat Standard or Pro (since connecting to a web service implies importing data which is only possible using Acrobat Standard/Pro or an extended PDF, via LC Reader Extensions, in Reader).
In the preview window, fill-in the top 4 fields and click on the "Echo Employee Btn".

If you correctly configured your data connection and created the necessary fields and bindings, Acrobat should connect to the web service, submit the data you entered as the request to the "echoEmployee" operation which will, in turn, respond with the same data to Acrobat, at which point the response data will be pushed into the response fields (directly below the 4 top fields):

Note that the fact that the same data is returned is only specific to this web service and its "echoEmployee" operation. Other web service operations may return different data (e.g. you submit a record ID and the response contains all the information for an individual) or not data at all (if the operation is simply meant to add a new record in a back-end system, for example).
Update (May 24, 2007): My colleague Zee from flexlive.net has posted a video tutorial on connecting a form to a web service. If you’re looking for something with more context, you might what to try that since you get to see the actual steps in Designer which I’m attempting to describe.
Sample Form
In case you have trouble following these steps, you may download the "solution" file here:
Minimum Sample Requirements: Designer 7.x, Acrobat 7.x.

May 30th, 2007 at 6:24 am
I was trying this Web service tutorial and got it to work properly with Acrobat Pro 8 but not with Acrobat Reader.
Acrobat Pro 8 includes LC Designer and LC Reader Extension but it look like something is missing or I’m doing
something wrong when enabeling Reader rights. The response from the web service does not appear.
May 30th, 2007 at 9:27 am
I had the same problem. The button doesn’t work in Reader, but I think it has to have Reader Extensions applied. Is that the same as enabling rights using Acrobat Pro 8 or is it the separate product that Adobe has called “Reader Extensions.”
May 31st, 2007 at 12:15 am
Fridrik, Ken,
Ken is correct: The form needs to be reader-extended in order to function properly in the free Adobe Reader. Unfortunately, this is not the same as the new “Enable Usage Rights in Reader” feature now available in Acrobat Pro 8.0.
“Enable Usage Rights in Reader” only enables “local save” and not full-fledged data import which is what you need for importing data from a data connection (XML Data, ODBC or WSDL).
June 20th, 2007 at 11:23 am
Now, after the introduction of Adobe LC ES, is it right to assume that I need, as the creator of the interactiv PDF form, to buy the Data Capture Edition of LiveCycle ES for this kind of operation to work with the free Adobe Reader. Does someone know if prices have been mentioned somewhere.
June 21st, 2007 at 11:46 am
This is all very interesting.
I was hoping to be able to do something similar, targeting users with free Acrobat Reader installed. Looks like I can’t??
Am I the only person who find’s it really odd, and rather frustrating that:
a) it’s up to me to dig this kind of info out by searching newgroups and blogs, rather than Adobe providing some decent publically-available documentation setting it all out in a clear, easy to understand way
b) why Adobe have decided to make this web service connectivity feature unavailable to so many potential users, who aren’t likely to want to pay up for a full version of Acrobat.
Also:
Can you confirm that, if I wanted to do something similar involving populating a dropdown control with the response from a web service:
i) it would be possible -if so, how, precisely?
ii) even if it were possible (and I’d love to know EXACTLY how it’s achieved if so), it’s actually of no use to me since my target users are only likely to be willing to use a free version of Acrobat Reader.
June 21st, 2007 at 11:49 am
As a follow on from my last post - I stand corrected, having just re-read some of the preceding posts… users with Acrobat Reader could potentially benefit from the web service connectivity feature, but only if I have somehow done something to the form using “Reader Extensions”, whatever that is.
Am I correct to stand corrected? If so, some detailed info on what “Reader Extensions” actually consists of, and what/how/why they are needed, would be very much appreciated. I’m guessing it’s all subject to licencing costs too - are these costs significant?
June 21st, 2007 at 6:02 pm
Fridrik,
You’ve always needed either LC Forms ES or LC Reader Extensions ES to import data into the free Adobe Reader. If you did the data import on the server side, then you’d need LC Forms ES. If you did it on the client side, then you would use LC Reader Extensions.
I haven’t heard about any pricing details yet.
June 21st, 2007 at 6:21 pm
Pete,
I agree: I wish there was one logical place where customers/developers could go to get a straight answer on what they need for data import in PDF forms.
The short story is that you need either LC Forms ES (for server-side data import) or LC Reader Extensions ES (for client-side data import) to enable people using only the free Adobe Reader to fill your form with a data connection to a schema, database or web service. The reason is that data import is one way in which Adobe monetizes the Reader which they freely distribute.
Basically, the Adobe Reader cannot import data by default. Although it’s capable of doing so, that functionality is hidden and can only be “unlocked” on a form-by-form basis by using Reader Extensions (or you can circumvent it by having Forms to the data import on the server and serve the resulting PDF to the free Reader). By using Reader Extensions, you can enable things like data import for a specific PDF.
Other hidden features in the free Reader are the ability to do a “local save” (give the user the ability to save their form — with data — to their local system in order to re-open it later and continue/finish filling the form) or to apply a digital signature to a PDF. These two functionalities don’t require the full Reader Extensions to be enabled as they can be enabled for limited use (I believe the limit is 500 uses of those functionalities per form — you would have to check the licensing agreement to be certain) using Adobe Acrobat Pro however enabling “local save” will not enable “data import”.
Unfortunately, both Forms and Reader Extensions are quite expensive if you’re just wanting to enable a few forms. An alternative to purchasing Reader Extensions is to find a company which licenses Reader Extensions and charges a reduced cost to extend only a few forms (so instead of paying Adobe a large sum of money for Reader Extensions, you would pay this third party a much smaller cost on a per-form basis). You might also be able to find a company that would host your form on a server which has an installation of Forms — I’m not sure about that one though.
June 22nd, 2007 at 3:55 am
Stefan
Thanks for the useful (if slightly depressing) info.
So, I need either LC Forms ES or LC Reader Extensions ES if I want to import data to a PDF using a web service.
But what about simple “fillable” forms, where you create a template PDF in LiveCycle Designer, deploy it on your web server, and then serve some XFA-compliant XML to the client that contains data for certain fields (e.g. Smith) plus a URL reference to the template PDF….when this is parsed by the Adobe software on the client, the template PDF is downloaded and the data is merged. Oh, and also the template contains a button that submits the form content back as an XDP package to a given URL….?
I’ve already created an example of the above type of form…it works, but I haven’t tried it with free Adobe Reader. My question is, will the free Adobe Reader let the user see the partially-populated PDF and allow them to fill in the remaining fields and click the button to submit their filled-in form back to the URL? Or will it only work if I send them the form via LC Forms ES or LC Reader Extensions ES? I guess to answer this, I could try this out myself, but I need to know the official answer just in case there’s something non-standard in my environment (i.e. my dev PC!) that makes it look as if it works when actually it shouldn’t.
June 22nd, 2007 at 4:09 am
Sorry, yet another post… I would actually love to know how dropdown population is acheived using a web service, just in case LC Forms ES or LC Reader Extensions ES end up being available to me. I have tried following some earlier advice you’ve given to another person, but it didn’t go far enough for me to appreciate exactly what I needed to do. More info would be really useful.
June 26th, 2007 at 1:59 pm
Hi Stefan,
I just want to clarify my understanding of this. I have created a form in Designer that is uploaded to our server and then accessed by a call to a php program that switches to HTTPS and then downloads the pdf form. The user fills in the form and then submits. The data is sent to my Linux/apache/PHP/MySQL server as POST data. this works great! Now I’m ready to have the form data accessed by the recipient, so I want to use the same form, and extract the data and populate it. Do I understand that if I use the SOAP/WSDL methods I can do this without requiring any upgrades or extensions to Reader, and that I don’t have to have any additional software except the SOAP client and a php program to process the SOAP request?
There’s ton’s of information on the net and in Adobe, but sometimes simple answers are just not to be found.
To see/try my form you may go to http://www.devtest.ipssolutions.com/bwca.php?d=1
And, yes, the d=1 is used for configuration control, which means I will be able to add parameters that I will dynamically use to set up the SOAP call via scripts.
Thanks
Marty
June 26th, 2007 at 11:55 pm
Pete Smith,
That’s very interesting. You would have to try this out in your environment with Reader. I would expect, however, that you wouldn’t be able to merge the data into the PDF if the client application is Reader since Reader doesn’t allow data merge from an external source unless you’ve Reader-Extended the form to allow “data import”. That would be the “official” answer. I’d be curious to know if you got this to work with Reader. What does the packet you serve-out to the client look like? Can you post a sample?
LC Forms is different than Reader Extensions because it performs the data merge (or data import) on the server prior to serving the PDF out to the client (whether it’s Reader or any flavor of Acrobat). In this case, you don’t need to Reader-Extend the PDF because there’s no data merge that takes place at the client-end.
Without knowing the degree of sensitivity of the data you’re trying to import into your PDF form, if you can deploy the PDF to a web server, then you could do the data import manually by passing the data into the PDF via the URL Request. Of course, if it’s sensitive data, then this wouldn’t be an option but it might give you some ideas…
June 27th, 2007 at 12:20 am
Pete Smith,
With regards to your question about populating a drop down list with a web service data connection, you should be able to use the Dynamic Binding feature to bind the drop down list’s item data to a repeating section in the response of a web service call.
June 27th, 2007 at 8:24 am
I can confirm that, having uninstalled my trial version of Adobe Acrobat Professional 8.0 (which includes LiveCycle Designer) and reverting to my existing Adobe Reader 7.0, I was able to open my test web portal, and download my XFA/XML “packet” (XFA form data plus pdf reference) and the data and XFA form template were merged successfully.
The data I’m serving to the client (simply writing out data to the Response object of my ASP.NET page) looks something like this:
private void FormatResponse(string data)
{
Response.Charset = “”;
Response.AddHeader(”Content-Type”, “application/vnd.adobe.xdp+xml”);
Response.AddHeader(”Content-Disposition”, “inline”);
Response.Write(GenerateBlankPDF());
}
private string GenerateBlankPDF()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
string strPDFUrl = ConfigurationManager.AppSettings["ApplicationFormURL"];
sb.Append(”<?xml version=\”1.0\” encoding=\”UTF-8\”?>”);
sb.Append(”<?xfa generator=\”XFA2_4\” APIVersion=\”2.5.6290.0\”?>”);
sb.Append(”<xdp:xdp xmlns:xdp=\”http://ns.adobe.com/xdp/\”>”);
sb.Append(” <xfa:datasets xmlns:xfa=\”http://www.xfa.org/schema/xfa-data/1.0/\”>”);
sb.Append(” <xfa:data>”);
sb.Append(” <topmostSubform>”);
sb.Append(” <txtForename>Pete</txtForename>”);
sb.Append(” <txtSurname>Pete</txtSurname>”);
sb.Append(” </topmostSubform>”);
sb.Append(” </xfa:data>”);
sb.Append(” </xfa:datasets>”);
sb.Append(” <pdf href=\”" + strPDFUrl + “\” xmlns=\”http://ns.adobe.com/xdp/pdf/\” />”);
sb.Append(”</xdp:xdp>”);
return sb.ToString();
}
The ApplicationFormURL config item is just a simple URL pointing to the blank XFA form deployed elsewhere on the same server.
From what you’ve said, it sounds as if you wouldn’t have expected this to work in Adobe Reader (free). Have I witnessed magic here then? Or maybe my de-install of Acrobat Pro has left something hanging around which makes it work?
Also:
Notice this isn’t “data import” in the sense of having web service calls embedded into the form at design time. From all your other repsonses I’m now aware that this isn’t available in the free Adobe Reader unless the form has been suitable ‘activated’ via LC Forms ES or Reader Extensions. This example is purely merging data values into a fixed blank ‘template’. What I’d really love to be able to do is to modify things like dropdown list contents to make them dynamically bound to the database, but I gather this is only possible using web services etc. and hence will need LC Forms ES or Reader Extensions.
BTW:
I still don’t know what data a web service actually needs to return in order for a dropdown sitting on an XFA form to be able to “understand” it and use it to populate it’s own list of items. Does the data need to be XML? I’ve tried returning stuff like e.g. “<root><item>Mr.</item><item>Miss</item><item>Mrs</item><item>Ms</item></root>” as a string and all that seems to happen is that the dropdown just displays the entire XML string as a single item. Sometimes Designer also tries to convert it to a textbox control (presumably because it sees the return type of the webservice as ’string’).
Unfortunately your article on Dynamic Binding hasn’t helped me crack the problem.
June 27th, 2007 at 8:28 am
I’ve tried posting a sample of the packet I’m sending, but for some reason it disappears when I click ’submit comment’. Wonder what I’m doing wrong.
June 27th, 2007 at 8:28 am
The data I’m serving to the client (simply writing out data to the Response object of my ASP.NET page) looks something like this:
private void FormatResponse(string data)
{
Response.Charset = “”;
Response.AddHeader(”Content-Type”, “application/vnd.adobe.xdp+xml”);
Response.AddHeader(”Content-Disposition”, “inline”);
Response.Write(GenerateBlankPDF());
}
private string GenerateBlankPDF()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
string strPDFUrl = ConfigurationManager.AppSettings["ApplicationFormURL"];
sb.Append(”<?xml version=\”1.0\” encoding=\”UTF-8\”?>”);
sb.Append(”<?xfa generator=\”XFA2_4\” APIVersion=\”2.5.6290.0\”?>”);
sb.Append(”<xdp:xdp xmlns:xdp=\”http://ns.adobe.com/xdp/\”>”);
sb.Append(” <xfa:datasets xmlns:xfa=\”http://www.xfa.org/schema/xfa-data/1.0/\”>”);
sb.Append(” <xfa:data>”);
sb.Append(” <topmostSubform>”);
sb.Append(” <txtForename>Pete</txtForename>”);
sb.Append(” <txtSurname>Pete</txtSurname>”);
sb.Append(” </topmostSubform>”);
sb.Append(” </xfa:data>”);
sb.Append(” </xfa:datasets>”);
sb.Append(” <pdf href=\”" + strPDFUrl + “\” xmlns=\”http://ns.adobe.com/xdp/pdf/\” />”);
sb.Append(”</xdp:xdp>”);
return sb.ToString();
}
June 27th, 2007 at 8:30 am
The packet I’m sending looks like this:
<?xml version=\”1.0\” encoding=\”UTF-8\”?>
<?xfa generator=\”XFA2_4\” APIVersion=\”2.5.6290.0\”?>
<xdp:xdp xmlns:xdp=\”http://ns.adobe.com/xdp/\”>
<xfa:datasets xmlns:xfa=\”http://www.xfa.org/schema/xfa-data/1.0/\”>
<xfa:data>
<topmostSubform>
<txtForename>Pete</txtForename>
<txtSurname>Pete</txtSurname>
</topmostSubform>
</xfa:data>
</xfa:datasets>
<pdf href=\”" + strPDFUrl + “\” xmlns=\”http://ns.adobe.com/xdp/pdf/\” />
</xdp:xdp>
June 27th, 2007 at 8:31 am
strPDFUrl in the above example is just a simple URL pointing to the blank XFA form deployed elsewhere on the same server.
From what you’ve said, it sounds as if you wouldn’t have expected this to work in Adobe Reader (free). Have I witnessed magic here then? Or maybe my de-install of Acrobat Pro has left something hanging around which makes it work?
Also:
Notice this isn’t “data import” in the sense of having web service calls embedded into the form at design time. From all your other repsonses I’m now aware that this isn’t available in the free Adobe Reader unless the form has been suitable ‘activated’ via LC Forms ES or Reader Extensions. This example is purely merging data values into a fixed blank ‘template’. What I’d really love to be able to do is to modify things like dropdown list contents to make them dynamically bound to the database, but I gather this is only possible using web services etc. and hence will need LC Forms ES or Reader Extensions.
BTW:
I still don’t know what data a web service actually needs to return in order for a dropdown sitting on an XFA form to be able to “understand” it and use it to populate it’s own list of items. Does the data need to be XML? I’ve tried returning stuff like e.g. “<root><item>Mr.</item><item>Miss</item><item>Mrs</item><item>Ms</item></root>” as a string and all that seems to happen is that the dropdown just displays the entire XML string as a single item. Sometimes Designer also tries to convert it to a textbox control (presumably because it sees the return type of the webservice as ’string’).
Unfortunately your article on Dynamic Binding hasn’t helped me crack the problem.
June 27th, 2007 at 8:35 am
…and I should also point out that the above example packet is served up with a Content-type of “application/vnd.adobe.xdp+xml”.
June 30th, 2007 at 10:16 pm
Marty,
Cool form — I just gave it a shot as “John Doe”.
If I understand correctly, you’re wanting to give a way for the user to see information they’ve submitted using a PDF form, possibly the same one I just used to submit information but populated with the data that was previously submitted, correct?
If so, then you can do it with a web service however Reader alone won’t be able to import the data into the PDF form. If people accessing this form — with data included — will be using Reader, you have two options:
If people will be using Acrobat Standard or Professional, then there’s no problem connecting to a web service in order to import data into the form as these versions of Acrobat support data import on all forms.
July 10th, 2007 at 5:26 pm
Pete Smith,
Have you made any headway with this over the past week?
It looks to me like you’re generating an XDP with a data packet and an externally-referenced PDF form and serving this to the client. In return, the client is detecting it as a file which can be opened with Acrobat or Reader and proceeds to do so with the data merged-in. As far as I can tell, this is still considered a “data import” and the fact that it works with Reader 7.0 but not with later versions is likely due to the fact that prior to Reader 7.0.5, there was bug which actually permitted Reader to import data without the PDF being Reader-Extended. It’s possible you’re running into this if you’ve reverted back to Reader 7.0.
As far as dynamically populating drop down lists or list boxes, you need to bind the list object to a repeating data node in your data packet. Let’s say we took the data.xml file from my data-nominated subforms tutorial. It looks like this:
The <movie> data node repeats and contains properties about the movie. If you then used the Dynamic Properties feature to bind the <title> data to the items in a list object, you would end-up specifying that the items as a whole are bound to
which means it’s bound to all instances of the <movie> data and then you would also specify the property of the <movie> node which is bound to the list object item’s text as “title”. The resulting XFA is as follows for the list object:
This is obviously very similar to your data example for “Mr, Miss, Mrs and Ms” in your previous comment. The fact that the XML string gets displayed in the drop down list rather than various items make me think that all you’ve got is a binding of the <root> data to the drop down list’s value rather than a dynamic binding of “$record.root[*]” for the items and “item” for the item text values.
July 12th, 2007 at 2:33 pm
Hi all, this has been a great discussion for me as I’ve been trying to get answers to some of these questions myself and can’t seem to find them. I want to summarize what I’ve been reading and get everyone’s opinion if I’m right or not
1) With only Reader installed you are not supposed to be able to do anything that “imports” data into the form.
2) Using Pete Smith’s approach of sending an XDP file through the browser, Reader will populate a form with data (I confimed this works with only Reader 8.1 installed).
3) Given #1, will any web service call work? Should a call invoked via javascript work? I havn’t been successful in getting any web service call to work yet, even with Acrobat Pro installed.
4) By using LC Reader Extensions all this can be enabled for Reader only users.
Another quesion, what is LC Reader Extensions anyway? Is it a tool that you purchase and install on each form designer’s machine? Or does it need to be liscensed for each “Reader only” user? Or is it a server based product? I can’t seem to find much info on this product, including Adobe’s sales staff.
July 16th, 2007 at 8:15 pm
Stefan,
We are attempting to connect to a webservice from a Reader Extended LiveCycle form - using Adobe Reader as the client. We want to streamline our account opening process by creating an interactive, dynamic LiveCycle form with a submit button that uploads the form’s XML content to a webservice. The response of the webservice is the new account code. The process is based off the solution brief - http://www.adobe.com/financial/pdfs/accountopening_sb.pdf
Our network (and potentially the networks of our clients) is behind a Microsoft ISA Server, which uses NTLM proxy authentication (challenge / response).
Using Ethereal, I can see that the form does correctly send the XML to the webservice, however, when the challenge (”HTTP 407 Proxy Authentication Required”) response comes back, Adobe Reader thinks that this is the actual response from the web server, tries to process it and fails with “Error attempting to read from file”.
I’ve attempted to use the HTTP submit feature but that too fails when “Display PDF in browser” is not enabled. The HTTP submit feature works if the PDF is displayed in the browser because the browser has already authenticated to the proxy server. However, calling a webservice from behind an ISA proxy never works, even if the PDF is displayed in the browser.
I have been trying to find information on Adobe Reader’s support of NTLM proxy authentication but I can only find articles on “Adobe Stock Photos” and “Adobe Download Manager” products not being able to handle them.
Are you aware of any work arounds to this problem or do you know of any plans to introduce support for this type of proxy authentication within Adobe Reader?
Thanks,
John.
July 18th, 2007 at 10:34 pm
David Daiker,
In response to your statements/questions:
Put simply, LC Reader Extensions is a server product which is used to set special codes in a PDF form (on a form-by-form basis) which Reader recognizes in order to enable hidden features in Reader such as data import. You could say that Acrobat Pro 8.0 has a very “light” version of LC Reader Extensions built into it because of its new “Enable Usage Rights in Reader” command (under the top-level “Advanced” menu) which allows you to enable “local save” in Reader for a particular form (note that the use of that feature is restricted — see your license agreement for more details).
To find-out more on Reader Extensions, see the feature page which gives you some of the highlights of the product. Note the 4th row from the top highlights providing “web service and database connectivity” for your forms.
July 24th, 2007 at 10:52 am
John Nesbitt,
I’m afraid I don’t know of any workarounds to this situation, neither do I know of any plans for Reader to support authentication when establishing a connection to an external resource such as a web service.
I believe your best bet is to require that users login prior to using the form and, as a result, prior to Reader attempting to establish the connection with the web service.
July 31st, 2007 at 11:33 am
Stefan
Help! Your last reply to my endless waffle about “data imports” and web services is slightly terrifying.
Are you actually saying categorically that the technique I’m clutching onto in something approaching desperation - because, so far, it WORKS - is really just some happy accident?
Forgive me, but I’m beginning to bang my head against a hypothetical brick wall with all this… I’d be delighted to stand corrected but your blog here seems to be literally the *only* resource on the planet where this kind of information is readily forthcoming!
Ok please excuse me for sounding off.
I need to get to the bottom of this once and for all, and quickly.
Is the technique I’m using viable, or should I throw it out right now before more trouble starts? In which case, what’s the next best, cheapest alternative? LiveCycle Forms ES or Reader Extensions ES? And do these products rely on installing/running some extra stuff e.g. JBoss server to effectively host them? Is there a Microsoft-friendly version of them? I can’t get this information from anything I’ve looked at on Adobe websites.
Please Help!
Sounds like David Daiker will be interested in this too…
July 31st, 2007 at 2:01 pm
Pete Smith,
I apologize that this is causing so much frustration. I wish working with data in XFA-PDF forms was more straight-forward. I’ve made an inquiry to colleagues of mine who will hopefully provide me with a more definite answer and will report back here as soon as I hear from them.
In the mean time, to answer your Reader Extensions and Form Server questions, I don’t know much about pricing but I would suspect that Form Server would cost less than Reader Extensions simply because Reader Extensions has a cost per PDF (as I understand it). If you’re really interested in purchasing either, I believe you can get in touch with an Adobe Sales Representative via Adobe’s website. As for deploying either on your server, I’ve been told that Windows Server 2003 can be used however both are Java implementations and therefore require an application server. Apparently, the majority of deployments on Windows Server 2003 have been to WebSphere (which must be purchased separately).
August 1st, 2007 at 12:28 pm
Pete Smith,
The initial reaction from my colleagues is that this probably won’t continue to work. In your previous comments, you indicated that you verified this method works with Reader 7.0. Have you tried it with Reader 8.1? If I could easily replicate what you’re doing, I would test it myself but this is a rather complex scenario to reproduce so I’ll have to ask you to test it yourself. Please let me know if it still works in Reader 8.1 and we’ll take it from there.
August 15th, 2007 at 9:52 am
Stephan
Thanks for your response. I’ve been away from the office the past couple of weeks so have only just picked this up again.
I can confirm that with Reader 8.1.0. everything still seems to work, except dropdown populations!
So for example if I have a dropdown control on my form where someone has selected a value from the list and then submitted the form, if I send them back the XFA data at a later point in time the template is displayed with all their other text field entries populated ok but the dropdown appears as if no value has yet been selected.
In Reader 7.0 the same form behaves ok with dropdowns populated ok too.
Sounds like Form Server and WebSphere together could end up costing a fair bit. What a shame.
August 26th, 2007 at 3:24 pm
Pete Smith,
Thanks for the update on Reader 8.1. I’ll pass this along to my colleague to see what he can make of it.
As for your problem with drop down lists, I’m wondering if we’ve had a little communication problem: In previous comments, you’ve talked about “populating drop down lists” which in your last comment, you’re talking about a problem where there appears to be no selected value in the drop down list. I’ve been responding with methods to populate a drop down list with items which is different from binding a drop down list to a data item in a schema in order load an associated value from an XML Data file. Which one is it that you’re asking about with respect to your on-going drop down list issue?
August 27th, 2007 at 4:59 pm
Pete and Stefan,
I have also used the same method as Pete to populate PDF documents on the fly - by sending the response object back to the client. I’m running 8.1 and can select items in a listbox, but cannot populate items in a dropdown or listbox. If one of you are able to get it to work, can you post an example of what the XFA should look like here? Thanks.
September 18th, 2007 at 2:24 am
Hi,
I have started using the evaluation version of Live Cycle Designer. Can some one please let me know what features/ functionalities are NOT available in the evaluation version.
Presently I am trying to export the Form Data in XML format, but unable to do so, Though the code written to export the form contents into pdf is correct, i am not getting any response/error while i click on the export button.(added for exporting to xml).
Thanks in advance
Sandeep Virmani
September 22nd, 2007 at 2:23 am
Sandeep Virmani,
The evaluation version of LC Designer is the full version except that it has a time limit for its use, after which you’ll have to purchase a copy.
When you talk of exporting “the form data in XML format”, are you saying you’re trying to put a submit button on your form which, when pressed, would submit the form’s data in XML format to an email recipient? If so, simply use the email submit button found in the Library palette’s Standard tab.
October 4th, 2007 at 11:13 am
Hi Stefan,
I have a web service that I created and it looks like it is set up similarly. Although I was wondering if you could extend your example to show how to repeat data from a web service in subforms. For some reason examples that I have found that point to xml files will repeat data properly, although when I apply the same settings on my subforms data will not repeat unless I hard set my initial count on min count. I am using Designer 8 and tried saving the document as v7 and v8 dynamic documents and as an XDP but it just will not automatically generate the correct number of fields for me.
For example,
<Logs>
<LogNum>
12345
</LogNum>
<LogNum>
54321
</LogNum>
</Logs>
I will wrap a Flowed subform around a positioned subform set at initial count 1 and when I execute the web service only 1 text box is there and it fills with the first value.
Then if I set initial count to 2 and execute, I will see both values. The problem is I wont know how many values I’m getting so I am trying to figure out how to make that happen dynamically.
Thanks!
October 18th, 2007 at 12:27 pm
Steven,
I’m a little puzzled as to why this is happening but I have to admit: Your sample XML data (the response from the web service, I assume) looks a little suspicious. When I look at it, I don’t see a repeating section in the way Designer (and XFA) is expecting it. Obviously, the intention is that the “LogNum” data node repeats but in order for the instances to be correctly determined, the repeating data node must contain some other node. Otherwise, there’s nothing to bind the repeatable subform to and then there’s nothing to bind a field within that subform to.
If you were to create a data connection using that sample XML data, the data connection would show you a single data node named “LogNum”. It wouldn’t show you a “LogNum” data node that contains something else.
If you restructured the XML data like this:
then the repeatable subform inside the flowed subform could bind to the <Log> data node and a field inside the subform could bind to the <Num> data node. Establishing these bindings would create multiple instances of the repeatable subform where each instance’s field is populated with the correct log number.
June 2nd, 2008 at 6:24 am
Hello,
I’ve install Adobe LiveCycle ES trial version with JBoss.
I would like to create a form with witch I can call web services (and send datas to another application). I follow the tutorial of Zee Yang (http://www.flexlive.net/?p=70) and your but in the end, when I click on my “submit” button, nothing appens…
But my web services are OK, we can call them with another appli !
What can I do ?
Thank you for your help and sorry for my bad english
Marion.
June 7th, 2008 at 9:28 pm
Marion,
Are you certain the web service operation type you’re connecting to is “document/literal”? If not, the web service data connection will not work properly.
July 7th, 2008 at 3:51 pm
Hi Stefan,
I am working on Adobe livecycle Workbench 8.1.
I went through your article of “Connecting to a Web Service”. I tried to implement it and it works fine. You mentioned that a button is needed to invoke the WebService. Is there a way to skip button clicking. Basically what I am trying is I have a webservice and its returning multiple rows(retrieving results from a lookup table). I need to display the results in a form data drop down list and should happen when I run the form, I dont want another button to be clicked in between.
Thanks,
Madhavi.
July 14th, 2008 at 4:59 pm
Madhavi,
You can manually execute a web service data connection by accessing it in the ConnectionSet DOM and calling its execute() method. Try putting this script in the form’s Initialize event and get rid of the button:
where {WebServiceDataConnectionName} is the name you gave to your web service data connection.
July 15th, 2008 at 3:11 pm
Stefan,
Thanks for your reply. I did try as you suggested before you replied, but now the issue is that its returning only one value to the drop down list while I know there are multiple value. I tried using data drop down list…but it did not help.
Also I have another issue which is -
I created a process, the goal is to use it as Lookup web serice which points to DB table and returns results which can be viewed in Forms using a drop down list. In the process I have a Service Operation called “Query for Multiple Rows as XML”.
For “Input” -
I have the DataSource Name and a SQL statement to the lookup table.
In the Input XML information, I provided the Root Element and the Repeating Element name and provided column mappings. When I test it the correct XML gets generated.
For “Output”-
I set the output to a variable of datatype XML.
I activated the service and can view the WSDL.
In the Form Design,
1) I created Data Connection to the WSDL.
2) On the form, I added drop down list and binded it with the element of the variable from the response and added the “Invoke Button”.
3) I went to AdminUI and disabled the security for that service.
When I hit the button, I get no results.
Would be great if you could direct me to a document or mention procedure as to how to go about with this issue.
July 20th, 2008 at 8:08 pm
Madhavi,
I could see why you would’ve tried the data drop down list however it’s pre-configured to work with ODBC data connections, not web service data connections. If you simply create an execute binding to the drop down list, you’ll only get a single value. You would need to use Dynamic Binding in order to get all results from the web service merged into the drop down list as items.
As for your question about the process, I’m afraid that’s not my strong suit. I would suggest you post that question to the Adobe LiveCycle ES Workbench Forum. Hopefully someone there could answer your question.