Thursday, October 25, 2007

Be a rebel...

I needed to validate LiveCycle ES 8.0.1 against Windows 2003 R2 - 64 bit and SQL 2000 Server. According to the install documentation (pg13) , this is a big no no.:
Intel x86 compatibilityOn supported Windows and Linux environments, LiveCycle ES supports Intel EDT64 and AMD64 compatible chipsets, but the operating system must be 32 bit.
Microsoft Windows Server 2003 Enterprise Edition or Standard Edition SP1 and R2 (32-bit edition only)

Good news!

The installation and configuration went basically flawlessly. The only thing I ran into problem with was the JDBC Driver.

I started the installation process using: SQL Server 2000 Driver for JDBC Service Pack 3 . Unfortunately I ran into some SQL issues during start up of my jboss app server. Specifically I got the "Can't start manual transaction mode because there are cloned connections". After a bit of googling, this turns out to be a problem with Microsoft Type 4 JDBC Driver and concurrent statements, transactions, or result sets on the same database connection. The resolution was to pass in "SelectMethod=cursor" in my connection string. I didn't like this very much, since SelectMethod=cursor potentially has performance impact.

After further researching, it turns out that the SQL Server 2005 JDBC Driver 1.2 supports SQL Server 2000 as well as 2005. Using this driver my connection issue went away, and I was unable to successfully complete the rest of my configuration steps for LCES.

The specifics of my environment below. Hopefully this may potentially help some of you.

Hardware: AMD X2 5600+ , 8GB of RAM
OS: Windows 2003 Server Enterprise Edition R2, 64 Bit
Java: JDK 1.5.0_13-windows-amd64
Database (on a remote machine): SQL 2000 Server SP4 on a Windows 2003 Enterprise (32bit)

Notes:
- Use the latest JDBC Drivers from Microsoft. Version 1.2 of the JDBC Driver was released recently, and my preliminary tests (Reader Extensions, create sample policies) worked without any issues.
- Set database to authenticate against mix mode (SQL Server and Windows authentication)
- Watch out for driver-class in adobe-ds.xml and mssql-ds.xml. I double checked by extracting the jar file to see what the path is.

Happy installation :-)

Monday, October 22, 2007

rise from the ashes ;)

Been a while since I've posted... some updates over the course of next few days:

1. Currently experimenting with installing LiveCycle ES 8.0.1 on an 64 bit OS. Officially it's unsupported. I am keeping my fingers crossed that A) Java's abstracted well enough from the OS layer that this is a non-issue. B) LiveCycle 8 is purely Java, failing that C) Windows 2003's 32 bit emulation mechanism is good enough.

I should have an answer tomorrow.. Keep reading :)

2. Some folks in our office spent quite a few weeks trying out install and configuration documentation for Clustering on LiveCycle ES. Version 8 is so much easier to install and configure in a cluster than previous releases. There are a few caveats to watch out for in *unix based environments. Specifically this has to do with the GlobalStorageDirectory properties during the installation step. I will share some of the problems we ran into, and our workarounds in a follow up post. For those who needs specific help, send me an email at davidl AT ensemble dot com.

Friday, May 25, 2007

LiveCycle Enterprise Suite (ES) preview release

LiveCycle Enterprise Suite (ES) preview release is available for download from http://www.adobe.com/devnet/livecycle/espreview/ . Yes folks, this is the next version of LiveCycle.

Some of the changes in LiveCycle are quite significant in this release. Notable features include:

Installation and Configuration
  • consistent installation and configuration experience from a single installer.
  • better support at detecting environment settings and automatic deployment of LiveCycle ES onto the app servers.
  • Support of the latest app servers and databases.
I had a lot of experience installing LiveCycle: from Windows, to Linux, to AIX; from JBOSS, to WebSphere to Weblogic; and using the default MySQL, to SQL Server to Oracle. A little too much, to my liking. ES has came a long way in terms of installation and configuration from the old LiveCycle 6 days. There's a single installer (yah!), with a place to enter all your serials or suite serials without having to worried about product compatibility or order of installation within the platform. This is a huge improvement. There are some still hiccups with regards to deploying ES apps onto the application server, but I am sure these will be addressed in the production version.

Designer ES
  • [New feature] Form Guide, a flash based wizard constructed with the same PDF template (xdp and pdf).
  • [New Feature] Form Fragments, xdp concept that allows fragments to be reuse across different templates.
Form Guide is an excellent first step towards marrying Flex and LiveCycle. It provides an intuitive GUI to build a wizard from your pdf and xdp files, while keeping the data model consistent. This means that data inputted in the flex form guide can be used to populate the pdf form with zero effort. That being said, i have a few comments and feature requests to LiveCycle product team:

- Let me overwrite and update the generated MXML code. This will allow finer grained control over the user experience and look and feel of the UI.

- Guide preview currently generates the swf in a default location. Let me specify where to put this. Or better, place in a sub-folder from where the xdp/pdf template is.

