|
NarrativeOnce the final correspondence is generated, it can be bound
to a LiveCycle process. Depending on the project requirement, this
process can perform further actions such as archiving, printing,
emailing, or sending the review.
Estimated time to implement the storyNot applicable to this user story.
Common questions to ask to clarify requirementsNot applicable to this user story.
Requirements addressedNot applicable to this user story.
Implementation overviewThere are two main steps involved in this user story:
Creating the processThe process that you bind to a letter template is invoked
when the final correspondence is submitted. You can create a process
that archives the letter, prints it, sends it via email, or that
uses any of the other services available in Workbench.
When you create the process in Workbench, use the following input
variables:
inXMLDoc (xml type): This is the data submitted from
the final correspondence.
inPDFDoc (document type): This is a rendering of the selected
letter template and XML, or portfolio template and XML.
Also use this output variable:
Note: When you select the process in the Letter Template Editor
of the Manage Assets UI, you will only be able to select from processes
that use these input and output variables.
The postprocess is invoked when the final correspondence is submitted.
To submit a letter, the Submit servlet (http://<server>:<port>/cmsa/Submit)
should be invoked with the letterId and xmlData as
request attributes in the HTTP POST call. If xmlData is
large, it can also be sent as a multipart/form-data request. The
Submit servlet also accepts an optional renderInteractive request parameter
used to switch between rendering an interactive or non-interactive (flat)
PDF. The default is non-interactive.
The Submit Servlet performs the following actions:
The Letter Submit Servlet uses the Render Service to
render the letter with the data XML provided by the Create Correspondence
UI. The Portfolio Submit service renders individual letters within
a portfolio and then assembles them together, using Adobe Assembler.
The Submit service checks the letter or portfolio for the
postprocess information and passes the outputs (XML and PDF) to
it. For portfolios, an individual letter template’s postprocess
is invoked only if it is short-lived.
When the process is ready, deploy it using Workbench or LiveCycle
Administration.
About the submitted data XMLAs mentioned above, the Submit servlet invokes the postprocess
with the letter PDF and the corresponding data XML. The data XML
submitted to the postprocess also has additional metadata corresponding
to the submitted letter, such as the letter name, submitted time
(modificationDate), and so on. The metadata is located in the ICC Control Data section,
under the <icc:meta> node. For example, this
would be the structure of the XML data submitted to the postprocess:
<DataRoot>
...
...
<!-- the usual XML data here -->
...
<!-- ICC Control Data -->
<icc:icc>
...
... <!-- this section would contain data corresponding to the selected modules -->
...
<!-- Metadata section -->
<icc:meta>
<!-- Any additional incoming metadata, that may have been sent from DC, and already present in the XML -->
<letter>[Letter name]</letter>
<modificationDate>[Letter submit date]</modificationDate>
<!-- Any other custom attributes/metada sent from DC via the "cm_" rule, will have entries in the XML here -->
</icc:meta>
</icc:icc>
</DataRoot>
Redirection on submitIf you want to extend the application to allow redirection
to a custom location (URL), you can design a process that performs
a set of operations and returns the redirect URL as a response.
The Letter or Portfolio Submit service returns XML with the following
structure as its response:
<iccSubmitResponse>
<redirect>{url}</redirect>
</iccSubmitResponse>
If the postprocess returned a URL, that URL is returned in the
response as shown above. Otherwise, the <redirect> element
is either not specified or empty. Note that the caller is responsible
for validating the URL for security purposes.If a redirect URL is
returned, the user is then redirected to the custom location, which could
be a signature application that would let the user sign the finished
letter or portfolio. You could also add a tag such as "requireSignature",
which you could key from in the customized version of the Letter
or Portfolio Submit service, to determine whether a redirect is
necessary.This provides the ability to capture a signature immediately
after submitting a filled letter or portfolio.
Submitting additional metadataIf required, you can customize the Create Correspondence
UI to send additional metadata to the postprocess invoked after
submitting the letter. If the Submit servlet is invoked with (request)
parameters whose names start with "cm_", then those attributes are
added to the <icc:meta> section, under nodes
with the name following the string after cm_ and
the value of the node as the value of the parameter.
For example, if a request parameter cm_agent=Mark Robinson is
sent to the servlet, the <icc:meta> node
would have a child node <agent>Mark Robinson</agent>,
as shown in this example:
Example:
<DataRoot>
...
...
<!-- the usual XML data here -->
...
<!-- ICC Control Data -->
<icc:icc>
...
... <!-- this section would contain data corresponding to the selected modules -->
...
<!-- Metadata section -->
<icc:meta>
<!-- Any additional incoming metadata, that may have been sent from DC, and already present in the XML -->
<letter>SampleLetter</letter>
<modificationDate>2010-08-28T08:55:59</modificationDate>
<agent>Mark Robinson</agent>
<!-- Any other custom attributes/metada sent from DC via the "cm_" rule, will have entries in the XML here -->
</icc:meta>
</icc:icc>
</DataRoot>
Configuring the parameter namesYou can configure the input parameter names for the postprocess
and the output URL parameter name (if any) in cm.properties. For
example:
# PDF Submit parameters
# name of input parameter in the process that accepts the PDF Document
# input variable type: org.w3c.dom.Document
pdfDocParamName=inPDFDoc
# name of input parameter in the process that accepts the XML data Document
# input variable type: xml
xmlDocParamName=inXMLDoc
# name of output parameter in the process that returns a URL to be redirected to
# output variable type: string
urlParamName=redirectURL
Note that only processes that accept the input parameters configured
above (either pdfDocParamName or xmlDocParamName,
or both) are available for selected in the Letter Template Editor
in the Manage Assets UI. The urlParamName is optional,
if there is a need to redirect.
Binding the process to a letter templateWhen you create a letter template in the Manage Assets
UI, you can specify a postprocess to bind to the letter template.
When the final correspondence is submitted, the process is invoked.
For details on creating a letter template and adding a postprocess,
see Create a letter template.
Tools usedThis story uses Workbench to create the process, and the
Manage Assets UI to bind the process to a letter template.
Team membersThe Middleware Developer performs the tasks in this user
story.
Best practices/tips and tricksNot applicable to this user story.
|
|
|