Built-in profiler in LiveCycle ES4 for performance analysis

New LiveCycle ES4 features like Forms Manager, HTML Workspace etc. require CQ repository as part of the installation. This embedded Adobe CQ, comes with a built in threads profiler. More information about this can be found at this CQ article. This profiler, being part of same container in which LiveCycle is running, collects thread data for LiveCycle classes and services as well.

For Adobe LiveCycle ES4, built in profiler can be found at

http://<server>:<port>/lc/system/console/profiler

To use profiler, just reach above mentioned screen and click on “Start Collecting” button. This will start the profiler. To stop profiler, just click on “stop” button. Collected data will be shown on screen.

Data will be shown in two parts

  1. Packages: Which code is executing
  2. Top 20 stack trace(s): Stack traces with highest count

Before running the profiler, one can change few configurations to weed out unwanted threads and packages.Following screenshot shows self explaining configurations you can modify before starting profiler

profiler

This is available on Correspondence Management Publish instance as well.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 7.2/10 (5 votes cast)
Posted in Adobe LiveCycle ES4 | Comments Off

XFA-based PDF forms on Firefox 19

With the release of Firefox 19, Mozilla introduced a built-in PDF viewer. However, the XFA-based PDF forms do not open in the PDF viewer, by default. To open these forms using Firefox 19, you’d need to configure Firefox to open PDFs in Adobe Reader or Adobe Acrobat.

For more details on how to accomplish this, see the knowledge base article at http://helpx.adobe.com/livecycle/kb/xfa-forms-mozilla-firefox-19.html.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 8.4/10 (5 votes cast)
Posted in General Interest | Tagged , , , | Comments Off

Mobile Workspace offline internals

With LiveCycle ES4, Mobile Workspace has enabled working without network connection. Offline support has mainly been achieved by caching and storing the data locally on the device. From the offset, the application assumes to be in offline mode. This has following major advantages:

1. Any action performed by the user is stored offline ensuring that the user gets best experience.

2. Make sure that the user action/data is not lost due to intermediate network disconnection.

The offline app is constantly made to sync to the server by a background thread which has a timer setting that can be controlled by the user. The application also provides an on demand sync to the server using the refresh button at the top right of the main screen. It is possible to configuring the background sync thread frequency from the settings screen. Here we can see that the user is trying to change the sync frequency from 4 hours to 15 minutes.

settings_screen

The possible sync frequencies are 15 minutes, 1 hours, 4 hours, once per day or Manual. These can be selected from the drop down in the ‘General’ tab of the settings screen.

sync_time_setting

Once the user settings are saved, the background sync thread is updated as per the new settings.

sync_settings_complete

Data storage and caching

Going into the internals of the data being stored on the device, application users disk storage, browser cache backed up by disk and the database in the form of webSql to store the complete data of the application. The main data associated with a task is

a. Task metadata in the form of JSON associated with task object. This also includes the attachments metadata.

b. Attachment files associated with the task.

c. Form corresponding to the task and the form data, if any stored on the server.

The application caches all this data efficiently onto the device so that the complete functionality can be replicated when there is no network connection. The task metadata and the other data in the form of task JSON is stored in the database in proper tables per user per server for efficient update and retrieval. Now comes the question of the attachment files  associated with the task. These files are downloaded and stored on the disk within the task specific directory. Lastly the form and the data associated with the form are cached with the help of browser cache. Browser cache of UIWebView uses NSURLCache concept to backup the shared cache of the application by disk. The browser cache is set to 40 MB which is sufficient to store the resources and the XDP of the forms associated with the task.

Caching configuration

By default the form and the attachments associated with the task are not cached onto the device. This comes with a background that the application should not blindly cache everything and it should be configurable for the user to decide what all data needs to be offlined. the default value of ‘Fetch forms’ and ‘fetch attachments’ is OFF in the ‘General tab of the settings screen.

fetch_attachments fetch_formsOnce the user enables the caching or either forms or attachments then any subsequent refresh will cache the forms or attachments for the new tasks being synced form the server.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 7.0/10 (3 votes cast)
Posted in Adobe LiveCycle ES4 | Tagged , , , , , , , , | Comments Off

Tags in Forms Manager

One of the features provided by Forms Manager is a support to add CQ tags to Forms as a meta data. This blog post showcases how we can add CQ tags to the Form and use them to search Forms.

 CQ Tags

