You can programmatically modify form data that is associated
with a specific task. For example, a user has an assigned task,
which is either to approve or decline a mortgage application. While
the task is sitting in the user queue waiting for the user to perform
the task, you can programmatically modify form data. As a result,
when the user opens the form in Workspace, the user can view the modified
form data.
To modify form data, reference a valid XDP XML data source. Consider
the following example mortgage application form.
To modify form data, you require a valid XDP XML data source
that corresponds to the form. The following XML represents an XDP
XML data source that corresponds to the example mortgage application
form.
<?xml version="1.0" encoding="UTF-8" ?>
- <xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
- <xfa:data>
- <data>
- <Layer>
<closeDate>1/26/2007</closeDate>
<lastName>Johnson</lastName>
<firstName>Jerry</firstName>
<mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
<city>New York</city>
<zipCode>00501</zipCode>
<state>NY</state>
<dateBirth>26/08/1973</dateBirth>
<middleInitials>D</middleInitials>
<socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
<phoneNumber>5555550000</phoneNumber>
</Layer>
- <Mortgage>
<mortgageAmount>295000.00</mortgageAmount>
<monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
<purchasePrice>300000</purchasePrice>
<downPayment>5000</downPayment>
<term>25</term>
<interestRate>5.00</interestRate>
</Mortgage>
</data>
</xfa:data>
</xfa:datasets>
Summary of stepsTo modify form data, perform the following tasks:
Include project files.
Create a TaskManager Client API object.
Specify form data.
Specify the form design.
Save the task.
Include project filesInclude necessary files into your development
project. Because you are creating a client application using Java,
then include the necessary JAR files.
Create a TaskManagerService Client API objectBefore you can
programmatically modify form data, you must create a TaskManager object.
To
modify form data associated with a task, specify the user name and
the password value of the user to whom the task is assigned when
setting connection properties. For example, to retrieve form data
from a task assigned to tony blue, use tony blue’s user name and
password. If you specify a user that is not assigned the task, an
exception is thrown.
Specify form dataTo modify form data, reference a valid XML data
source that contains form data. If an element located in the XML
data source does not correspond to a field in the form, the element
is ignored.
Specify the form designTo modify form data, obtain a form instance
that is associated with a task. After you obtain the form instance,
specify the XML data source location.
Save the taskModify the form data by saving the task. When
you save the task, specify the task identifier and the form instance
that represents the form that contains the modified form data.
Modify form data using the Java APIModify form data by using the Java API:
Include project files
Include client JAR files,
such as adobe-taskmanager-client-sdk.jar, in your Java project’s
class path.
Create a TaskManagerService Client API object
Create a ServiceClientFactory object that
contains connection properties.
Create a TaskManagerService object by invoking
the TaskManagerClientFactory object’s static getTaskManager method
and passing the ServiceClientFactory object.
Specify form data
Create a java.io.FileInputStream object
by using its constructor and passing a string value that specifies
the location of the XML file that contains form data.
Create com.adobe.idp.Document object to
store form data by using its constructor and passing the java.io.FileInputStream object.
Create a java.io.InputStream object that
contains form data by invoking the com.adobe.idp.Document object’s getInputStream method.
Create a byte array that is used to store form data. Allocate
the size of the java.io.InputStream object to the
byte array.
Populate the byte array by invoking the java.io.InputStream object’s read method
and passing the byte array.
Specify the form design
Create a new FormInstance object
by invoking the TaskManagerService object’s getEmptyForm method.
This represents the form that will be populated with form data and
used in the task.
Specify the form design to use by invoking the FormInstance object’s setTemplatePath and
pass a string value that specifies the location of the XDP file
(because the form instance is based on an empty form, the form design
must be specified by invoking the setTemplatePath method).
Specify the form data by invoking the FormInstance object’s setXFAData method
and passing the byte array that contains the form data.
Invoke the FormInstance object’s setDocument and
pass the com.adobe.idp.Document object that contains
form data.
Save the task
Save the task so that the form that
contains the modified data is displayed by invoking the TaskManagerService object’s save method
and passing the following values:
This method returns a SaveTaskResult object.
Modify form data using the web service APIModify form data by using the web service API:
Include project files
Create a Microsoft
.NET client assembly that consumes the TaskManager service WSDL.
To create a proxy object that lets you invoke its operations by using
Base64 encoding, specify this WSDL definition:
http://localhost:8080/soap/services/TaskManagerService?WSDL
Reference the Microsoft .NET client assembly.
Create a TaskManagerService Client API object
Using the Microsoft .NET client assembly, create a TaskManagerServiceService object
by invoking its default constructor.
Set the TaskManagerServiceService object’s Credentials data member
with a System.Net.NetworkCredential value that specifies
the user name and password value.
Specify form data
Create a BLOB object
by using its constructor. The BLOB object is used
to store form data.
Create a System.IO.FileStream object by
invoking its constructor and passing a string value that specifies
the location of the XML file that contains form data and the mode
in which to open the file.
Create a byte array that stores the content of the System.IO.FileStream object.
You can determine the size of the byte array by getting the System.IO.FileStream object’s Length property.
Populate the byte array with stream data by invoking the System.IO.FileStream object’s Read method
and passing the byte array, the starting position, and the stream
length to read.
Create a byte array that is used to store form data. Allocate
the size of the java.io.InputStream object to the
byte array.
Populate the byte array by invoking the java.io.InputStream object’s read method
and passing the byte array.
Populate the BLOB object by assigning its binaryData property
with the contents of the byte array.
Specify the form design
Get the form used
in the task by invoking the TaskManager object’s getFormInstanceForTask method
and passing the following values:
The task identifier
value that specifies the task.
A System.Boolean value that specifies whether
the task identifier was specified.
The form identifier value. Typically the value is the same
as the task.
A System.Boolean value that specifies whether
the form identifier was specified.
A System.Boolean value that specifies whether
to retrieve form data (for this task, specify true).
A System.Boolean value that specifies whether
the previous parameter was specified (for this task, specify true).
The getFormInstanceForTask method
returns a FormInstance object.
Specify
the form data by assigning the FormInstance object’s XFAData method
with the byte array that contains the form data.
Assign the FormInstance object’s document data
member with the BLOB object that contains form
data.
Save the task
Save the task so that the form that
contains the modified data is displayed by invoking the TaskManagerService object’s save method
and passing the following values:
A long value that
specifies the task identifier.
A System.Boolean value that specifies whether
the task identifier is specified.
The FormInstance object that represents
the form.
This method returns a SaveTaskResult object.
|
|
|