Posts tagged "correspondence creation"

Postprocessing your correspondence

Correspondences created in enterprises would typically have to be integrated to a back-end process for further distribution (via email, fax, print), document processing (apply digital signatures, encryption, etc.) or archival of the correspondence.

The Adobe Correspondence Management solution provides a convenient way to achieve this by leveraging orchestrations/processes on the ADEP Document Services platform for defining the back-end process (that can use one or more Document Services, based on the enterprise requirements), and providing the ability to easily bind them to a given correspondence template.

Read more about creating a postprocess for the CM solution on the Document Server.

Once such processes are created on the Document Server, can then be mapped to a Letter template in the  Postprocess drop down of the Letter Template Editor (as shown below), where the available postprocesses (as defined on the Document Server) are listed:

 

 

 

 

 

 

 

Tip: If you create a new process, with an existing Manage Assets UI session opened, your process will not be listed in the Postprocesses dropdown until you relaunch or refresh (F5) the Manage Assets browser window (or open the Manage Assets UI in a new browser window).

When the correspondence creation is complete (using the Create Correspondence UI), users can Submit the correspondence (see snapshot below indicating the Submit button), which invokes the associated/mapped postprocess for that Letter template, with the final correspondence PDF and XML data (used to generate the PDF). The postprocess, which would be an orchestration, can then act upon the document (PDF) as necessary.

 

Troubleshoot the Create Correspondence interface of the Adobe Correspondence Management Solution

Create Correspondence interface is the agent facing (flex based) application of the Adobe Correspondence Management Solution that is used to create the final correspondence, using a given Letter template.

In the event of an unexpected behavior or an unlikely error or to get more details on the request processing, there could be a need to troubleshoot the application. Following are some of the ways to do so.

General Flash Logs

Flash Log output is obviously critical when debugging a flex application. All general log messages, including the Form Bridge log output that is redirected from both the PDF and the HTML layers, is output to the Flash logs.

Of course, you would need Flash Debug player, which can be downloaded from the flash download site, to enable such logging. You can appropriately configure the logs based on your operating system.

The application also keeps an in-memory log of all messages that can be displayed using Ctrl + Alt + D, once initialized (note that you must have your mouse focus on the Flex application when you do so). The main purpose of this is so that we can get log contents even when the application isn’t run in a Flash Debug Player.

URL parameters

The Create Correspondence application can be enforced to log additional information by invoking it with some special URL parameters. Note that this can adversely affect the application performance, given the large amount of data being logged.

cmDataDebug

This flag (that can be given as a URL parameter) is used to specifically enable data output to the Flash Log. The output in such cases can be very large (for a complex templates that use large data) but sometimes it is critical to see the generated data the way it is sent to the PDF.

One can set it by including the following parameter in the URL parameters when invoking the Create Correspondence application:

cmDataDebug=1

This is an ON/OFF flag, so anything other than “0″ will activate the mode.

cmFbDebug

This is yet another flag, that is used to enable debugging and logging in the Form Bridge layers, and help troubleshoot communication issues. One can set it by including the following parameter in the URL parameters when invoking the Create Correspondence application:

cmFbDebug=[a,[b,[c,[d]]]]

where,
a = debug level until a connection is established (0 = none; 9 = highest/most verbose)
b = debug level after a connection is established (0 – none; 9 – highest/most verbose)
c = delay in seconds (can be a decimal, as in .1) after the HTML has created the PDF <object> and the time it sets its messageHandler (its definition of listener functions) on that object
d = delay in seconds (can be a decimal, as in .001) after the PDF has got as far as the ‘docReady’ message, until it starts to send it’s “initialized” connection message.

The above parameters can hence be tweaked according to the intent of troubleshooting. For instance, if there is a communication issue wherein the PDF takes longer to be ‘ready’ (may be due to a slow connection), you can tweak (increase) the value of  ‘d‘ to a value that sets enough delay for the communication to be successful. If there is a need to log detailed HTML-to-PDF communication messages for a user interaction on the flex app., you can set an appropriate value for ‘b‘.

Role based access control on the Correspondence generation interface

More often that not would there be a need to prevent Correspondence generation access for non-eligible users, i.e. the user interface for creating a correspondence (Create Correspondence aka Document Composer UI) should not allow entry to such users and throw an (Access Denied) error.

Such access control can be achieved with a quick and simple customization in the solution’s security configurations (which is, by the way, backed by Spring Security). Here’s how…

The solution exposes a security configuration XML (placed @ [LiveCycle_ES_Home]\sa_resources\SA_SDK_9.5\CorrespondenceManagement\FSIApp\Portal\resources\spring-config.xml in the Solution Template). In order to secure the Create Correspondence UI to allow access to only people with a pre-defined role, say Correspondence Management Create Correspondence User, you need to:

  1. Create the above role (Correspondence Management Create Correspondence User) using the LiveCycle Administration UI), if it does not already exist.
  2. Add the following in the security configuration file (security-config.xml, indicated above), along with the other <sec:intercept-url…> elements in it:

<sec:intercept-url pattern=“/dc” access=“lcAuth:Correspondence Management Create Correspondence User” />

The above interception basically means that, when a user tries to invoke the application (which is exposed at the URL http://server:port/cmsa/dc), the system intercepts the request to check for the mentioned roles in the current user’s roles. Hence, as per the above configuration, this would only allow those users who have the “Correspondence Management Create Correspondence User” role to access the Create Correspondence UI.

Note: You can provide access to any other or more such roles by adding those roles (comma-separated) in the access attribute in the configuration above (do remember to prefix the LC roles names with lcAuth:).