Tags are a quick and easy method of classifying content (forms in case of Forms Manager). In technical terms, a tag is a piece of metadata assigned to a content node within CQ. You can also think of them as keywords or labels that you attach to a node (form in case of Forms Manager) to help you find it again.

Some of the advantages of using CQ Tags with Forms Manager include

  • Tagging provides an easy straightforward way to organize forms without too much thought.
  • You can never have too many tags. Though if you have a lot, you can create namespaces to sort and organize your tags. With namespaces you can create categories of tags to make sure that tags that belong together are grouped together.
  • Tags are powerful organizers. With the ability to create tags and sub-tags it becomes possible to organize the forms in a logical structure.
  • Tags improve the form search experience. You can search for forms based on the tags added to them. Support for hierarchical tagging helps provide more appropriate search results.
  • Organization of forms on the existing portal through search API which supports tags.

Scenario

Assume you want to show a list of forms on your Portal, but in case you have a large number of forms you would want to bifurcate them based on categories and sub-categories. For example in case of a Taxation Department of a State some categories may be:

  • Income Tax Forms
    • Individual Tax Forms
    • Business / Enterprise Tax Forms
    • Non-Profit Organization Tax Forms
  • Sales Tax Forms
    • Sales Tax Registration Forms
    • Sales Tax Exemption Forms
    • Sales Tax Refund Forms
    • Annual Filer Forms
    • Quarterly Filer Forms

