Introduction to Process Applications
Developing a custom Process application involves customizing the user interface
and the way work is done for one or more steps in a workflow, how the application
accesses data and other resources, how data is updated, and how the application
interfaces with the Process Engine and related services.
A custom Process (workflow) application may be created as either a "Work
Performer" (performs an operation or set of operations associated with
a workflow step, but does not require a user interface), as a "Step
Processor" (performs all the operations associated with a step in a
workflow and has a user interface), or as a user application, such as
a "User Inbox" also known as a "User Tasks Page"
or "Personal Work Manager" which provides a user interface
that contains notifications from a user queue or work queue for work items to
be performed by the user). Developing a Process application involves consideration
of the various approaches you can use to
plan and develop a Process application, as well as an understanding of what
these applications are, what do they do, and how they may be customized.
Topics covered in this overview include:
- Overview of Step Processors describes
Step Processors (Java and HTML) and Launch Step Processors (Java and HTML),
including what they are and what they do. Where to get additional information
on developing Step Processors is also included.
- Overview of Work Performers describes
the Component Integrator-based Work Performer and the automatic daemon-based
Work Performer.
- Overview of a User Inbox describes
what a User Inbox (also called a "User Tasks Page" or a "Personal
Work Manager") is and its basic functionality.
Overview of Step Processors
As indicated above, a Step Processor is an application that performs the operations
associated with a step in a workflow. There are two types of Step Processors:
- Step Processor: This applet or
application processes the information and resources a workflow participant
needs to complete a step in a workflow. When a user (workflow participant)
opens a work item, the Step Processor displays the instructions, the attachments
stored in Object or File Stores (for FileNet Workplace), or for Content and
Image Services libraries (for FileNet Web Services or FileNet Open Client),
current field values, response options, or other resources necessary to allow
the participant to process the step. When designing or customizing a Step
Processor, you must account for all data and information to be provided for
this step.
- Launch Step Processor: This is
a more specialized type of Step Processor. Launch Step Processors begin a
workflow, so a typical Launch Step Processor contains all of the information
necessary to begin (or initialize) a workflow. Typically, Launch Step Processors
are independent of the condition of workflow progress, so you need consider
only what information the Launch Step Processor will introduce into the workflow.
There are two ways of developing a Step Processor or Launch Step Processor:
either as a zero-download J2EE-based "HTML Step Processor" or as a
"Java Step Processor" application or applet.
- HTML Step or Launch Step Processor: Developing a custom HTML Step
Processor involves using the Web Application Toolkit and/or developing your
own JSP pages, JavaBeans, servlets, modifying the XML schema, using the Process
Java APIs to log in to the Process Engine and establish a session, etc. For
information on developing an HTML Step Processor or Launch Step Processor,
see the Developing HTML and Java
Step Processors topic in this guide and also general information on developing
web applications in the Help
for Web Application Toolkit Developer's Guide. In addition,
the FileNet eXtra Web
site provides a sample HTML Step Processor you can download, as well as
other samples that illustrate a range of Web Application Toolkit functionalities.
- Java Step Processor: You can build a Java Step or Launch Step Processor
for deployment as either a Java application or applet. For information on
the considerations and pros and cons on whether to develop your custom Process
Java Processor as an application or an applet, see the Developing
Custom Java Processors - Applications vs. Applets topic. For information
on developing a Java Step Processor or Launch Step Processor, see Developing
a Java Step Processor elsewhere in this guide. If you wish to use the
Java Step Processor UI Toolkit
to extend or customize the sample Java Step Processor providing with the Process
Development Environment, see Building
a Step Processor with the Java Step Processor UI Toolkit elsewhere in
this guide.
The following additional information is useful whether you are developing an
HTML or a Java Step or Launch Step Processor:
Overview of Work Performers
As indicated above, a "Work Performer" is an application that
performs an operation or set of operations associated with a workflow step,
but which does not require a user interface (typically, Work Performers are
automatic processes that do not have a user interface). Typical Work Performer
operations include logging into and establishing a Process Engine (VWSession)
session, polling a work queue (to find operations related to this workflow step),
locking the retrieved object, processing the work (e.g., performing updates
of data, saving, etc.), and cycling back to queue polling.
There are two types of Work Performers:
- Component Integrator-based Work Performer: This Work Performer can
be used to perform all operations associated with a workflow, based on the
use of the Process Engine Component Integrator feature. For example, a Component
Integrator-based Work Performer may be used to perform Process Engine queue
operations. The Component Integrator provides a mechanism for communicating
events (i.e., work items associated with a step in the workflow) between the
Process Engine and a Java class or JMS queue (for example, in order to access
an object from an Object Store, File Store, or an external system or application).
The Component Integrator provides a Component Manager (e.g., to do the polling)
and two Service Adapters (Java and JMS), either of which may be used to interface
to an object or service, as follows:
- Java Adapter: The Java Adapter provides a general interface for
communicating with Java objects. Specifically, the Java Adaptor handles
Process calls to Java objects, which are represented to the Process Engine
as operations on queues (work items), where each operation is handled
by a method of the Java class.
- JMS Adapter: The JMS Adapter provides a general interface for
communicating with messaging services (e.g., email notifications) via
JMS (Java Messaging Service). Specifically, the JMS Adapter handles posting
Process events to a message queue in the form of an XML event based on
the Step element for the given operation.
For additional information, see the Building a Component Integrator-based Work Performer topic.
- Daemon-based Automatic Work Performer: The daemon-based automatic
Work Performer may be used to perform all normal operations associated with
a workflow step, such as providing Step operations from a queue (although
for example, unlike a Component Integrator-based Work Performer, you will
have to specify polling). You can build a custom daemon-based automatic Work
Performer using the Process Java APIs. For additional information, including
an example of how to build a daemon-based automatic Work Performer to automatically
poll a work queue, see the Building a Daemon-based
Automatic Work Performer topic.
Overview of a User
Inbox
A User Inbox (or "User Tasks Page") is typically an HTML page or
Java applet that provides the user (workflow participant or Tracker) with the
notifications on the work items he/she needs to work on. For example, if you
are using P8 Workplace as your web application, this is the page that comes
up when the user clicks on the Workplace Tasks tab. The notifications
in the User Inbox include information and associated attachments, which are
provided to the User Inbox from a user queue or work queue. Developers are often
called upon to develop a customized user interface for the User Inbox, as well
as customizing such operations as displaying a list of queues, displaying queue
contents, opening a Step Processor's link, or Tracker item, and so on.
For information on developing a custom User Inbox as either an HTML page or
a Java applet, see Developing a Custom User Inbox.