Acrobat JavaScript Scripting Guide
241
Interacting with Databases
Executing SQL Statements
14
Executing SQL Statements
To execute SQL statements, first create a 
statement
object by invoking the 
connection
object’s 
newStatement
method. The newly created 
statement
object 
can be used to access any row or column within the database table and execute SQL 
commands.
In the following example, a 
statement
object is created for the 
Q32000Data
database 
created in the previous sections:
myStatement = myConnection.newStatement();
The 
statement
object provides the methods shown below in Table 14.2:
In addition to the methods shown above in Table 14.2, the 
statement
object provides 
two useful properties:
columnCount
: the number of columns in each row of results returned by a query
rowCount
: the number of rows affected by an update
To execute an SQL statement, invoke the 
statement
object’s 
execute
method, which 
accepts a string parameter containing the SQL statement. Note that any names containing 
spaces must be surrounded by escaped quotation marks, as shown in the following 
example:
// Create the SQL statement:
var SQLStatement = ‘Select * from \"Client Data\"’;
// Execute the SQL statement:
myStatement.execute(SQLStatement);
T
ABLE
14.2
Statement Object
Method
Description
execute
Executes an SQL statement
getColumn
Obtains a column within the table
getColumnArray
Obtains an array of columns within the table
getRow
Obtains the current row in the table
nextRow
Iterates to the next row in the table
Create bookmarks in pdf reader - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
creating bookmarks pdf; excel pdf bookmarks
Create bookmarks in pdf reader - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
copy pdf bookmarks; add bookmark pdf file
Interacting with Databases
Executing SQL Statements
14
242
Acrobat JavaScript Scripting Guide
There are two steps required to obtain a row of data. First, invoke the 
statement
object’s 
nextRow
method; this makes it possible to retrieve the row’s information. Then, invoke the 
statement
object’s 
getRow
method, which returns a 
Row
generic object representing 
the current row.
In the example shown below, the first row of information will be displayed in the console. 
Note that the syntax is simplified in this case because there are no spaces in the column 
names:
// Create the SQL statement:
var st = ‘Select firstName, lastName, ssn from \"Employee Info\"’;
// Execute the SQL statement:
myStatement.execute(st);
// Make the next row (the first row in this case) available:
myStatement.nextRow();
// Obtain the information contained in the first row (a Row object):
var firstRow = myStatement.getRow();
// Display the information retrieved:
console.println("First name: " + firstRow.firstName.value);
console.println("Last name: " + firstRow.lastName.value);
console.println("Social Security Number: " + firstRow.ssn.value);
If the column names contain spaces, the syntax can be modified as shown below:
// Create the SQL statement:
var st = ‘Select \"First Name\", \"Last Name\" from \"Employee Info\"’;
// Execute the SQL statement:
myStatement.execute(st);
// Make the next row (the first row in this case) available:
myStatement.nextRow();
// Obtain the information contained in the first row (a Row object):
var firstRow = myStatement.getRow();
// Display the information retrieved:
console.println("First name: " + firstRow["First Name"].value);
console.println("Last name: " + firstRow["Last Name"].value);
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
bookmark a pdf file; add bookmark pdf
VB.NET PDF File Split Library: Split, seperate PDF into multiple
file into multiple ones by PDF bookmarks or outlines As String = Program.RootPath + "\\" 1.pdf" Dim outputFileName 1 to (Page Count - 1). ' Create output PDF
adding bookmarks to pdf; bookmarks pdf file
Acrobat JavaScript Scripting Guide
243
15
SOAP and Web Services
Introduction
The basis for most current models of web services is the Extensible Markup Language 
(XML), which facilitates interoperability by permitting the exchange of information 
between applications and platforms in a text-based manner. The Simple Object Access 
Protocol (SOAP) is an XML-based messaging protocol used as a medium for information 
and instruction exchange between web services. Information sent using the SOAP standard 
is placed in a file called a SOAP envelope. The Web Services Description Language (WSDL) is 
an XML-based standard for describing web services and their capabilities. Acrobat’s 
support for these standards makes it possible for PDF documents to locate services, 
understand their capabilities, and interact with them.
In order to guarantee interoperability between various platforms and applications, it is 
necessary to exchange information that adheres to a standardized format for data types. To 
address this need, the XML Schema Definition Language (XSD) provides a standard set of 
definitions for the various data types that can be exchanged in SOAP envelopes. 
Acrobat 7.0 provides support for the SOAP 1.1 and 1.2 standards in order to enable PDF 
forms to communicate with web services. This support has made it possible to include both 
SOAP header and body information, send binary data more efficiently, use document/literal 
encoding, and facilitate authenticated or encrypted communications. In addition, it also 
provides the ability to locate network services using DNS Service Discovery. All of this 
makes it possible to integrate PDF files into existing workflows by binding XML forms to 
schemas, databases, and web services. These workflows include the ability to share 
comments remotely or invoke web services through form field actions.
Chapter Goals
At the end of this chapter, you will be able to:
Understand the support available for the SOAP standards.
Connect to a web service.
Exchange information with a web service.
Search and manage XML-based information.
Use DNS Service Discovery to locate network services.
Understand how to apply Acrobat’s SOAP support to various workflows.
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
split pdf by bookmark; create bookmark in pdf automatically
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
add bookmarks pdf; how to add bookmarks to pdf files
SOAP and Web Services
Using SOAP and Web Services
15
244
Acrobat JavaScript Scripting Guide
Contents
Using SOAP and Web Services
Acrobat JavaScript provides a 
SOAP
object that encapsulates the support for web services 
and service discovery. Through the usage of this object, you can extend and customize 
your workflows by engaging in XML-based communication with remote servers.
The 
SOAP
object has a 
wireDump
property that sends all XML requests and responses to 
the JavaScript Console for debugging purposes. In addition, the 
SOAP
object provides the 
methods described below in Table 15.1:
Topics
Using SOAP and Web Services
DNS Service Discovery
Managing XML-based Information
Workflow Applications
T
ABLE
15.1
SOAP Object
Method
Description
connect
Obtains a WSDL proxy object used to invoke a web 
service
queryServices
Locates network services using DNS Service Discovery
resolveService
Binds a service name to a network address and port
request
The principal method used to invoke a web service
response
A callback method used in asynchronous web method 
calls
streamDecode
Decodes a Base64 or Hex stream object
streamEncode
Applies Base64 or Hex encoding to a stream object
streamFromString
Converts a string to a stream object
stringFromStream
Converts a stream object to a string
C# Create PDF Library SDK to convert PDF from other file formats
file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields.
how to bookmark a pdf in reader; create pdf bookmark
.NET PDF SDK - Description of All PDF Processing Control Feastures
Full page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. PDF Create.
bookmark template pdf; how to create bookmark in pdf with
Acrobat JavaScript Scripting Guide
245
SOAP and Web Services
Using SOAP and Web Services
15
Using a WSDL Proxy to Invoke a Web Service
When connecting to a web service, your Acrobat JavaScript code may use a WSDL proxy 
object to generate a SOAP envelope. The envelope contains a request for the server to run a 
web method on behalf of the client. To obtain the WSDL proxy object, invoke the 
SOAP
object’s 
connect
method, which accepts a single parameter containing the HTTP or 
HTTPS URL of the WSDL document. 
The returned proxy object contains the web methods available in the web service 
described by the WSDL document. If the web service uses SOAP/RPC encoding, the 
parameters in the proxy object’s methods will match the order specified in the WSDL 
document. If the web service uses document/literal encoding, the methods will accept a 
single parameter describing the request message.
In the example shown below, a connection to a web service will be established, and its RPC-
encoded web methods will be invoked. Assume that 
myURL
contains the address of the 
WSDL document:
// Obtain the WSDL proxy object:
var myProxy = SOAP.connect(myURL);
// Invoke the echoString web service, which requires a string parameter:
var testString = "This is a test string.";
var result = myProxy.echoString(testString);
// Display the response in the console:
console.println("Result is " + result);
// Invoke the echoInteger web service, which requires an integer parameter:
// Since JavaScript does not support XSD-compliant integer values, 
SOAP and Web Services Topics
Using a WSDL Proxy to Invoke a Web Service
Synchronous and Asynchronous Information Exchange
Using Document/Literal Encoding
Exchanging File Attachments and Binary Data
Converting Between String and ReadStream Information
Accessing SOAP Version Information
Accessing SOAP Header Information
Authentication
Error Handling
VB.NET Create PDF Library SDK to convert PDF from other file
Create and save editable PDF with a blank page, bookmarks, links, signatures, etc. Create fillable PDF document with fields in Visual Basic .NET application.
adding bookmarks to pdf document; auto bookmark pdf
XDoc.Word for .NET, Advanced .NET Word Processing Features
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. Word Create. Create Word from PDF; Create Word
bookmarks in pdf files; adding bookmarks in pdf
SOAP and Web Services
Using SOAP and Web Services
15
246
Acrobat JavaScript Scripting Guide
// We will create an integer object compliant with the XSD standard:
var myIntegerObject = {
soapType: "xsd:int",
soapValue: "10"
};
var result = myProxy.echoInteger(myIntegerObject);
// Display the response in the console:
console.println("Result is " + result);
Note that each call to a web method generates a SOAP envelope that is delivered to the 
web service, and that the return value is extracted from the corresponding envelope 
returned by the web service. Also, since XML relies on text, there is no problem sending a 
string to the web service. In the case of integers, however, it is necessary to create an XSD-
compliant object to represent the integer value. Acrobat JavaScript does support some of 
the standard data types specified in the XSD. These are shown below in Table 15.2:
T
ABLE
15.2
XSD-Compliant Data Types Supported in JavaScript
JavaScript Type
Equivalent XSD-Compliant Type
String
xsd:string
Number
xsd:float
Date
xsd:dateTime
Boolean
xsd:boolean
ReadStream
SOAP-ENC:base64
Array
SOAP-ENC:Array
Acrobat JavaScript Scripting Guide
247
SOAP and Web Services
Using SOAP and Web Services
15
Synchronous and Asynchronous Information Exchange
The 
SOAP
object’s 
request
method may be used to establish either synchronous or 
asynchronous communication with a web service, and provides extensive support for 
SOAP header information, firewall support, the type of encoding used, namespace 
qualified names, compressed or uncompressed attachments, the SOAP protocol version to 
be used, authentication schemes, response style, and exception handling.
The 
request
method accepts the parameters shown below in Table 15.3:
T
ABLE
15.3
Request Method
Parameter
Description
cURL
URL for SOAP HTTP endpoint
oRequest
Object containing RPC information
oAsync
Object used for asynchronous method invocation
cAction
SOAPAction header used by firewalls and servers to filter 
requests
bEncoded
Indicates whether SOAP encoding is used
cNamespace
Message schema namespace when SOAP encoding is not used
oReqHeader
SOAP header to be included with request
oRespHeader
SOAP header to be included with response
cVersion
SOAP protocol version to be used (1.1 or 1.2)
oAuthenticate
Authentication scheme
cResponseStyle
The type and structure of the response information (JS, XML, 
Message)
SOAP and Web Services
Using SOAP and Web Services
15
248
Acrobat JavaScript Scripting Guide
Establishing a Synchronous Connection
The 
SOAP
object’s 
request
method may be used to establish a synchronous connection 
with a web service. To establish the connection and invoke the web methods, it is necessary 
to provide the 
cURL
oRequest
, and 
cAction
parameters. The example below 
demonstrates how to invoke the same web services used in the previous example.
Similar to the parameter used in the 
connect
method, the 
cURL
parameter contains the 
URL for the WSDL document. For the purposes of our example, assume that 
myURL
represents the WSDL document location.
The 
oRequest
parameter is a fully qualified object literal specifying both the web method 
name and its parameters, in which the namespace is separated from the method name by a 
colon. It may also contain the following properties: 
soapType
: the SOAP type used for the value
soapValue
: the SOAP value used when generating the message
soapName
: the element name used when generating the SOAP message
soapAttributes
: an object containing the XML attributes in the request node
soapQName
: the namespace-qualified name of the request node
soapAttachment
: determines whether 
soapValue
is encoded as an attachment 
according to the SwA/MTOM
®
specification. In this case, 
soapValue
will be a stream.
Assume that the namespace is http://mydomain/methods, the method name is 
echoString
, and it accepts a string parameter called 
inputString
. The following code 
represents the 
oRequest
parameter:
var echoStringRequest = {
"http://mydomain/methods:echoString {
inputString: "This is a test."
}
};
The 
cAction
parameter contains header information described by the WSDL document 
that is used by firewalls to filter SOAP requests. In our example, we will supply the location 
of the WSDL document:
var mySOAPAction = "http://mydomain/methods";
We may now invoke the 
echoString
web method:
var response = SOAP.request ({
cURL: myURL,
oRequest: echoStringRequest,
cAction: mySOAPAction
});
Acrobat JavaScript Scripting Guide
249
SOAP and Web Services
Using SOAP and Web Services
15
In the case of synchronous requests such as this one, the value returned by the 
request
method (
response
in this example) is an object containing the result of the web method, 
which will be one of the Acrobat JavaScript types corresponding to XSD types. The default 
format for the response value is an object describing the SOAP body (or header) of the 
returned message.
N
OTE
:
In the case of base64 or hex encoding of binary information, the type returned will 
be a 
readStream
object. 
We may now obtain the returned value by using syntax that corresponds to the SOAP body 
sent back by the web method:
var responseString = "http://mydomain/methods:echoStringResponse";
var result = response[responseString]["return"];
// Display the response in the console:
console.println("Result is " + result);
Similarly, we can invoke the 
echoInteger
method. To do this, we will use the same value 
for the 
cURL
and 
cAction
parameters, and develop an 
oRequest
parameter like the 
one we used for the 
echoString
method. In this case, however, we must supply an XSD-
compliant object to represent the integer value:
var myIntegerObject = {
soapType: "xsd:int",
soapValue: "10"
};
var echoIntegerRequest = {
"http://mydomain/methods:echoInteger {
inputInteger: myIntegerObject
}
};
Now we may invoke the 
echoInteger
web method and display its results:
var response = SOAP.request ({
cURL: myURL,
oRequest: echoIntegerRequest,
cAction: mySOAPAction
});
var responseString = "http://mydomain/methods:echoIntegerResponse";
var result = response[responseString]["return"];
// Display the response in the console:
console.println("Result is " + result);
SOAP and Web Services
Using SOAP and Web Services
15
250
Acrobat JavaScript Scripting Guide
Asynchronous Web Service Calls
The 
SOAP
object’s 
request
method may be used in conjunction with the 
response
method to establish asynchronous communication with a web service. In this case, the 
request
method calls a method on the notification object, and does not return a value.
Asynchronous communication is made possible by assigning a value to the 
request
method’s 
aSync
parameter, which is an object literal that must contain a function called 
response
that accepts two parameters: 
oResult
(the result object) and 
cURI
(the URI 
of the requested HTTP endpoint). 
In the example below, the 
aSync
parameter named 
mySync
contains an attribute called 
isDone
, which is used to monitor the status of the web service call, and an attribute called 
val which will contain the result of the web service call. When the 
response
function is 
called by the web service, it sets 
isDone
to 
true
indicating that the asynchronous call has 
been completed:
// Create the aSync parameter:
var mySync = {
isDone: false,
val: null,
// Generates the result of the web method:
result: function(cMethod) 
{
this.isDone = false;
var name = "http://mydomain/methods/:" + cMethod + "Response";
if (typeof this.val[name] == "undefined") 
return null;
else
return this.val[name]["return"];
},
// The method called by the web service after completion:
response: function(oResult, cURI) 
{
this.val = oResult;
this.isDone = true;
},
// While the web service is not done, do something else:
wait: function()
{
while (!this.isDone) doSomethingElse();
}
};
Documents you may be interested
Documents you may be interested