Each category may then have multiple sub-categories and forms. In such a scenario you might like to maintain all the forms in a common repository where they can refer to common form fragments, but require an ability to identify a smaller set of forms that are relevant to the task at hand.

 Steps to use Tags with Forms Manager

  1. Create the tags in the CQ repository:
    1. Access the URL: http://<server>:<port>/lc and login with CQ admin credentials (admin/admin).
    2. Click on the ‘Tagging’ icon to create/update the tags.Screen Shot 2013-03-24 at 2.55.27 PM
    3. Create a new namespace or use an existing namespace. For creating a new namespace click on the New button highlighted below. Screen Shot 2013-03-24 at 2.56.54 PM
    4. Provide the required details in the dialog for the new namespace.Screen Shot 2013-03-24 at 2.58.01 PM
    5. Access the new namespace by selecting it from the tree structure on the left.
    6. For creating a tag click on the New button and provide the required information.
    7. For creating a sub-category select a tag from the tree structure on the left and add a new tag.
    8. Create all the tags in the required structure following the above steps.Screen Shot 2013-03-24 at 3.15.24 PM
  2. Add the tags to the forms in CQ repository:
    1. Access Forms Manager UI (url: http://<server>/<port>/lc/fm) and login with the credentials of a LiveCycle user with Forms Manager Administrator role (e.g. Super Administrator: administrator/password).
    2. Access the Form you want to add the tag information to.
    3. In the tags section – click the ‘+’ button to open the Tags widget, and access the tab for required namespace.
    4. Browse and select the required Tag to be added to the form.Screen Shot 2013-03-24 at 3.25.07 PM
    5. Click the ‘+’ button to close the Tags widget.Screen Shot 2013-03-24 at 3.25.43 PM
  3. Search for forms with Tags: CQ Tags support hierarchal structure, i.e. if you have added a tag A/B/C and search for a tag A/B (it parent), the child will also be listed. In the above example if a user has added a tag ‘Individual Tax Forms’ to a form, it will be listed when searching for forms with tag ‘Income Tax Forms’.
    1. Open the advanced search by clicking the Advanced search pod in Forms Tab.
    2. Click the ‘+’ button to open the Tags widget, and access the tab for required namespace.
    3. Browse and select the required Tag to be searched for.Screen Shot 2013-03-24 at 3.27.35 PM
    4. Click the ‘+’ button to close the Tags widget.
    5. Select the check-box before the tag to include the tag in the search condition.
    6. Click ‘Search’ button to perform the search.Screen Shot 2013-04-02 at 10.56.14 PM

For more information on the exciting new features introduced in Adobe LiveCycle ES4  refer to the LiveCycle ES4 documentation link: What’s new in Adobe LiveCycle ES4 . For more information on Forms Manager Introduction to Forms Manager

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 9.5/10 (2 votes cast)
Posted in Adobe LiveCycle ES4 | Tagged , , , | Comments Off

Page 0 support for protected documents in LiveCycle Rights Management ES4

Adobe LiveCycle Rights Management ES4 introduces Page 0 (Wrapper Document) support for Policy protected documents in Adobe LiveCycle ES4 release. In case of most of the non-Adobe PDF viewers, on opening LCRM protected documents a blank screen appears or the application aborts. With Page 0 support, for RM Policy protected PDFs, Cover Page or Page0 is displayed instead of the previewer displaying a blank screen or being completely aborted when viewed in non-Adobe PDF viewers.

When viewing such documents (containing a Page 0) in Adobe Reader/Acrobat or Mobile Reader, the protected Document is opened by default.

Implementation

Processes can be created in Adobe LiveCycle Workbench to implement this functionality using the following Operations:

  1. Protect Document With Cover Page : This operation allows you to secure a given PDF document with the specified policy, and also adds a cover page to the document.
  2. Extract Protected Document : This operation allows you to extract the policy-protected PDF document from the PDF document with cover page

Also, two new APIs have been added in LiveCycle Rights Management ES4 to implement this functionality:

  1. protectDocumentWithCoverPage : This API secures a given PDF with the specified policy, and returns a document with a cover page and the protected document as an attachment.
  2. extractProtectedDocument : This API extracts the protected document which is an attachment in the document with cover page. The document with cover page can be created using protectDocumentWithCoverPage method.

Here is a sample code snippet for protecting a document with a CoverPage using protectDocumentWithCoverPage API:

//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);

//Create a RightsManagementClient object
RightsManagementClient rightsClient = new RightsManagementClient(factory);

//Reference a PDF document to which a policy is applied
FileInputStream fileInputStream = new FileInputStream("C:\\testFile.pdf");
Document inPDF = new Document(fileInputStream);

//Reference a Cover Page document
FileInputStream coverPageInputStream = new FileInputStream("C:\\CoverPage.pdf");
Document inCoverDoc = new Document(coverPageInputStream);

//Create a Document Manager object
DocumentManager documentManager = rightsClient.getDocumentManager();

//Apply a policy to the PDF document
RMSecureDocumentResult rmSecureDocument = documentManager.protectDocumentWithCoverPage(
inPDF,
"ProtectedPDF.pdf",
"PolicySetName",
"PolicyName",
null,
null,
inCoverDoc,
true);

//Retrieve the policy-protected PDF document
Document protectPDF = rmSecureDocument.getProtectedDoc();

//Save the policy-protected PDF document
File myFile = new File("C:\\PolicyProtectedDoc.pdf");
protectPDF.copyToFile(myFile);

Here is a sample code snippet for extracting the protected document from the document with CoverPage using extractProtectedDocument API:

//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);

//Create a RightsManagementClient object
RightsManagementClient rightsClient = new RightsManagementClient(factory);

//Reference a protected PDF document with a Cover Page
FileInputStream fileInputStream = new FileInputStream("C:\\policyProtectedDocWithCoverPage.pdf");
Document inPDF = new Document(fileInputStream);

//Create a Document Manager object
DocumentManager documentManager = rightsClient.getDocumentManager();

//Apply a policy to the PDF document
Document extractedDoc = documentManager.extractProtectedDocument(inPDF);

//Save the policy-protected PDF document
File myFile = new File("C:\\PolicyProtectedDoc.pdf");
extractedDoc.copyToFile(myFile);

 

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 9.0/10 (2 votes cast)
Posted in Adobe LiveCycle ES4 | Tagged , | Comments Off

An introduction to Forms Manager

Adobe® LiveCycle® ES4 is offering a new component – Forms Manager – that simplifies form management.

Forms Manager exposes most common form management operations through an HTML based user interface helping non-IT users to easily upload, download, preview, configure, activate and deactivate forms. It also exposes search APIs which can be used by developers to expose these forms to the end users through their existing portal.

Forms manager supports management of XFA forms (.xdp) and related images. The Forms are maintained on the LiveCycle server as part of LiveCycle applications, with additional meta data maintained in the embedded CQ instance. All existing LiveCycle applications containing form and image assets are automatically made available inside Forms manager after upgrade.

Various Forms Manager capabilities for developers and form administrators include:

  • Upload and Download of forms and images through the Forms Manager UI by form designers to add new forms, and modify existing forms.
  • Import and Export of forms through LiveCycle Archive files to help migration of data from one server to another (eg. staging to production servers).
  • Automatic replication of the Forms from LiveCycle native repository to embedded CQ instance to keep the Forms Manager data in sync with the LiveCycle native repository.
  • Support to add additional meta data to the forms like:
    • Title of the form
    • Description of the form
    • Author’s name
    • CQ tags
    • Custom properties
  • Advanced search based on various attributes of the form (including meta data)
  • Search APIs to enable developers to share forms on an existing portal.
  • Manual and Scheduled activation and deactivation of forms for managing availability of forms on the customer facing portal.
  • HTML and PDF preview of forms with optional sample data.
  • Viewing and browsing form relationships.
  • Configure submit URL, render profile for the form.
  • Synchronization of forms between LiveCycle

A LiveCycle user having  ‘Forms Manager Administrator’ role can log in to Forms Manager by accessing the URL: http://<server>:<port>/lc/fm (Super Administrator has this role out of the box).

FM-001

Forms Manager

Forms Manager initial screen can be divided into 6 main parts (refer to the attached screenshot):

  1. Tab bar: The tab bar shows the various forms that are currently opened by the user. The user can switch between the open forms by clicking any of the open tabs.
  2. Breadcrumb: Forms Manager provides a folder like interface which can be used to traverse the various applications, folder and forms. The breadcrumb is shown during the traversal to provide the user with the information about his current location and offer shortcuts.
  3. Action Bar: The action bar contains the basic search pod on the left side which helps perform a full text search on the forms. On the right it contains action buttons for editing the meta data of the form, uploading/downloading forms and images, activating and deactivating forms, and form preview (HTML & PDF).
  4. Advanced Search: The advanced search pod is initially hidden to provide more space for the form listing area, and can be expanded by clicking on the pod.
  5. Form Listing Area: This area lists down all the applications/ folder / forms and images. A user can select the Forms button in Action bar to show only Forms (hiding the folders and images).
  6. Options Widget: The options widget provides information about the user logged in, and admin options to perform on demand synchronization/scheduling.

For more information on the exciting new features introduced in Adobe LiveCycle ES4  refer to the LiveCycle ES4 documentation link: What’s new in Adobe LiveCycle ES4 . For more information on Forms Manager Introduction to Forms Manager

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 6.3/10 (14 votes cast)
Posted in Adobe LiveCycle ES4 | Tagged , , , | 1 Comment

LiveCycle ES4 now Available

In an earlier blog post we announced the upcoming release of LiveCycle ES4 . The LiveCycle team is very pleased to inform you that LiveCycle ES4 is now generally available. ES4 makes it easier to create, manage, and publish large numbers of forms on websites and allows mobile clients and workers to actively participate in business processes, improving engagement and productivity.  See LiveCycle ES4 in action and find out more about what’s new in the ES4 documentation.

LiveCycle customers with maintenance and support contracts will be able to access ES4 from the Adobe licensing website (LWS)  in the coming week.  LWS account owners will be notified by email when ES4 has been posted to their organization’s account.   A trial version of ES4 will also be made available March 31st.  If you are not a currently a LiveCycle customer we encourage you to contact your Adobe representative or solution partner for more information.

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 8.6/10 (7 votes cast)
Posted in Adobe LiveCycle ES3 | 5 Comments

Mobile Workspace in offline mode

With the release of ES4, Mobile Workspace introduces offlining of tasks that have been assigned to a user. This helps the customer to work even when they are out of the network area. The users can perform actions associated with the tasks namely open the task, update and even complete the task while the application is offline. Once the user goes online, the application can be synced to the LiveCycle server. With this implementation, application provides a great user experience and no delay since everything works as if its on the device. The time consuming actions and tasks are done in background to enable the user best experience in the form of a mobile app.

Overview

User is logged into the Workspace after validation of credentials stored in the key-chain. The data associated with any task includes the form and the attachments. Mobile Workspace enables you to configure what all data you want to offline for a task. By default the application does not store any data for the task and these settings can be changed by the user.

ds_mws_gen_set

Working offline

Once the settings have been configured, any further login enables caching of all the task data to the local disk. The forms are stored in the browser cache which is backed up by local disk, where as the attachments are downloaded to the disk. Once this is done, the user can browse through all the tasks and perform any operation on the task in offline mode.

submit_task_offline

Any subsequent operation on the task like save or complete marks the task into the outbox filter. Hence it is able to track the work done in offline mode.

outbox_filter

Sync offline work

Once the user comes online, the offline work can be synced back to the server. The status bar on the main screen shows the status of sync. the failed tasks are marked and remain in the outbox thereafter. Otherwise the tasks get synced to the server and the application is marked updated to current time stamp.

after_sync

 

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 6.6/10 (7 votes cast)
Posted in Adobe LiveCycle ES4 | Tagged , , , , , | 1 Comment

HTML Workspace in LiveCycle ES4

Adobe LiveCycle ES4 has come up with a brand new HTML based Workspace along with the traditional Flex-based Workspace. HTML Workspace matches the capabilities of the existing flex workspace and adds new capabilities to extend and integrate workspace and makes it more user-friendly. HTML Workspace is purely based on html technology and doesn’t require Adobe Flash player or Adobe Reader to work.

HTML Workspace is a web based application hosted on CRX. When Workspace is opened in a browser, a CRX resource is accessed, and the application is rendered as HTML page in the browser. Because it pure html based and even hosted on CRX, it becomes more easy to enhance and customize this workspace and takes no time in deploying new changes. This HTML Workspace has been designed into modular JavaScript components which can be individually customized and reused in other web applications.

htmlws_overview

Below are some key capabilities and new features of HTML Workspace:

  • Pure html JavaScript based application, even has the capabilities to take existing xdp or pdf and render it as complete html form. And hence increase its visibility from desktops to tablet devices.
  • HTML Workspace is the component-based software, so it can be easily customized and reused in other web applications. Each component follow Backbone library to have MVC architecture in web application.
  • HTML workspace supports a new summary pane for the tasks. With this summary pane, User can show additional information about the task using an external URL. This feature will be quite useful for a long running task where reviewers or approvers of the task can see the complete summary of the task instead of going through complete task form or other details.
  • HTML Workspace also support for managers view which will allow managers to access or act on tasks of their direct reports. It will also allow managers to drill down, in the Organization hierarchy, to tasks of their indirect reports.
  • One of the important features of HTML workspace is the support for integrating third-party applications inside HTML Workspace. This will allow Organizations to integrate their custom workflows into LiveCycle Workspace like render Adobe LiveCycle CM letter templates as tasks within LiveCycle Workspace window and thus complete the task in Workspace itself without going into LiveCycle CM UI.
VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 4.9/10 (10 votes cast)
Posted in Adobe LiveCycle ES4 | Tagged , , | 1 Comment

New PDF Export formats introduced in PDF Generator ES4

PDF Generator ES4 introduces new export formats which convert PDF documents to Office Open XML formats (DOCX, XLSX, and PPTX). These conversions use Acrobat based conversion route to perform the operation.
Similar to other existing export formats these new formats are only available on Windows platform, and are single-threaded. The output generated would have the same quality as standalone Acrobat Export option.
For converting files to the new formats the user can use the PDF Generator UI, and in Export PDF screen select the desired export format:

Export PDF Screen

Export PDF

For converting the files using Java API a developer can use the enumerations:

  • ConvertPDFFormatType.DOCX
  • ConvertPDFFormatType.XLSX
  • ConvertPDFFormatType.PPTX

Here is a sample code snippet for exporting to the new format:


//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);

//Create a GeneratePdfServiceClient object
GeneratePdfServiceClient pdfGenClient = new GeneratePdfServiceClient(factory);

//Get a PDF document to convert to an RTF document
String inputFileName = “C:\\testFile.pdf”;
FileInputStream fileInputStream = new FileInputStream(inputFileName);
Document inDoc = new Document(fileInputStream);

//Convert a PDF document to a DOCX document
ExportPDFResult result = pdfGenClient.exportPDF2(
inDoc,
inputFileName,
ConvertPDFFormatType.DOCX,
null);

//Get the newly created RTF document
Document createdDocument = result.getConvertedDocument();

//Save the RTF file
createdDocument.copyToFile(new File(“C:\\testFile.zip”));
}

As seen in the code above, the output generated is a zip file which contains the exported DOCX, XLSX or PPTX file.

 

For more information on the exciting new features introduced in Adobe LiveCycle ES4  refer to the LiveCycle ES4 documentation link: What’s new in Adobe LiveCycle ES4 .

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 8.5/10 (4 votes cast)
Posted in Adobe LiveCycle ES4, PDF Generator | Tagged , , | Comments Off