CHAPTER 10
Developing Flex Applications for
LiveCycle ES (Enterprise Suite)
Good design can’t fix a broken business model.
—Jeffrey Veen
Adobe LiveCycle ES (Enterprise Suite) as an enterprise server platform is targeted at
automation of business processes. One example of a business process is a hardware
retail store that sells nails and hammers. The retailer orders the goods online from one
of the known suppliers. Assume that an explicit approval of the supplier is required for
each ordered item. Because the supplier wants to be able to fulfill all the orders, the
supplier attempts to predict the demand.
To that end, the supplier monitors the inventory and, when the level is beyond a certain
threshold, reorders the items from a manufacturer. The supplier’s orders also need to
be approved by the manufacturer. The activities between the companies occur in a
predefined  sequence:  order-approval-reorder-approval.  On  a  more  granular  level,
within each company there is a certain business process as well: receiving orders, or-
dering materials and parts, production, quality assurance, invoicing, shipping, and so
forth.
Business process automation assumes software-based modeling of the process as well
as software-based enforcement of the model that ensures that the process activities are
consistently handled by the process participants: retailer, supplier, manufacturer, and
so forth. Often, such software is called workflow or business process management
(BPM) software.
Unlike other workflow products, LiveCycle ES features unparalleled integration with
PDF processing and Adobe Flex. Accordingly, the combination of Flex and LiveCycle
technologies becomes a natural choice for many enterprises that require productive
workflow solutions featuring a rich user experience.
491
Pdf thumbnails in - Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
show pdf thumbnails in; pdf file thumbnail preview
Pdf thumbnails in - VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
how to create a thumbnail of a pdf document; create pdf thumbnail
This chapter focuses on how to use Flex to support human-centric business processes
in LiveCycle ES and on the most essential enterprise process management topics. After
a brief introduction of LiveCycle ES, the chapter illustrates two scenarios:
• How to build Flex applications that work in concert with a LiveCycle ES frontend
—LiveCycle Workspace. This scenario requires minimal development effort, but
it locks you to capabilities of the Workspace.
• How to embed LiveCycle ES functionality into your own Flex application. This
scenario assumes deeper involvement in the LiveCycle API and more coding, but
it opens unlimited integration opportunities.
By the end of this chapter, you will understand:
• How to extend LiveCycle ES with custom components
• How  to  support  user  and  group  management  from  the  external  enterprise
repository
• How to use LiveCycle ES events to synchronize the processes in the publisher/
subscriber style
This chapter was written about LiveCycle ES 8.2, because the version
branded as LiveCycle ES2 was not available at the time of this writing.
LiveCycle ES2 improves the productivity of developers in various work-
flows, substantially reducing the number of steps needed to populate a
form, design a parallel approval process, get attachments from an initial
task, and more. The Eclipse-based Workspace introduces a new con-
cept: the Application Model, which eliminates the need to separately
manage forms, processes, and assets. You now can deploy applications
without the need to leave the Workbench. Please refer to the latest Live-
Cycle ES2 documentation at http://www.adobe.com/products/livecycle.
Business Process Example: Vacation Request
In this simple scenario, a company employee requests a vacation. The manager must
approve or reject the request and the employee must acknowledge the decision, com-
pleting the process. In business process management lingo, the process assigns tasks:
to the manager (to review the incoming vacation request) and to the employee (to review
and acknowledge) the manager’s decision (Figure 10-1).
The  diagram  of  the  corresponding  SimpleVacationProcess  is  presented  in  Fig-
ure 10-1. It has two user activities: Manager’s Review and Employee’s Review, each
requiring a custom UI (user interface) application to communicate the data between
the user and the process management software.
Figure 10-2 illustrates a sample UI that could be used for the manager’s review: name,
email, department, vacation type, and date range, which are all automatically comple-
ted prior to the manager’s review. The manager can append comments to the optional
492 | Chapter 10: Developing Flex Applications for LiveCycle ES (Enterprise Suite)
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Ability to show PDF page thumbnails for quick navigation. Easy to search PDF text in whole PDF document. Navigate PDF document with thumbnails. 14. Text Search.
how to make a thumbnail from pdf; create thumbnail from pdf
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Ability to show PDF page thumbnails for quick navigation. Easy to search PDF text in whole PDF document. Navigate PDF document with thumbnails. 14. Text Search.
create thumbnail jpeg from pdf; pdf thumbnail generator online
description field and pick either “approved” or “rejected” as the approval decision.
Finally, the manager clicks the Complete button to send the decision to the system.
The employee review/acknowledgment screen might look almost identical to Fig-
ure 10-2, except that the Approval Decision combo box would be disabled and the title
word “Approve” would yield to the humble “Review”. To communicate acknowledg-
ment, the employee would click Complete, indicating his awareness of the manager’s
decision.
Figure 10-1. Diagram of the SimpleVacationProcess
Figure 10-2. The UI of the vacation request approval
Business Process Example: Vacation Request | 493
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively. Embedded page thumbnails.
how to view pdf thumbnails in; pdf thumbnail html
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
Support of converting from any single one PDF page and multiple pages. Thumbnails can be created from PDF pages. Support for customizing image size.
view pdf image thumbnail; pdf preview thumbnail
But wait: how does the vacation request make it into the system in the first place?
Doesn’t the employee need a UI for that, too? Yes, of course. Figure 10-3 shows the
screen to submit the vacation request. By using the user’s login information, the system
might automatically initialize the employee name, email, and department. The em-
ployee specifies the vacation type and date range.
Figure 10-3. The UI of the vacation request submission
All three use cases are supported by a single Flex application, VacationRequest.swf,
discussed in detail later in this chapter. Make no mistake, however: the initial submis-
sion of the request is not a part of the process diagram. That’s right, from the process
management engine’s point of view, the process instance (for this specific request) starts
only after the request is submitted. Does it sound confusing? Well, think of it this way:
a process is a program with input parameters. If you start the process using an API, you
can pass hardcoded values, read them from the external files, and so forth. Alterna-
tively, the program can pop up a dialog box in front of the employee, forcing him to
enter the values.
Think of a web service with a method 
startProcess(vacationRequestData)
. The web
service is oblivious to preparation of the 
vacationRequestData
. Imagine a user-friendly
software program that allows you to fill in a vacation request form and then initiates
the process instance by calling the web service. What might this software be in the case
of the LiveCycle ES? One option is to write a custom program from scratch; another is
to use LiveCycle Workspace ES, as explained in the next section.
Meet LiveCycle Workspace ES
Using the LiveCycle ES API, you can start the process instance, pull all tasks assigned
for a particular user, complete a task, forward it to another user, and so on. But APIs
do not help the end user. That is why almost any workflow product comes with an off-
the-shelf generic frontend that allows participants to use the workflow engine without
paying a dime to an API-savvy geek.
494 | Chapter 10: Developing Flex Applications for LiveCycle ES (Enterprise Suite)
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively. Embedded page thumbnails.
cannot view pdf thumbnails in; disable pdf thumbnails
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
File: Compress PDF. Page: Create Thumbnails. Page: Insert PDF Pages. Page: Delete Existing PDF Pages. PDF thumbnails for navigation in .NET project.
show pdf thumbnail in html; html display pdf thumbnail
Recognizing the universal need for such software, Adobe created a generic process
management frontend program called LiveCycle Workspace ES. It is written entirely in
Flex and its sources are part of the LiveCycle ES installation (later in the chapter, you
will learn how to rebuild the Workspace from scratch). Figure 10-4 illustrates the de-
fault look of the LiveCycle Workspace.
Figure 10-4. Default screen of the LiveCycle Workspace ES
Importantly, LiveCycle ES allows you, during the process design, to nominate a Flex
subapplication that the Workspace loads and activates whenever a user picks a partic-
ular task from the To Do list (otherwise called a queue), as shown in Figure 10-4.
At Farata Systems, we call these applications Flexlets. Once the Flexlet is loaded,
Workspace initializes it with the relevant process data. When the user is satisfied with
the data entered, she clicks Complete and Workspace transmits the data captured by
the Flexlet back to the process.
Figure 10-5 illustrates the task queue of Alex Pink, one of the example users automat-
ically configured by the turnkey installation of LiveCycle ES. Double-click the task line
to initiate the underlying Flexlet and review the vacation request issued by Rye Wood-
ard, another user, as shown in Figure 10-5.
Meet the Flexlet: Vacation Request
Take a look at Figure 10-6. It illustrates the state of the Workspace screen when Work-
space has loaded the SimpleVacationRequest Flexlet and added it to the Workspace’s
Display List under the Form tab. Notice two buttons added by the Workspace to the
Meet the Flexlet: Vacation Request | 495
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Converter control easy to create thumbnails from PDF pages. Selection for compressing to multiple image formats. Cut and paste any areas in PDF pages to images.
how to create a thumbnail of a pdf document; create thumbnail jpeg from pdf
C# WPF PDF Viewer SDK to view PDF document in C#.NET
File: Compress PDF. Page: Create Thumbnails. Page: Insert PDF Pages. Page: Delete Existing PDF Pages. PDF thumbnails for navigation in .NET WPF Console application
generate thumbnail from pdf; can't see pdf thumbnails
control bar of the SimpleVacationRequest panel: a small Save button on the left, and
the Complete button on the right. The Save button preserves the draft of the incomplete
request for further use (accumulating under the user’s To Do list), and the Complete
button passes the request data to the process.
Also, notice the title of the form: Submit Vacation Request. It corresponds to the visual
state of the Workspace when the employee, Rye Woodard, enters the initial request
(to start the process). In particular, date fields appear enabled so that an employee can
enter the vacation period.
Figure 10-5. Task queue of a manager (Alex Pink)
Figure 10-6. Workspace with the activated Flexlet (SimpleVacationRequest.swf, employee’s view)
496 | Chapter 10: Developing Flex Applications for LiveCycle ES (Enterprise Suite)
Compare this screen with the one presenting the manager’s view, Figure 10-7, where
the manager, Alex Pink, makes the approval decision. The date fields are disabled, and
one extra control—the Approval Decision combo box—is on the form. Notice the
similarity between the screens to emphasize the reuse of the single Flexlet for different
users’ activities within the process.
In the earlier releases of LiveCycle, PDF forms were the main mode for capturing data
from the user. Flexlets are a step up from PDF forms, because they offer the user a rich
experience. However, despite the word “form,” a Flexlet may have nothing to do with
the form at all. All that a Flexlet is required to do is to accept an XML document from
the Workspace upon initialization and send it back when a user clicks Complete or
Save.
Again, note the most important difference between the two appearances of the Flexlet.
Figure 10-6 represents the collection of data from the employee that precedes the start
of the process. On the contrary, Figure 10-7 corresponds to the Manager’s Review ac-
tivity of the process (instance), which has already started.
Now that you are acquainted with the Workspace and Flexlets, let’s look at the broader
landscape of LiveCycle ES. After that, we’ll return to discussing the design of the
SimpleVacationRequest process and the matching Flexlet.
LiveCycle ES Architecture in a Nutshell
Architecturally, LiveCycle ES is an extendable service container and a set of tools to
use these services. From the functional point of view, LiveCycle ES services can be
grouped as foundation services and solution services.
Figure 10-7. Workspace with the activated Flexlet (SimpleVacationRequest.swf, manager’s view)
LiveCycle ES Architecture in a Nutshell | 497
Foundation services provide basic functionality such as querying or modifying a data-
base, reading and writing to the filesystem, sending and receiving messages from a JMS
queue, or sending and receiving emails.
Solution services relevant to this chapter are further grouped by LiveCycle ES as two
components:
• Process Management ES
• Data Services ES
Data Services is software that enables messaging between a Flex frontend and a Java
application server. It was known as Flex Data Services in the previous releases of Flex.
The services of the former component, Process Management ES, allow you to pro-
grammatically start an instance of the process, query tasks available for a given user,
complete the tasks, retry the stalled tasks or terminate them, and more. Importantly,
any business process that you design automatically becomes a new service, with a single
operation, 
invoke()
.
All current implementations of LiveCycle ES are built on top of JEE server technology
and require an EJB container. For the full list of LiveCycle ES 8.2 services, you can view
online references at http://help.adobe.com/en_US/livecycle/8.2/services.pdf.
The ecosystem of LiveCycle ES service components, tools, and technologies shown in
Figure 10-8 is from LiveCycle ES documentation. Don’t get overwhelmed with the
number of the diagram blocks, such as those for Forms ES, Digital Signatures ES, and
other solution components that deal exclusively with PDF technology; these are beyond
of the scope of this book.
Endpoints
Services hosted by LiveCycle ES get invoked through endpoints. You can call the services
using Java API and SOAP. On top of that, LiveCycle ES facilitates the invocation of
services by sending an email or by dropping a file in a so-called watched folder. The
service can have many different endpoints:
• EJB endpoint (otherwise called the Java endpoint)
• SOAP endpoint
• Email endpoint
• Watched folder endpoint
Notice the unfortunate terminology conflict between Flex and LiveCycle developers.
Flex developers know endpoints as channel-specific artifacts, such as the AMF end-
point or the HTTP endpoint. Meanwhile, LiveCycle ES folks think of the endpoints
per service. From the Flex perspective, LiveCycle ES endpoints look more like a Flex
destination, which in the Flex world is an order of magnitude smaller than an endpoint.
498 | Chapter 10: Developing Flex Applications for LiveCycle ES (Enterprise Suite)
For further convenience, LiveCycle ES supports a universal Flex remoting destination,
so you can invoke the service’s methods via the 
RemoteObject
tag. This destination is
serviced by the 
MessageBroker
of the web application remoting, deployed as a part of
LiveCycle ES installation with the following URL:
//<server>:<port>/remoting/messagebroker/amf
The previously mentioned (LiveCycle ES) endpoints are applicable to any service. As
mentioned already, any LiveCycle ES process is also a service, albeit with a single op-
eration—
invoke()
. To start a LiveCycle ES process through the LiveCycle Workspace
ES, you must add an additional 
TaskManager
endpoint. Figure 10-9 shows a snapshot of
the LiveCycle administration UI after adding the 
TaskManager
endpoint. The rest of the
endpoints get created for you automatically.
Custom Services
You are not limited to existing LiveCycle ES services. The component model of Live-
Cycle ES is easy to extend with custom services. Custom services are packaged and
deployed as JAR files. These JAR files are also known as data service components, each
carrying one or more services. Using Java you can write your own services, jar them
along with a component descriptor, and deploy them into LiveCycle ES.
For instance, if you need to query the status of the purchase order, you may use the
foundational JDBC service. Alternatively, you can write your own Java class with JDBC
Figure 10-8. LiveCycle ES ecosystem
LiveCycle ES Architecture in a Nutshell | 499
code and expose its public methods as operations of your custom service. Then, while
modeling the business process, you can seamlessly mix the services provided by Live-
Cycle ES with your own. Every business process is a service of itself, so processes can
invoke other processes.
Figure  10-10  illustrates  the  tree  of  LiveCycle  ES  components  after  FarataSam-
pleComponent.jar has been deployed and its services have been activated.
Tools
The important part of the LiveCycle ES ecosystem is its toolset. The Eclipse-based
Workbench gives you features such as visual design, deployment, and debugging of the
business processes as flow chart–type diagrams, in which operations of the LiveCycle
ES services appear as flow-chart building blocks (see Figure 10-11).
Your old pal Adobe Flash Builder, which is also based on Eclipse, is yet another Live-
Cycle ES tool. A custom Flex application can enable a user to start instances of a busi-
ness process; investigate tasks assigned for a particular user; and facilitate task com-
pletion, forwarding to another user, locking, and so on.
Figure 10-9. Endpoints of the SimpleVacationRequest process (service)
500 | Chapter 10: Developing Flex Applications for LiveCycle ES (Enterprise Suite)
Documents you may be interested
Documents you may be interested