- The preview in the guide builder doesn't open the PDF? It's pointing to a default PDF.

- I am quite excited about Form Fragments. In many of our large form projects, we could have used something exactly like this. Form fragments allows you to create, say a company header, or a mortgage calculator object and reuse across all forms. How is this different from a custom XFO? Well, when you insert an XFO, a static copy is inserted into your form. Any updates to the XFO will need to be updated in all form instances. This is not true for form fragments. Since XDP with form fragments contains a reference to the fragment, any updates to the fragment will be dynamically picked up by ALL form instances. This is a big win in terms of form maintainability.

LiveCycle ES Document Services
  • LiveCycle Forms ES can generate a form guide from the XDP template
  • Better and consistent Java API support across the board. Remote java calls now supported for Reader Extensions. We used to have to write a webservices wrapper for Reader Extensions.
  • Better and consistent SOAP API support across the board.

Workbench ES
  • Eclipse based development environment for building your form, and processes.
  • Re-skinned, and much improved workflow designer in terms of user experience.
  • Drag and drop support to add files into the repository for consumption by the processes.
Usability for Workflow designer is much better in ES. I also liked the fact that there's a consistent developer interface, for form developer, process developer, or application developer. Flex builder plug-in for eclipse should be available optionally, and plug-able into Workbench.

Process Management and Workflow
  • additional invocation methods to all services supported by default, including watch folder, email, java, soap, and remoting (flash remoting).
  • [New Feature] Workspace to replace LiveCycle Form Manager. Workspace is a Flex application that allows user to initiate and participate in processes.
This is actually really cool. Instead of being limited to using a PDF Form to trigger a process, ES supports additional invocation methods out of the box: watch folder, and email. What this means, is that processes can be triggered by copying a file into a watched folder, or an email to a specific address. This is true for all services that you create, or available out of the box.

There are alot of new and exciting features in LiveCycle ES that makes a lot of sense for developers who are currently on the 7.x platform, as well as new organizations that want to adopt LiveCycle into their business processes.

Monday, May 14, 2007

New LiveCycle Samples (with source code)

There are 3 additional LiveCycle samples that we have made available at our website.

The first sample utilizes Reader Extensions and Assembler to cover the scenario of enabling a pdf document for review, then compare and merge the comments using Assembler.

The second sample goes through various mechanisms for validating a PDF form before additional processing can occur. Three specific approaches were illustrated: LiveCycle Forms API (processFormSubmission()), LiveCycle Reader Extensions API (exportFormData()), and XPAAJ (exportFormData()).

Finally, the last sample shows how to apply a policy on a PDF document.

The samples can be found at http://www.ensemble.com/samples/adobe/livecycle

David

Sunday, April 8, 2007

Considerations when building an eform solution using LiveCycle - part 2

Continue'd from last part

5. Volume
What is the anticipated volume of electronic submissions expected? Simultaneous submissions? If large and simultaneous submissions are expected, then you want to leverage a JMS queue to handle the submission part. The downside to this is that results can not be returned to the user synchronously.

The other approach is to leverage clustering of your web / application server. This will result in better performance as well as a more reliable solution. Unfortunately there is a cost associated with clustering (software licenses and hardware).

6. Paper based submissions?
Are there times in which the signed paper forms are required for legality reasons? This is found in particular in heavily regulated industries (financial institutions and government organizations). If you require to keep a copy of the signed paper forms, then at design time, you want to consider leveraging 2D Barcode. The way the 2D Barcode works is that as you enter data using Reader / Acrobat, the data is being encoded into the Barcode. The data by default is encrypted. To decrypt the 2d barcode, you would need 1) reader extensions rights 2) barcode decoder from Adobe 3) Acrobat to print the barcoded forms.

Let me know if you have other questions in the comments area, I will do my best to include them in my post.

David

Saturday, March 31, 2007

Considerations when building an electronic form (eForm) solution using LiveCycle - Part1

This article is intended for those who are interested in migrating your existing paper based processes over to an electronic one. I will go through some high level considerations in finding the right solution.

1. PDF or HTML?
Are you interested in implementing a pure PDF solution or one that includes both HTML and PDF? LiveCycle Forms allows multiple output formats (PDF, PDF Form, HTML, DHTML, AHTML, etc) to be generated from a single template (.xdp) created from LiveCycle Designer. The caveat is that the scripting behavior is different between the HTML and PDF, resulting in scripts that has to be coded into the templates. Unless there's a significant requirement to continue to support HTML based forms, I would stick with PDF Forms.

2. When is HTML Form an appropriate output from LiveCycle Forms?
Scenario 1: If the PDF form is very long (5-10 pages), I sometimes use HTML Forms to capture data, in a multiple step wizard. This breaks the long time into a sequence of smaller and more focused forms for the user to fill out.

Scenario 2: Use HTML Forms when screen real-estate becomes a high premium (within a portal, within LiveCycle Form Manager)

3. Requirements to archive the PDF?
Do you have existing requirement to archive the PDF that the user submits? If yes, then the submit type needs to be either XDP or PDF. This is done at the form design stage. Note, to support this capabilities using Adobe Reader, the PDF needs to be reader-extended first. (Product: LiveCycle Reader Extensions)

4. Requirements to use digital signature?
Are you planning to support digital signatures in your PDF Form? If that's the case, you should be aware that an existing PKI infrastructure and/or support for roaming certificates / id needs to be there to associate and identify the signing party. Also, if digital signatures are required, the submission type (of submit buttons on the PDF) has to be an XDP aor a PDF.

to be continued..

Tuesday, March 20, 2007

Gmail on the desktop? Sign me up!

Leslie at jinsync.com released an apollo gmail app that showcased how easily existing AJAX application can be wrapped and deployed onto the desktop. The concept is very simple, use the HTML capabilities within apollo sdk to wrap around an existing web site. Many will say, "so what? I can just bookmark gmail using my browser, and place a link on my desktop as well." Now, look at apollo's documentation. Offline capabilities support within the SDK. Add caching and offline capabilities onto the existing AJAX-based gmail, and you will have a powerful desktop emailing tool without significant rewrite of the entire code base.

Google, pay attention. With Apollo, gmail can be a desktop email client that is cross platform, based on the same code base as the existing web version, and ready to be deployed within a couple of weeks.

Sunday, March 18, 2007

Apollo is released on Adobe labs!

Apollo has been released on Adobe labs at http://labs.adobe.com/technologies/apollo/ ! Get it while it's hot. For those of you who doesn't know, Apollo is the code name for cross platform runtime from Adobe, that allow developers to use familar web technologies (flex, ajax, css, html) to build compelling rich client applications.

Saturday, February 24, 2007

How to automate testing of PDF based form solutions?

With the increased adoption of fillable PDF forms for government agencies and corporations, there is a need to automate the testing process of online applications that includes PDF Forms. How is this accomplished?

Use the testing tool and example provided on Adobe LiveCycle Developer center. Note, the PDF form tester toolkit contains C, Java, JUnit, Robot, RobotJ, and VB Examples. This should allow adoption of these samples into any existing test framework.

David in Vancouver

Wednesday, February 21, 2007

LiveCycle Workflow Tutorials

For those interested, there is a series of LiveCycle Workflow tutorial posted on my company's site here.

This tutorial shows you how to implement a process using Adobe LiveCycle Workflow. The thirteen parts step you through changing an existing paper process for expense reports into a completely electronic process.

The following topics are covered:

1. Adding LiveCycle Workflow fields to the form
2. Uploading the form to LiveCycle Form Manager
3. Linking the form to a category
4. Identifying the form as initiator of a workflow
5. Initiating a workflow by submitting the form
6. Assign the form to a group of users
7. Render the submitted form as a PDF
8. Use route names as choice-list items
9. Split workflows into parallel branches of tasks
10. Save the form as PDF in the file system
11. Insert the form data into a database
12. Look up the originator's e-mail address
13. Importing the sample workflow

Cheers,

David

Wednesday, February 14, 2007

Changing the paradigm - new user interaction

Go to here to view a more extended display of multi touch system from Jeff Han. He originally displayed the multi-touch system at TED conference in 2006. This technology alone, can change the way humans interact with machines. More information at the tip of your finger tips and hopefully reduce the number of RSI.

Thursday, February 1, 2007

Hockey Pool, Flex Style

Come check out the Flex Hockey Pool (and the scrolling RSS component) that a few coworkers of mine created. The demo can be launched here. Note, Flash 9 player is required to view the application.

Thursday, January 18, 2007

Linux LiveCD as a Productivity Tool?

I have been having a tough time finishing /starting one specific task, to come up with new content for our website. A lot of other different things keep coming at my way, and this specific task for writing has been postponed many times over.

I recalled some tricks published in Brian Tracy's book, "Eat that Frog!", and decided to focus on the most important task (or eat the ugliest frog at hand). I sat down in front of my comp, and realize that my desktop is a mess: chat client, email notifier, and assorted other links, short-cuts, and program launcher leaving a permanent mark on my desktop.

Realizing that all of this will effectively kill my productivity, and make completing my task so much harder, an idea came to me. Why don't I just use a Linux LiveCD, such that I can have a clean slate, and minimal distraction? I grabbed the LiveCD that i have on hand (ubuntu 6.0.6), and restartd my machine. After a couple of minutes, I am up and running.

I must say, the effect was much more profound than I expected. I used the built in firefox browsers to access my gmail account, and also to begin research on the topic at hand. One blissful hour later, an overall outline has been created for the new web page. From the default file viewer, to the integrated OpenOffice 2.0. The LiveCD worked very well, and fast beyond any expectations that I have. Although, I still need to figure out how to change my display to support dual screens in Ubuntu.

I think I will do this trick for an hour each day.