Webmethods Modeler Users Guide
Webmethods Modeler Users Guide
Webmethods Modeler Users Guide
User’s Guide
VERSION 6.1
webMethods, Inc.
3930 Pender Drive
Fairfax, VA 22030
USA
703.460.2500
http://www.webmethods.com
webMethods Administrator, webMethods Broker, webMethods Dashboard, webMethods Developer, webMethods Glue, webMethods Fabric, webMethods
Installer, webMethods Integration Server, webMethods Mainframe, webMethods Manager, webMethods Mobile, webMethods Modeler, webMethods
Monitor, webMethods Optimize, webMethods Trading Networks, webMethods Workflow, and the webMethods logo are trademarks of webMethods, Inc.
"webMethods" is a registered trademark of webMethods, Inc.
Acrobat, Adobe, and Reader are registered trademarks of Adobe Systems Incorporated. Amdocs and ClarifyCRM are registered trademarks of Amdocs Ltd.
Ariba is a registered trademark of Ariba Inc. BEA is a registered trademark, and BEA WebLogic Platform and BEA WebLogic Server are trademarks of BEA
Systems, Inc. BMC Software and PATROL are registered trademarks of BMC Software, Inc. BroadVision is a registered trademark of BroadVision, Inc. Chem
eStandards and CIDX are trademarks of Chemical Industry Data Exchange. Unicenter is a registered trademark of Computer Associates International, Inc.
Kenan and Arbor are registered trademarks of CSG Systems, Incorporated. SNAP-IX is a registered trademark, and Data Connection is a trademark of Data
Connection Ltd. DataDirect, DataDirect Connect, and SequeLink are registered trademarks of DataDirect Technologies. D&B and D-U-N-S are registered
trademarks of D&B, Inc. Entrust is a registered trademark of Entrust. Hewlett-Packard, HP, HP-UX, and OpenView are trademarks of Hewlett-Packard
Company. i2 is a registered trademark of i2 Technologies, Inc. AIX, AS/400, CICS, DB2, IBM, Infoprint, Informix, MQSeries, OS/390, OS/400, RACF, RS/6000,
SQL/400, S/390, System/390, VTAM, and WebSphere are registered trademarks; and Communications System for Windows NT, IMS, MVS, SQL/DS, Universal
Database, and z/OS are trademarks of IBM Corporation. JBoss and JBoss Group are trademarks of Marc Fleury under operation by JBoss Group, LLC. J.D.
Edwards and OneWorld are registered trademarks, and WorldSoftware is a trademark of J.D. Edwards. Linux is a registered trademark of Linus Torvalds and
others. X Window System is a trademark of Massachusetts Institute of Technology. MetaSolv is a registered trademark of Metasolv Software, Inc. ActiveX,
Microsoft, Outlook, Visual Basic, Windows, and Windows NT are registered trademarks; and SQL Server is a trademark of Microsoft Corporation. Teradata is
a registered trademark of NCR. Netscape is a registered trademark of Netscape Communications Corporation. New Atlanta and ServletExec are trademarks
of New Atlanta Communications, LLC. CORBA is a registered trademark of Object Management Group, Inc. UNIX is a registered trademark of Open Group.
Oracle is a registered trademark of Oracle Corporation. PeopleSoft and Vantive are registered trademarks, and PeopleSoft Pure Internet Architecture is a
trademark of PeopleSoft, Inc. Infranet and Portal are trademarks of Portal Software, Inc. RosettaNet is a trademark of “RosettaNet,” a non-profit organization.
SAP and R/3 are trademarks or registered trademarks of SAP AG. Siebel is a trademark of Siebel Systems, Inc. SPARC and SPARCStation are trademarks of
SPARC International, Inc. SSA Global is a trademark and SSA Baan is a registered trademark of SSA Global Technologies, Inc. EJB, Enterprise JavaBeans, Java,
Java Naming and Directory Interface, JavaServer Pages, JDBC, JSP, J2EE, Solaris, Sun Microsystems, and SunSoft are trademarks of Sun Microsystems, Inc.
SWIFT and SWIFTNet are trademarks of S.W.I.F.T. SCRL. Sybase is a registered trademark of Sybase, Inc. UCCnet is a trademark of UCCnet. eBusinessReady
is a trademark of Uniform Code Council, Inc. (UCC) and Drummond Group, Inc. (DGI). Verisign is a registered trademark of Verisign. VERITAS, VERITAS
SOFTWARE, and VERITAS Cluster Server are trademarks of VERITAS Software. W3C is a registered trademark of World Wide Web Consortium.
All other marks are the property of their respective owners.
Copyright © 2002-2004 by webMethods, Inc. All rights reserved, including the right of reproduction in whole or in part in any form.
Contents
Chapter 1. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
What is Modeling? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
What is the webMethods Modeler? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
webMethods Modeler and Business Process Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Modeler and the webMethods Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Modeler Design-Time Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Design-time Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Process Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Controlled and Uncontrolled Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Steps and Information Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Multiple Steps Represented as a Single Icon in the Process Model . . . . . . . . . . . . . . 25
Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Process Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Run-time Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Participants in Process Modeling and Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Bottom-Up Vs. Top-Down Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Top-Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Bottom-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Phases of Development and Production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
The Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
The Production Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Introduction to BPEL Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Menu Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Main Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Process Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Process Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
View Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
This guide is for users of webMethods Modeler. It provides procedures for how to use
webMethods Modeler to build, generate, and deploy business process models. With
webMethods Modeler, you can create easy-to-understand, visually-based, process
automation solutions that integrate the pillars of integration.
Document Conventions
Convention Description
Bold Identifies elements on a screen.
Italic Identifies variable information that you must supply or
change based on your specific situation or environment.
Identifies terms the first time they are defined in text. Also
identifies service input and output variables.
Narrow font Identifies storage locations for services on the webMethods
Integration Server using the convention folder.subfolder:service.
Typewriter Identifies characters and values that you must type exactly or
font messages that the system displays on the console.
UPPERCASE Identifies keyboard keys. Keys that you must press
simultaneously are joined with the “+” symbol.
\ Directory paths use the “\” directory delimiter unless the
subject is UNIX-specific.
[] Optional keywords or values are enclosed in [ ]. Do not type
the [ ] symbols in your own code.
Additional Information
The webMethods Advantage Web site at http://advantage.webmethods.com provides you
with important sources of information about the webMethods Integration Platform:
Troubleshooting Information. webMethods provides troubleshooting information for
many webMethods components in the webMethods Knowledge Base.
Documentation Feedback. To provide documentation feedback to webMethods, go to the
Documentation Feedback Form on the webMethods Bookshelf.
Additional Documentation. All webMethods documentation is available on the
webMethods Bookshelf.
CHAPTER 1
Concepts
What is Modeling? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Process Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
What is Modeling?
Modeling is drawing a diagram that illustrates a business process. Modeling helps you to:
Visualize the actions taking place in the business process
Databases/data warehouses
Trading Partners
Web services
Mainframes
Modeler
IS IS IS IS
Modeler WmModeler WmMonitor Monitor
repository package package
Broker Workflow
Component Description
Modeler webMethods Modeler is a Java GUI. It is the tool that is described
in this manual and that you use to draw and generate business
process models.
Design Server The Design Server is an Integration Server to which you connect
the Modeler. You install the WmModeler package on the Design
Server machine. The WmModeler package contains the services
that are needed to load and store process model definitions, which
are maintained in the Modeler repository. The WmModeler
package also installs the services required to generate the run-time
components required to execute process models.
Modeler The Modeler repository is a storage area that Modeler uses to save
repository (through the WmModeler package) process model information.
Typically, you define the Modeler repository on the same machine
as the Design Server.
IS The components labeled IS in the diagram represent the
Integration Servers you have installed in a single territory. (A
territory is all servers connected to a single Broker.) These servers
can have webMethods components installed on them such as
webMethods Trading Networks or webMethods PeopleSoft
Adapter. When you draw a process model, the Modeler can access
information from these servers. For example, if you are running
Trading Networks on a server, you can draw process models that
reference documents sent to and from your trading partners.
Broker The Broker acts as the communication link between Integration
Servers in a territory. The Broker receives, queues, and delivers
internal documents that are sent and received within your
Enterprise. The Broker routes internal documents between servers
based on subscriptions. One server publishes a document to the
Broker and the Broker delivers the document to any server that
subscribes to that type of document.
When you draw your process model, you identify on what server
a step takes place. If a step is executed on one server and the next
on a different server, at run time, the server performing the first
step creates an internal document and sends it to the Broker. The
second server will have a subscription to this internal document,
and consequently will receive the document when the Broker
sends it. The Modeler defines these internal documents and
subscriptions when you generate a process model.
Component Description
Process Audit The Process Audit Log is a database that the Integration Servers in
Log the territory use to log audit information about the execution of
business processes. The Process Audit Log is stored in an external
relational database, such as Oracle, Sybase, or Microsoft SQL
Server.
Workflow webMethods Workflow is a Java GUI. You use Workflow to model
and execute human interaction. You can include Workflow steps
in your business processes where human interaction is required in
a business process.
Monitor webMethods Monitor is an administrative tool that you use to
examine instances of business processes, services, integrations,
and documents that the integration platform is processing or has
finished processing. Besides viewing status information about
your processes, services, integrations, and documents, you can
also use Monitor to perform control tasks such as suspending or
resuming processes or editing and resubmitting documents,
services, or the step pipeline.
webMethods Monitor retrieves information about processes,
services, integrations, and documents by querying the audit logs
and the Trading Networks database.
The Monitor is hosted by an integration server. You access
webMethods Monitor through a web browser.
Design-time Architecture
The following shows the design-time architecture for creating process models using
webMethods Modeler.
Design-time Architecture
Modeler
Design
Server
Modeler IS IS IS IS
repository WmModeler Workflow
package
Logical Server Names = Utility Services Accounting Customer Info Partner Gateway
Component Description
Modeler During design time, you use the Modeler (a Java GUI) to draw the
process model by placing icons on a screen window and linking
the icons to show the process and information flow. Each icon
represents a step in the process.
As you draw the model, you identify where each step is to be
completed; that is, you assign steps to servers. However, when
assigning the steps, you do not specify a specific physical server
(e.g., acct45.company.com:5555). Rather, you assign steps to a
logical server (e.g., Accounting). Each logical server is mapped to a
physical server. By assigning the steps to logical servers you assign
steps based on functionality and can easily change the underlying
physical servers. When you generate the process model, the
Modeler uses the logical-to-physical server mapping to know
where to place the run-time elements that it creates.
The Modeler connects to the various servers, as needed, to retrieve
information you might require when drawing your process model.
For example, as you identify services and documents in the
process model, Modeler connects to the machines containing those
services and documents.
Component Description
Design Server The Design Server is an Integration Server on which the
WmModeler package resides. You connect the Modeler to the
Design Server when you initialize the Modeler. The Design Server
is responsible for authenticating the access to the Modeler GUI and
the Modeler repository. It also contains the logic necessary to
update process models to the Process Audit Log, so you can
monitor a process using webMethods Monitor.
Modeler The Modeler saves information about the process models that you
repository draw to the repository. When you want to view a previously saved
process model, the Modeler obtains information about the process
model that it stored in the repository, so it can display the process
model in the Modeler GUI. The Modeler accesses the Modeler
repository via the WmModeler package on the Design Server.
IS The Integration Servers contain the documents, services, and
records that you will want to access when drawing your process
models. The Modeler directly connects to an Integration Server as
information is needed when designing the process model.
When you generate the process model, the Modeler stores services,
triggers, and process run-time scripts on Integration Servers. These
services, triggers, and process run-time scripts are the run-time
elements that execute when the process runs.
Workflow Use webMethods Workflow to design human workflows that
represent the human interaction that is required for a business
process. For example, you might need a step to have a person
approve a purchase order. Modeler directly connects to Workflow
when you specify that a Workflow step connect to a workflow that
you have previously created. Or you can simply create a Workflow
step for which you will later define the human workflow.
When you generate the process model, Modeler creates Workflow
projects, implementation modules, and Workflow tasks in the
webMethods Workflow environment.
Process Models
Process models are the diagrams that illustrate a business process that you create using the
Modeler.
Steps represent an
automated process
performed by a computer or
a manual step performed by
a person.
Transitions are lines
between steps that
indicate the flow of
execution.
Transitions
Groups (optional)
Annotations (optional)
Steps
Steps are the basic unit of work in a business process. A step can represent an automated
process performed on an Integration Server (e.g., executing a service), a manual step
performed by a person (via webMethods Workflow), or a visual aid that identifies a task
that an external organization performs. Steps can also depict a service that you want
executed if an error or timeout occurs in the process.
You add a step to a process model by placing an icon on the screen. You can use the
default icon for a step or select a different icon. You might select a different icon to make
your process model more self-describing. For example, you might use an icon of a truck to
represent a step that represents an item is to be shipped to a buyer.
The Modeler provides three main kinds of steps: Flow steps, Workflow steps, and Web
Service steps.
Flow steps. Flow steps represent automated processes, such as executing a service. This
can include steps that execute when another step or the process times out or
encounters an error. When you generate the process model, the Modeler generates
flow services, triggers, and process run-time scripts as the run-time elements for this
type of step.
Workflow steps. Workflow steps are manual steps that require human intervention. A
person performs this type of step using webMethods Workflow. You add a Workflow
step that references a human workflow in the webMethods Workflow system. When
you generate the process model, the Modeler generates a webMethods Workflow
project and implementation module that contains the reference to the human
workflow.
Web Service steps. Web Service steps allow you to define and manage relationships
between BPEL partners and define web service interactions. These steps are designed
to replicate the BPEL invoke, receive, and reply activities.
Transitions
You draw transitions (or lines) between steps to indicate the execution order of the steps
within the process model.
To control the flow of execution, you can place conditions on transitions. The condition
affects whether a transition is taken or not. For example, during the process model you
might need to approve an item. After the step that determines whether the approval is
granted, you would use transition conditions so the model transitions to one step if
approval is granted and another if approval was not granted.
Using transitions you can create splits, branches, and joins.
Splits. You create splits when you draw transitions from one step to two or more steps
without placing conditions on the transitions. At run time, all transitions are executed
and processing splits into two or more threads of execution.
Branches. You create branches when you draw transitions from one step to two or
more steps and place conditions on the transitions, so at run time, at most one
transition is executed.
Joins. You create joins when you draw transitions from two or more steps to a single
step, merging multiple threads of execution to return to a single thread of execution.
You can also create a join by subscribing to multiple documents, or by subscribing to a
document that also has an input transition.
You can also create the following types of transitions to handle special conditions that
might occur for a particular step:
Retries Exceeded. The step property Retry Count specifies the number of times to
execute a step. At run time, if the process attempts to execute the step more times than
Retry Count specifies, then the process takes the Retries Exceeded transition.
Timeout. When you create joins that cause the process to wait for multiple events to
occur before continuing (e.g., AND joins), you can specify how long to wait for all the
events to occur. At run time, if the amount of time you specify is exceeded, the
process will take the timeout transition. This relative timeout can be set for a number
of milliseconds or based on an XPath condition.
You can also set an absolute timeout for a join condition that will cause the process to
continue until a set date and time, or based on an XPath condition.
Error. An error transition incorporates general error handling for a step. At run time,
the error transition is taken if the service executed by the step throws an exception.
Else. Else transitions specify what step should execute if no other transitions are
followed. At run time, if no other transitions from a step are followed, the Else
transition will be followed.
Groups
You can place steps into groups to represent different organizational boundaries within
the business process model. Groups are represented by shaded rectangles in the process
model. Placing steps within groups can be a helpful visual aid for complicated process
models, but is never required. There are two types of groups: internal and external.
Internal groups Steps within internal groups (as with steps outside of any group) are
steps within the scope of the business process. That is, they are controlled steps. You
might use internal groups to specify different departments within the process (for
example, accounting or purchasing) that complete a specific grouping of steps.
External groups You place steps within external groups to visualize steps that occur
outside of the scope of the business process, for example, a step that waits for a
document or sends an acknowledgement. Since steps in external groups are by
definition outside the scope of the process, they are known as uncontrolled steps. That
is, when you generate the process model, the process run ignores these steps
completely; no run-time elements are generated for these steps. Use external groups if
it helps you to conceptualize steps in a process that occur outside of the scope of the
process.
Annotations
You can annotate your process model by labeling steps, transitions, groups. Additionally,
you can place notes and explanatory text anywhere on your process model.
Note–text that is enclosed in a shaded box
Process Execution
Processes execute in the underlying webMethods platform. A process begins execution
when the conditions for the first step(s) in the process is met. For example, if the process
model indicates the process begins when a specific purchase order arrives from a partner,
the process begins when that purchase order arrives.
One of the run-time elements that are generated from the process model are called process
run-time scripts. The process run-time scripts determine when a step needs to start, when
one step is complete, and when to pass control to another step.
After a process has started, you can monitor and manage the process using the
webMethods Monitor. For example, you can view the steps a process has completed and
whether the steps were successful or not. You can suspend a running process, then
resume it; or you can terminate a running process if you no longer want it to execute.
Run-time Architecture
The following shows the run-time architecture for executing business processes that you
design using webMethods Modeler.
P IS P IS P IS P IS
R R R R WmMonitor Monitor
T T T T package
Broker Workflow
Component Description
IS The Integration Servers contain the run-time elements that were
generated from the automated controlled steps within the process
model. The run-time elements are services, triggers, and process
run-time scripts.
Component Description
PRT The process run time (PRT) is a facility within an Integration
Server that runs the process run-time scripts. It is the run-time
component that executes process logic, logs process data, and
controls process execution order.
It is the responsibility of the PRT to pass control of execution from
one step to the next. Based on how the process model was
designed, two consecutive steps might be executed on different
servers. PRT passes control to different steps by publishing
internal documents (called process transition documents) to the
Broker. The Broker sends the process transition documents to the
server that has the subscription.
As the process executes, the PRT logs data about processes to the
Process Audit Log. It logs information such as the results of
completed steps, documents used in the process, and process
status. The webMethods Monitor uses this information when a
user monitors the process.
The PRT also handles the suspend, resume, restart, and terminate
commands that a user issues from webMethods Monitor. To
process these commands, webMethods Monitor publishes process
control documents to the Broker. The Broker dispatches the
document to the PRTs on the Integration Servers to handle the
request.
Broker The Broker acts as the communication link between Integration
Servers in a territory. The Broker receives, queues, and delivers
internal documents that are sent and received from the various
PRTs and webMethods Workflow.
Process Audit The PRT logs audit data about running processes to the Process
Log Audit Log.
Workflow The PRT passes control to webMethods Workflow when the
process requires human interaction. To perform the human
interaction, responsible parties use webMethods Workflow to
exercise the human workflows that you referenced in the process
model.
Component Description
Monitor webMethods Monitor is an administrative tool that you use to
examine instances of business processes, services, integrations,
and documents that the integration platform is processing or has
finished processing. Besides viewing status information about
your processes, services, integrations, and documents, you can
also use Monitor to perform control tasks such as suspending or
resuming processes or editing and resubmitting documents,
services, or the step pipeline.
webMethods Monitor retrieves information about processes,
services, integrations, and documents by querying the audit logs
and the Trading Networks database.
The Monitor is hosted by an integration server. You access
webMethods Monitor through a web browser.
Top-Down
In the top-down approach, you draw a process model before creating any of the services,
workflows, or data upon which the process depends. Using this approach, when you
draw the process model, you specify the type of data that a step expects (e.g., an IS
document, an external document, a String, etc.). You also specify on which logical servers
the services associated with steps will execute. When you generate a process model
created in this way, Modeler generates empty flow services to the Integration Server(s)
and empty implementation modules and workflows to Workflow. Later, you use
Developer or Workflow to fill in the logic.
Bottom-Up
In the bottom-up approach, you create the services, workflows, or data before drawing the
process model. Using this approach, when you draw the process model, you associate
steps with the services, workflows, and data that you have previously created. When you
generate a process model created in this way, Modeler creates flow services to contain the
services that you have specified, and Workflow implementation modules to contain the
workflows that you have specified.
Note: Even if you create services and workflows before associating them with a given
model, you still will need to use Developer and Workflow to tweak these services so that
they are set up correctly. For details, see Chapter 7, “Adding Logic to Steps”.
Note: For details regarding the BPEL language, please refer to the “Business Process
Execution Language for Web Services Specification, version 1.1 dated May 5, 2003” The
specification is available from the following web locations:
http://dev2dev.bea.com/technologies/webservices/BPEL4WS.jsp
http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/
http://ifr.sap.com/bpel4ws/
http://www.siebel.com/bpel
The business process behavior defined by BPEL is based on Web Services. In this regard,
BPEL depends on the following specifications:
WSDL 1.1
XML Schema 1.0
XPath 1.0
WS-Addressing
Of these specifications, WSDL (Web Services Description Language) is the most important
in terms of its impact on BPEL. Every BPEL process model is based on the interaction
between services described in WSDL.
Business processes developed according to the BPEL4WS specification are imported to
Modeler using a translation process that substitutes a Modeler step (or steps) for BPEL
activities, as detailed in Chapter 10, “Importing and Exporting BPEL Process Models”
CHAPTER 2
Getting Started with webMethods Modeler
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Overview
This chapter describes how to start and exit the Modeler, and introduces you to the
Modeler’s user interface.
To
To start the Modeler on UNIX
1 While running Modeler, choose SessionClose Design Server connection from the menu
bar. The session with that Design Server closes.
2 From the menu bar, choose SessionConnect to Design Server. The Open Session to
Design Server window appears.
3 Select the new Design Server, enter your Username and Password, then click OK.
Select FileExit.
Main toolbar
Process toolbar
Process window
Canvas
View options
Menu bar
Main toolbar
Process window
Process toolbar
Canvas
View Options
Menu Bar
The Modeler menu options are:
File: Use to create, open, close, save, rename, delete, import, export, and print process
models. In addition, use it to exit the Modeler.
Edit: Use to undo and redo recent actions, as well as to delete steps in a process model.
View: Use to view the Properties window, the To-Do List, Global Data, Web Service
Interactions, Web Service Ports, Deployment Information, and process model
Dependencies.
Session: Use to close the connection to the current Design Server and open a
connection to a new one, view the Server Connections Manager, and Refresh Services
and Documents.
Tools: Use to Validate or Generate a business process, update a model for monitoring,
replace logical servers, launch Developer, and access the Options window.
Window: Use to toggle between open process models.
Main Toolbar
The main toolbar provides several icons to access common functions. The icons and their
descriptions are provided below.
This Represents...
icon...
Connect to Design Server. Opens the Open Session to Design Server dialog.
Verify the server name and user name, and enter the password to connect
to the Design Server.
Close Design Server Connection. Closes the current Design Server session.
Open. Opens the file system on which existing process models are stored so
that you can view or edit an existing process model.
This Represents...
icon...
Print. Prints the process model on the active Process window.
Undo. Undoes the most recent action. You can use multiple undos.
Redo. Redoes the most recent action. You can use multiple redos.
Update Model for Monitoring. Moves the process to the Process Audit Log so
that you can monitor the process with webMethods Monitor.
Global Data. Opens the Global Data dialog that lists the global data items for
the process.
Web Service Interactions. Opens the Web Service Interactions dialog that
shows the interactions and port types for the process.
Web Service Ports. Opens the Web Service Ports dialog to show the existing
WSDL imports or define new port types for the process.
Process Window
The Process window is where you design your process model. The Process window
appears when you create a new process model or open an existing process model.
Process Window
Process toolbar
Canvas
View options
View options
Properties (optional)
To Do List (optional)
Process Toolbar
The following table lists the icons of the process toolbar, along with a description of each.
New Workflow Step. Places a new Workflow step onto the canvas.
New Web Service Step. Places a new Web Service step onto the
canvas.
New Empty Step. Places a new Empty step onto the canvas.
New Terminate Step. Places a new Terminate step onto the canvas.
Group. Draws a group box around steps so that you can visually
describe whether the steps are internal or external to your
organization.
Note. Adds a box in which you can type text to make the process
model more self-describing.
Text. Enables you to type text (without a box) to make the process
model more self-describing.
Show/Hide Properties Window and To-Do List. Shows or hides the
Properties window and the To-Do List.
Canvas
The canvas is where you design the business process. You can use a grid to help to position
objects on the canvas symmetrically. You can specify the default grid setting (show or
hide) for all new processes. You can change (override) the default grid setting on any
active canvas.
On the View Options area at the bottom of the Process window, check or uncheck
Show Grid.
View Options
The View Options area at the bottom of the Process window contains the following
settings to control the look of the canvas and the objects on the canvas.
CHAPTER 3
Configuring webMethods Modeler
3 On the Logical Servers page, locate the server you want to modify and click Edit in the
Edit column.
Note: The process model data previously stored in the flat file is converted to an XML
file and exported to the directory of your choice.
2 Change the Modeler Repository configuration from flat file to database on the
Modeler home page at http://Integration Server_host:Integration
Server_port/WmModeler. For instructions on configuring the Modeler Repository to
write to a database, see the “Configure the Modeler Repository to Write to a
Database” section of the webMethods Integration Platform Installation Guide.
Important! If you use an Oracle database, you must use a SequelLink driver and a
SequelLink server to run on the same machine as the database. If you do not, Modeler
performance will be unacceptably slow.
Note: The process model data remains in the XML file, and is also migrated to the
database.
CHAPTER 4
Creating a Process Model
Define all logical servers (and their logical-to-physical server mappings) to be used
in the process. To do so, use webMethods Administrator. See Chapter 3,
“Configuring webMethods Modeler”.
Set up trading partner profiles within Trading Networks for any steps in the
process that need to act on specific information about trading partners.
Define any external document types to be used in the process, e.g., an XML or EDI
document.
Prerequisites for Process Models When Using a Bottom-Up Development Approach
Complete all prerequisites in the “Prerequisites for All Process Models” table
(above).
Create the logic, or services, that process steps should invoke. For guidelines, see
Chapter 7, “Adding Logic to Steps”.
Create all document types that the process model will publish, and all document
types to which the process model will subscribe on all physical Integration Servers
involved in the process model. For details on creating these document types, see
the Publish-Subscribe Developer’s Guide book.
1 Start webMethods Modeler. For instructions, see Chapter 2, “Getting Started with
webMethods Modeler”.
2 Open a new process model by selecting FileNew.
3 Set the process model properties. For descriptions of process model properties, see
“Process Model Properties” on page 51.
4 Build the model by adding steps and step transitions. (You might also want to add
groups or annotations.) For more information on defining these items, see:
To add steps, see Chapter 5, “Adding Steps to a Process Model”.
To create step transitions, see Chapter 8, “Creating Step Transitions”.
To add groups, see Chapter 9, “Adding Groups to a Process Model”.
5 Use the To-Do List to ensure that you have completed all tasks associated with the
model and its steps. For details on using the To-Do List, see “The To-Do List” on
page 60.
6 Save the process model by selecting FileSave. In the Save dialog, select the folder in
which you want to save the process model; or, click New to create a new folder. Type a
name for the model in the Save As dialog if you haven’t already, and then click Save.
Important! Some of the properties below define where the underlying process model
components (e.g., flow services, triggers, etc.) generate and execute. More details on this
topic are provided in “What Modeler Generates for a Process Model” on page 201.
Logging Level The precise level of information to persist Process and All Steps
to the Process Audit Log; this level
determines the extent to which you can
view and control the process in
webMethods Monitor.
Logging Levels are:
None
Errors Only
Process Only
Process and Start Steps
Note: You cannot edit items in the To-Do List in any way; the list is read-only.
Step Tasks
After adding steps to the process model, Modeler updates the To-Do List with tasks for
each step. In general, these are:
Assign Server
Select inputs
Select outputs
Connect step
In Modeler, the checklist for a new step looks like the following:
In addition to these general tasks, Modeler can add items to a step’s checklist in response
to the way that the model is designed. For example, Modeler can add the following items:
Set join type (if a join step has been established)
Set expression for complex join (if a complex join step has been established)
On the process toolbar, click the Show/Hide button. The To-Do List and Properties
windows appear; or
On the menu bar, select ViewTo Do List. The To-Do List appears.
CHAPTER 5
Adding Steps to a Process Model
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Overview
Steps are the basic unit of work in a business process. A step can represent an automated
process performed on an Integration Server (e.g., executing a service), a manual step
performed by a person (via webMethods Workflow), or a visual aid that identifies a task
that an external organization performs (steps in external groups). Steps can also depict an
action to take when an error or timeout occurs in the process.
While creating a process model, you do several things to steps.
Note: You do not need to assign properties to steps within external groups.
Important! Some of the properties below define where the underlying process model
components (e.g., flow services, triggers, etc.) generate and execute. More details on this
topic are provided in “What Modeler Generates for a Process Model” on page 201.
Generated Name for the step’s generated flow service. Equivalent to step name.
Flow Name Each step generates a flow service which in You can override this by
turn invokes another service (specifiable via typing a new name in
Service to Invoke) to perform the step’s logic. the box beside Generated
Flow Name.
Service to Flow or java service which the generated If you specify a pre-
Invoke flow service will invoke to perform the existing Service to Invoke,
step’s logic. Specifying a service to invoke at Modeler generates a
this time is optional; alternately, you can flow service with an
specify this after generating the model. INVOKE flow operation
to invoke the specified
Important! Chapter 7, “Adding Logic to service.
Steps”, provides important guidelines for If you do not specify the
creating the services that steps invoke. Service to Invoke
property, Modeler does
nothing and you must
create this service
manually.
Correlation Correlation service for the step. You assign To select a service, click
Service these services to connect IS documents with the arrow and browse to
the process instance; these services are the service.
sometimes required in addition to services
that perform step logic.
Retry Count The number of times to execute the step if To change the default,
the step fails. type another number in
the box next to Retry
Note: When you assign a Retry Count to a Count.
step, you must also create a Retries
Exceeded transition to another step, as
described in Chapter 8, “Creating Step
Transitions”.
Join Type Join type associated with the step. You need To choose a join type,
to assign join types to steps that have select one from the
multiple subscriptions or multiple input drop-down list.
transitions; this tells the step under what
conditions to continue processing.
Possible join types are: AND, OR, XOR,
COMPLEX and XPath. For details, see “Join
Steps” on page 88.
Step Timeout Timeout value for steps that are not based None. To define a
on a condition. Timeout Value, click
Edit, choose the Timeout
Relative: The Timeout Value is the time (in
Type, then enter either a
ms) during which step execution will occur
time in milliseconds or
before the timeout action will be taken. The
an XPath condition.
timer begins counting once the step
execution begins. This relative timeout can
be set for a number of milliseconds or based
on an XPath condition.
Absolute: You can also set an absolute
timeout for a step that will cause the step to
execute until a set date and time, or based
on an XPath condition.
Important! Modeler displays additional properties for referenced process steps only. For
details, see “Referenced Process Step Properties” on page 273.
Important! Some of the properties below define where the underlying process model
components (e.g., flow services, triggers, etc.) generate and execute. More details on this
topic are provided in “What Modeler Generates for a Process Model” on page 201.
Workflow to The workflow associated with the Select or type the name
Invoke Workflow step. of a pre-existing
workflow; or, type a
name for a workflow
which does not yet
exist and Modeler will
generate an empty one.
Retry Count The number of times to execute the step if To change the default,
the step fails. type another number
in the box next to Retry
Note: When you assign a Retry Count to a Count.
step, you must also create a Retries
Exceeded transition to another step, as
described in Chapter 8, “Creating Step
Transitions”.
Join Timeout Timeout value for steps that are AND joins None. To define a
(or COMPLEX joins containing AND Timeout Value, click
logic). You do not need to specify this Edit, choose the
property for any other type of join step. Timeout Type, then
enter either a time in
Relative: The Timeout Value is the time (in
milliseconds or an
ms) by which the join conditions must be
XPath condition.
met before the timeout transition from the
join step will be taken. The timer begins
counting once the first join condition is met
(e.g., the first input arrives). This relative
timeout can be set for a number of
milliseconds or based on an XPath
condition.
Absolute: You can also set an absolute
timeout for a join condition that will cause
the process to continue until a set date and
time, or based on an XPath condition.
Important! Some of the properties below define where the underlying process model
components (e.g., flow services, triggers, etc.) generate and execute. More details on this
topic are provided in “What Modeler Generates for a Process Model” on page 201.
Retry Count The number of times to execute the step if To change the
the step fails. default, type another
number in the box
Note: When you assign a Retry Count to a next to Retry Count.
step, you must also create a Retries
Exceeded transition to another step, as
described in Chapter 8, “Creating Step
Transitions”.
Join Type Join type associated with the step. You To choose a join type,
need to assign join types to steps that have select one from the
multiple subscriptions or multiple input drop-down list.
transitions; this tells the step under what
conditions to continue processing.
Possible join types are: AND, OR, XOR,
COMPLEX and XPath. For details, see
“Join Steps” on page 88.
Step Timeout Timeout value for steps that are not based None. To define a
on a condition. Timeout Value, click
Edit, choose the
Relative: The Timeout Value is the time (in
Timeout Type, then
ms) during which step execution will
enter either a time in
occur before the timeout action will be
milliseconds or an
taken. The timer begins counting once the
XPath condition.
step execution begins. This relative
timeout can be set for a number of
milliseconds or based on an XPath
condition.
Absolute: You can also set an absolute
timeout for a step that will cause the step
to execute until a set date and time, or
based on an XPath condition.
Join Timeout Timeout value for steps that are AND joins None. To define a
(or COMPLEX joins containing AND Timeout Value, click
logic). You do not need to specify this Edit, choose the
property for any other type of join step. Timeout Type, then
enter either a time in
Relative: The Timeout Value is the time (in
milliseconds or an
ms) by which the join conditions must be
XPath condition.
met before the timeout transition from the
join step will be taken. The timer begins
counting once the first join condition is
met (e.g., the first input arrives). This
relative timeout can be set for a number of
milliseconds or based on an XPath
condition.
Absolute: You can also set an absolute
timeout for a join condition that will cause
the process to continue until a set date and
time, or based on an XPath condition.
Start Steps
You establish a start step for a process by virtue of its transitions (it has outgoing but no
incoming transitions) and by virtue of its subscription document. A start step must
subscribe to at least one document. The arrival of this document is the trigger that tells the
PRT to begin running the process. For details on subscribing to a document, see
“Assigning and Editing Step Inputs” on page 109.
Note: Typically, you will want to establish only one start step per process model, but
Modeler places no limits on the number of allowable start steps.
Important! Use caution with steps that are OR joins because OR join steps that subscribe to
a document can start a new process instance (at the OR join step) at run time. See the
following process model for illustration.
In the above model, if the subscription document for Step 3 arrives before Step 2 executes,
the PRT kicks off a new instance of the process starting at Step 3. There is no way to
prevent this from occurring, so consider whether using an AND join would work just as
well or better. For details on join steps, see “Join Steps” on page 88.
End Steps
As the name implies, the end step is the step that you intend to be the last step in the
model to run. End steps should have input transitions but no output transitions. (End
steps can, however, publish documents.) However, in reality, many steps might be the
last step in the model to run. For example, if timeouts and errors occur, steps that follow
timeout and error transitions become the last step to run. Or, a process-wide error step
might be the last step to run. In the following process model, the Send Confirmation step
is the target end step, while the Send Error step might actually become the end step in the
event that the error transitions are taken.
Join Steps
Join steps are steps that act as a kind of hub by receiving multiple subscriptions or input
transitions and then specifying the conditions by which the step should execute.
Specifically, you need to assign a join type to any step that:
Has multiple subscriptions (including start steps)
When you create a join, you must specify a join type for the step that is receiving the join
(i.e., the join step). You assign a join type using Step Properties.
Join Types
The possible join types are:
AND. The AND join tells the PRT to execute the join step only when it receives all
subscriptions (or subscriptions and input transitions). You must assign a Timeout
Value to each AND join step using the step’s Timeout Value property. The Timeout
Value is the time (in ms) that the join step should wait for all inputs once the first
input arrives. If the time elapses before all inputs arrive, a step timeout error is issued
and the step’s timeout step is invoked (if it has been assigned). The timeout step is the
step following a timeout transition.
OR. The OR join tells the PRT to execute the join step when any of the step
subscriptions or input transitions are received. If multiple inputs are received
simultaneously, the step executes for each input received.
XOR. The XOR join tells the PRT to execute the step when only one of the subscriptions
or input transitions is received at any given time. If more than one is received
simultaneously, the step does not execute.
XPath. The XPath join provides the capability to define join conditions in the XPath
expression language.
Complex. The Complex join tells the PRT to execute the step when the conditions that
you have specified in the Complex Join Editor are met. You use the Complex Join
Editor to build complex join conditions that can include a combination of AND, OR,
and XOR joins.
For important guidelines on implementing joins, see “Splitting, Branching, and Joining
Logic in a Process” on page 163.
1 While working in a business process, select Insert from the process toolbar.
2 From the Insert window, choose a process and click Insert and Close.
3 Place the step onto the canvas and name it.
As shown in the sample model below, referenced process step icons (see the “PO process”
step) are distinct from the icons of other steps.
Subprocess Steps
You can collapse several steps into a single icon to make a complex model visually
cleaner. Unlike referenced process steps, subprocess steps simply provide a single visual
container for steps within the same process model, rather than pointing to an entirely
separate business process. The subprocess does not affect the way steps execute.You can
easily descend into a subprocess to view its steps.
2 Use CTRL to select a grouping of steps to be collapsed; or, drag the pointer around
steps to select them. (Let’s collapse Step 2 and Step 3.)
3 Right-click and select Collapse to subprocess. The single subprocess icon appears in
place of the collapsed steps.
You can easily descend into subprocess steps for viewing or editing.
1 Double-click the subprocess step; or, select it and click the Zoom into icon from the
process toolbar. The collapsed steps appear, along with arrows depicting which step
precedes and follows the subprocess, as shown below.
Note: If you create a subprocess out of steps not yet linked by transitions, the
subprocess will not contain the “from” and “to” arrows depicted above because
Modeler does not know which steps precede and follow the subprocess. You must
establish the steps that precede and follow the subprocess at some point before
generation. When you do, ensure that the subprocess contains the “from” and “to”
arrows depicted above, and that the arrows are connected to the correct steps.
2 To exit the subprocess and return to the main canvas, select the Zoom out icon from the
process toolbar.
From within a process model, select the subprocess icon, right-click, and select Extract
steps from subprocess.
Note: For those readers familiar with BPEL, a web service interaction is Modeler's version
of a BPEL Partner Link.
A web service interaction is defined by a name and two web service port types: My Port
Type and My Partner's Port Type. You will need a new web service interaction for every
different instance of web service communication between your process and an external
partner. Multiple calls to the same web service of a partner, including different operations
on the same port type, are the exception to this rule, and in that case one web service
interaction is required.
The name of your web service interaction must be unique within your process, and it
must be NCName compliant. To be NCName compliant, the name must start with a letter
or an underscore and may contain no spaces. For full details on NCName compliance see:
<http://www.w3.org/TR/xmlschema-2/#NCName>
The port types you define in your web service interaction will depend on the type of
interaction you are trying to model:
If you are invoking a web service of a partner, then you will need to choose the port
type for that web service as My Partner's Port Type when configuring the web service
interaction. You should import the port type definition from a WSDL file. See
“Defining Web Service Port Types” on page 95.
If your process is invoked using a web service call from an external entity, you will
need to create a new port type for the My Process' Port Type half of the web service
interaction. In creating a new port type for your process you will define the
operations and their inputs and outputs. See “Defining Web Service Port Types” on
page 95.
If you have a series of calls and responses between the web service of your partner
and your process, you may define both My Partner's Port Type and My Port Type in a
single web service interaction.
5 Type the name of the web service interaction in the Interaction Name field.
6 Define port type information for My Partner’s Port Type and/or My Process’s Port
Type.
7 Choose FileSave to enter a name for the process model and save it. The web service
interactions defined in this procedure are now available for use in this process.
1 Choose ViewWeb Service Interactions to display the Web Service Interactions dialog.
2 Click Import Port Type from WSDL. The Select WSDL Import file dialog appears.
3 Navigate to the desired folder, select the WSDL file and click Open to import port
types from the WSDL file.
1 Choose ViewWeb Service Interactions to display the Web Service Interactions dialog.
2 Click Define New Process Port Type. The Define New Port type for My Process dialog
appears.
3 Type a name for the port type in the Port Type Name field.
4 Click Add to define the new port type.
5 Type the Operation Name and define input and output document types to complete
the port type definition.
1 Right-click on the web service step and choose Web Service Configuration from the
menu. The Web Service Configuration dialog appears.
3 Continue defining the following web service configuration for the step:
Interaction
Port Type
Operation
Input Variable
Output Variable
The following sections outline the steps to configuring Web Service Invoke, Receive, and
Reply steps.
1 Select the Add new Web Service step button and place the step on the process model
canvas.
2 Right-click on the web service step and choose Web Service Configuration from the
menu.
3 In the Web Service Configuration dialog, click the Invoke button.
4 Select the Web Service Interaction for this step from the Interaction drop down list.
5 Select the web service operation to be invoked from the Operation drop down list.
6 Select the input data for the web service by selecting either an existing pipeline input
or New Global Data from the Input Variable drop down list.
If New Global Data was chosen, enter the global data Instance Name.
7 Select the output variable from the Output Variable drop down list. Choose either
New Global Data or New Pipeline Data and enter the Instance Name for either data
format.
At this point your web service invoke step will be completely configured within the
process model. Next you will have to choose and set up a method for web service binding.
1 Lock global data, using the pub.prt.globalData:lockGlobalData service, mapping the input
ProcessData fields ProcessInstanceID, ProcessIteration and ProcessStepID to their
counterparts in the service input.
2 Define an EndPointReference document that contains all of the necessary binding
information for the web service you wish to invoke.
3 Assign this Endpoint Reference to the “value” document of the
pub.prt.assign:literalToPartner service.
4 If the web service is running on a webMethods Integration Server, you must also
assign authentication data for the literalToPartner service. If using the default
Integration Server configuration, this can be set to:
type=basic
user=Administrator
password=manage
5 Statically assign the partnerTo value for the literalToPartner service to the name of the
web service interaction of the web service invoke step you wish to bind.
1 Lock global data, using the pub.prt.globalData:lockGlobalData service, mapping the input
ProcessData fields ProcessInstanceID, ProcessIteration and ProcessStepID to their
counterparts in the service input.
2 Map an EndPointReference document from your process to the “value” document in
the pub.prt.assign:literalToPartner service.
3 If the web service is running on a webMethods Integration Server, you must also
assign authentication data for the literalToPartner service. If using the default Integration
Server configuration, this can be set to:
type=basic
user=Administrator
password=manage
4 Statically assign the partnerTo value for the literalToPartner service to the name of the
web service interaction of the web service invoke step you wish to bind.
1 Lock global data, using the pub.prt.globalData:lockGlobalData service, mapping the input
ProcessData fields ProcessInstanceID, ProcessIteration and ProcessStepID to their
counterparts in the service input.
2 Statically assign the name of the relevant global data variable containing your
endpoint reference, and optionally from the top-level part name, and the exact value
in nested data, and the partnerTo value for the variableToPartner service.
1 Lock global data, using the pub.prt.globalData:lockGlobalData service, mapping the input
ProcessData fields ProcessInstanceID, ProcessIteration and ProcessStepID to their
counterparts in the service input.
2 Statically assign the partnerFrom, roleFrom and partnerTo values, all of which are set
in the process Modeler using the web service interactions definitions.
1 Lock global data, using the pub.prt.globalData:lockGlobalData service, mapping the input
ProcessData fields ProcessInstanceID, ProcessIteration and ProcessStepID to their
counterparts in the service input.
2 Statically assign authentication data using the pub.prt.assign:setPartnerAuthentication
service.
3 Statically assign the partnerTo value for the setPartnerAuthentication service.
The WSDL file will need to be deployed to the process package, at the
<IntegrationServer_Home>/packages/<package-name>/config/wsdl/<logical-
server-name> directory. If deployed at runtime, the WmPRT package will need to be
reloaded in order to deploy the WSDL.
Note: For each operation per port type, these mappings are made (a port type can have
multiple operations)
urn_xmethods-delayed-quotes.wsdl
--------------------------------
<?xml version='1.0' encoding='UTF-8'?>
<definitions name='net.xmethods.services.stockquote.StockQuote'
targetNamespace='http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/'
xmlns:tns='http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/'
xmlns:electric='http://www.themindelectric.com/'
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
xmlns='http://schemas.xmlsoap.org/wsdl/'>
<message name='getQuoteResponse1'>
<part name='Result' type='xsd:float'/>
</message>
<message name='getQuoteRequest1'>
<part name='symbol' type='xsd:string'/>
</message>
<portType name='net.xmethods.services.stockquote.StockQuotePortType'>
<operation name='getQuote' parameterOrder='symbol'>
<input message='tns:getQuoteRequest1'/>
<output message='tns:getQuoteResponse1'/>
</operation></portType>
<binding name='net.xmethods.services.stockquote.StockQuoteBinding'
type='tns:net.xmethods.services.stockquote.StockQuotePortType'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='getQuote'>
<soap:operation soapAction='urn:xmethods-delayed-quotes#getQuote'/>
<input>
<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</input>
<output>
<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</output>
</operation>
</binding>
<service name='net.xmethods.services.stockquote.StockQuoteService'>
<documentation>net.xmethods.services.stockquote.StockQuote web service</documentation>
<port name='net.xmethods.services.stockquote.StockQuotePort'
binding='tns:net.xmethods.services.stockquote.StockQuoteBinding'>
<soap:address location='http://66.28.98.121:9090/soap'/>
</port>
</service>
</definitions>
1 Select the Add new Web Service step button and place the step on the process model
canvas.
2 Right-click on the web service step and choose Web Service Configuration from the
menu.
3 In the Web Service Configuration dialog, click the Receive button.
4 Select the Web Service Interaction for this step from the Interaction drop down list.
5 Select the web service operation to be invoked from the Operation drop down list.
6 Select the input data for the web service by selecting either an existing pipeline input
or New Global Data from the Input Variable drop down list.
If New Global Data was chosen, enter the global data Instance Name.
7 Select the output variable from the Output Variable drop down list. Choose either
New Global Data or New Pipeline Data and enter the Instance Name for either data
format.
At this point your web service receive step will be completely configured within the
process model. Generate the model to create the process package.
1 Select the Add new Web Service step button and place the step on the process model
canvas.
2 Right-click on the web service step and choose Web Service Configuration from the
menu.
3 In the Web Service Configuration dialog, click the Reply button.
4 Select the Web Service Interaction for this step from the Interaction drop down list.
5 Select the web service operation to be invoked from the Operation drop down list.
6 Select the input data for the Web Service by selecting either an existing pipeline input
or New Global Data from the Input Variable drop down list.
If New Global Data was chosen, enter the global data Instance Name.
7 Select the output variable from the Output Variable drop down list. Choose either
New Global Data or New Pipeline Data and enter the Instance Name for either data
format.
At this point your web service receive step will be completely configured within the
process model. Generate the model to create the process package.
CHAPTER 6
Assigning Inputs and Outputs to Steps
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Overview
Step inputs and outputs represent the information that should flow from one step to the
next throughout the business process. Another way to think of it is that inputs are the
information that a step needs to complete its work, and outputs are the information that a
step produces as a result of its work. This chapter describes the concepts and steps
involved in working with inputs and outputs for most steps in the process model. For
additional important information on working with referenced process step inputs and
outputs, see Appendix B, “Guidelines for Working with Referenced Processes” of this
guide.
Input/output data. In contrast to publications and subscriptions, input and output data is
data that is in the process pipeline. Specifically, input data is data or documents that
Modeler makes available as input to steps because they exist in the process pipeline.
Output data is data or documents that you specify steps should produce, thereby
adding the data to the process pipeline.
Global data. Provides an alternative means to share data across Flow Steps and Web
Service Steps. Global data is accessible from within any Flow Step in a single process
via predefined services, and it can be selected as inputs and outputs to Web Service
Steps. You can also use global data to define data properties and data property
aliases.
Note: When you add inputs (subscriptions and input data) to a step, you are prompted to
provide an instance name. Modeler uses instance names to distinguish between two
identical types of inputs used at different places within a process. For example, if step one
and step four both take in the input type “POString”, the String in step four might be
different than in step one, depending on the processing that has occurred. Modeler uses
the instance name to correlate an input type with the instance that it is used in the process.
Each instance of a document in the process must have a unique instance name.
Subscription Documents
Start steps must subscribe to a document to trigger the business process to start running.
Any other step in the process model can also subscribe to a document. The steps for
adding and editing document subscriptions are described in the following sections.
Note: Ensure the external document exists on the step’s logical server prior to assigning the
subscription.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 Click Add Subscription. The Add Subscription window appears. The window displays
a list of webMethods IS packages and external documents residing on the step’s
logical server. The external documents appear in a separate folder called “Trading
Networks Documents”, as shown below.
3 Browse to the external document to which you want to subscribe and select it.
4 In the Instance Name field, type an instance name for the document. By default,
Modeler populates the Instance Name field with the name of the document type. For
information on instance names, see the note on page 109.
5 Click Add Document. The Set TN Roles window appears.
Note: When you subscribe to an external document, you are prompted to select roles
for the document’s sender and receiver. If the document’s sender/receiver role
corresponds to your role in the process, the sender/receiver value should correspond
to the value defined in the process model’s Focal Role property. You can use roles to
create publish/subscribe filters and transition conditions.
6 In the Sender Role field, type the name of the sender’s role.
7 On the Set TN Roles dialog, click OK. The Inputs and Outputs dialog reappears with
the newly added subscription in the Inputs box.
Note: The Retrieving documents flow service sequence consists of a BRANCH step
for each subscribed external document; the BRANCH step invokes wm.tn.doc:view,
which is a Trading Networks built-in service that retrieves documents from the
Trading Networks database.
Example of using subscription filters to distinguish the process model to receive a Trading Networks
document
Rather than use separate process models, you can put this type of logic in a single
process model that uses subscription filters or conditions on transitions to split the
processing logic.
Example using subscription filters
Note: For details on specifying transition conditions, see “Building Transition Conditions”
on page 163.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
Note: In the example above, the step has already been assigned two types of input
data. Adding input data to a step is described in “Adding Input Data” on page 122.
2 Click Add Subscription. The Add Subscription window appears. The window displays
a list of webMethods IS packages and external documents residing on the step’s
logical server.
3 Browse to the IS document to which you want to subscribe and select it.
4 In the Instance Name field, type an instance name for the document. For information on
instance names, see the note on page 109.
5 Click Add Document. The Inputs and Outputs dialog reappears displaying the newly
added subscription document. In the example below, the document “PO2” was
added.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
4 Browse to the IS folder in which you want Modeler to create the new document type.
5 In the Document Type Name field, type a descriptive name for the new document type.
6 In the Instance Name field, type an instance name for the document type and click OK.
By default, Modeler populates the Instance Name field with the name of the document
type. For information on instance names, see the note on page 109.
7 Modeler launches Developer (if it was not already open) to the location of the new
document. If Developer was open, Modeler uses the open instance of Developer to
locate the new document.You can edit the empty document now, or at any time before
deploying the process model.
8 Return to Modeler’s Inputs and Outputs dialog and click OK.
Process model that uses the same IS document more than one time
In the above sample, both Step 1 and Step 3 wait for Doc A. When Doc A arrives, Step 1
executes and continues on to Step 2, which because of the AND join, does not begin
until it also receives the document for which Step 2 is waiting. However, when Doc A
arrives, it is also sent to Step 3. Because there is an OR join between Step 2 and waiting
for the document for Step 3, Step 3 proceeds immediately after it receives Doc A. In this
situation, the document will be processed two times and the flow of execution might
not be what the designer intended.
Rather than subscribe to the same IS document in Step 3 as in Step 1, Step 3 could assign
the document as an input, rather than as a subscription. If you must subscribe to the
same IS document more than once in the same process model, but do not want
multiple steps to process each document, use publish/subscribe filters to limit the
steps that actually process the document.
In the above sample, you could set filters on Step 1 and Step 3 so they only receive Doc A
if a field in Doc A contains specified values. For example, you might set filters for Step 1
and Step 3 to indicate that Step 1 only receives the document when the field FirstTime
within the document is true and Step 3 receives the document when the field FirstTime
within the document is false.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Inputs box, select the subscription document whose name you want to change
and click Edit Input. The Edit Input window appears.
3 In the Input Name field, type a new name for the document. (If the document is an
external document, you can also type new names for the Sender Role and Receiver Role.)
Click OK.
4 On the Inputs and Outputs dialog, click OK.
Important! You cannot use Modeler as a gateway to edit external documents; if you need to
edit external documents, you must do so independently.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 From the Inputs box, choose the subscription document that you want to edit and
click Edit Document Type. If Developer was not open, Modeler launches Developer in a
separate window at the location of the selected document. If Developer was open,
Modeler uses the open instance of Developer to locate the selected document.
3 From the Developer menu, choose FileLock. This locks the document so that others
cannot modify the document while you are editing it.
4 Edit the document as needed.
5 Save your changes.
6 From the Developer menu, choose FileUnlock.
7 Return to Modeler’s Inputs and Outputs dialog and click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, click Edit. The Inputs and Outputs dialog appears.
2 From the Inputs box, choose the subscription document that you want to delete and
click Delete. The document is deleted from the step.
Note: When you delete a subscription document, Modeler deletes the document from the
step and from the pipeline, but not from the server on which it resided.
Input Data
You add input data to a step rather than subscribe to a document when the data the step
needs is in the step pipeline. With the exception of external documents, this amounts to all
data (inputs, outputs, subscriptions, and publications) used upstream in the process. The
steps for adding and editing input data are described below.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
Note: In the example above, the step has already been assigned an input in the form of
a publishable IS document subscription named “PO”.
2 Click Add Input. The Add Input window appears displaying the possible inputs for the
step. Possible inputs correspond to all data (excluding external document
subscriptions) used upstream in the process.
3 Select the desired input and click Add. The input data is added to the Inputs box.
4 Repeat steps 2 and 3 until you have added all desired inputs.
5 On the Inputs and Outputs dialog, click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Inputs box, select the input you want to delete and click Delete. The input is
deleted from the step.
Note: When you choose to delete existing input data, Modeler deletes the input data
from the step and from the pipeline, but not from the server on which it resided.
Publishing an IS Document
When adding a publication to an IS document, you can choose a pre-existing document to
publish, or you can tell Modeler to create the document that you want to publish. If you
choose to create a new document, Modeler creates an empty document which you must
edit for completeness in Developer. You must ensure the document is complete before
deploying the process model.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 Click Add Publication. The Add Publication window appears. The window displays a
list of webMethods IS packages and external documents residing on the step’s logical
server.
3 Browse to the IS document that you want to publish and select it.
4 In the Instance Name field, type an instance name for the document and click Add
Document. (For information on instance names, see the note on page 109.) The Inputs
and Outputs dialog reappears displaying the document to be published in the
Outputs box. In the following example, the document is called “ProcessData”.
5 Repeat steps 2 through 4 for all documents that you want to publish.
6 On the Inputs and Outputs dialog, click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 Click Add Publication. The Add Publication window appears. The window displays a
list of webMethods IS packages and external documents residing on the step’s logical
server.
3 Click New Document Type. The New Document Type window appears.
4 Browse to the package and folder in which you want the new publication document
to reside.
5 In the Document Type Name field, type a descriptive name for the document type.
6 In the Instance Name field, type a document instance name and click OK. For
information on instance names, see the note on page 109.
7 Modeler launches Developer (if it was not already open) to the location of the new
document. If Developer was open, Modeler uses the open instance of Developer to
locate the new document. You can edit the empty document now, or at any time
before moving the process model into production.
8 Return to Modeler’s Inputs and Outputs dialog and click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Outputs box, select the publication document whose name you want to change
and click Edit Output. The Edit Output window appears.
3 In the Output Name field, type a new name for the publication document and click OK.
4 On the Inputs and Outputs dialog, click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 From the Outputs box, choose the publication document that you want to edit and
click Edit Document Type. If Developer was not open, Modeler launches Developer in a
separate window at the location of the selected document. If Developer was open,
Modeler uses the open instance of Developer to locate the selected document.
3 Edit the document as needed.
4 Return to Modeler’s Inputs and Outputs dialog and click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Outputs box, select the publication document that you want to delete and then
click Delete. The document is deleted from the step.
Note: When you delete a publication document, Modeler deletes the document from the
step and from the pipeline, but not from the server on which it resided.
Output Data
You add output data rather than publications to a step when you do not need to publish
the output data or document to the Broker. The steps for adding and editing output data
are described in the following sections.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 Click Add Output. The Add Output window appears. The window displays a list of
webMethods IS packages and external documents residing on the step’s logical server.
3 Browse to the data or document that you want the step to output and select it.
4 In the Instance Name field, type an instance name and then click Add Document. The
Inputs and Outputs dialog reappears with the newly added data. In the following
example, the newly added output is named “Credit Results”.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
4 Browse to the package and folder in which you want Modeler to generate the data or
document.
5 In the Document Type Name field, type a descriptive name for the document.
6 In the Instance Name field, type an instance name and then click OK.
7 Modeler launches Developer (if it was not already open) to the location of the new
document. If Developer was open, Modeler uses the open instance of Developer to
locate the new document. you can edit the empty document now, or at any time
before deploying the process model.
8 Return to Modeler’s Inputs and Outputs dialog and click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears
2 In the Outputs box, select the document whose instance name you want to change
and click Edit Output. The Edit Output window appears.
3 In the Output Name field, type a new instance name and click OK.
4 On the Inputs and Outputs dialog, click OK.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Outputs box, select the document you want to delete and click Delete. The
output is deleted from the step.
Note: When you delete an existing output document, Modeler deletes the document
from the step and from the pipeline, but not from the server on which it resided.
Fields
You can add small pieces of output data (i.e., fields) to a step, such as Strings, String tables,
Booleans, integers, dates, objects, and so on. The steps for adding and editing output
fields are described in the following sections.
Adding Fields
Use the following procedure to add output fields to a step.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
3 In the Field Name box, type an instance name for the field. For information on instance
names, see the note on page 109.
4 In the Field Type list, select the type of data that the step should output.
5 If you want the output data to be a List, check the List box.
Note: The only field type for which the List option is disabled is the String table type.
By definition, the String table type arranges data in lists, therefore, it is not necessary
to specify List for this data type.
Editing Fields
If you want to change the instance names for existing output data fields, use the
procedure below.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Outputs box, select the output field whose instance name you want to change
and click Edit Output. The Edit Output window appears.
3 In the Output Name field, type a new instance name and click OK.
4 On the Inputs and Outputs dialog, click OK.
Deleting Fields
Use the following procedure to delete fields from a step.
1 Right-click on the step and choose Edit Inputs/Outputs; or, from the step’s Inputs/Outputs
property, select Edit. The Inputs and Outputs dialog appears.
2 In the Outputs box, select the output field that you want to delete and click Delete. The
output field is deleted from the step.
Note: When you delete existing output fields, Modeler deletes the fields from the step
and from the pipeline, but not from the server on which the fields resided.
Note: Subscription documents and publication document names appear with a dotted
border while all other inputs and output names appear with a solid border.
You can view only the instance names of inputs and outputs. To do so, to go Tools Options
and disable Show Data Types. Then, enable Show Inputs/Outputs at the bottom of the
Process window.
Note: You must exit and re-open the process model for the change to take effect.
You can turn off the display of inputs and outputs completely. To do so, to go Tools Options
and disable Show Data Types. Then, disable Show Inputs/Outputs at the bottom of the
Process window.
Note: If you do not choose to log document fields to the Process Audit Log, when viewing
the process through Monitor, you will not be able to view any detailed information about
the document. Modeler makes document field logging available in conjunction with
specific process Logging Levels. For details, see “Logging Level Effect on Document Field
Logging” on page 261.
1 Right-click the step and select Choose logged fields; or, from the step’s Logged Fields
property, select Edit. The Choose Logged Fields window appears displaying all inputs
and outputs.
2 Browse the inputs and outputs for the fields that you want to log, and check the Log
box next to the fields that you want to log.
3 Click OK.
For publication and subscription documents that are external documents, you can also set
filters based on the roles that you assigned to the document.
To use the publish/subscribe filter, follow the steps below.
1 Right-click the step and select Publish/Subscribe Filter; or, from the step’s
Publish/Subscribe Filter property, select Edit.
2 Choose either Inputs or Outputs according to the type of filter that you want to set up. A
menu of existing publications and subscriptions appears.
3 Choose the specific publication or subscription document on which you want to set
conditions. The Edit Conditions window appears.
5 Set up conditions by filling out the Field Name, Operator, Comparison Value/Field, AND/OR,
and Description fields. Use “Building Publish/Subscribe Conditions” on page 142 as a
guideline.
If you want your work with Global Data to be exportable to BPEL Assign activities, you
need to put all of the Assign services within the Generated Flow of a Flow Step.
To define global data for use in a process, follow the steps below.
1 Click the global data icon; or, from the process’s Global Data property, select Edit. The
global data dialog appears.
2 Click Add Document or Add Field to add a global data document or field.
1 From the process’s Data Properties property, select Edit. The Data Properties and Data
Property Aliases dialog appears.
3 Type the name of the data property, choose the data type from the menu, and click
OK. The data property is added to the list.
4 To define a data property alias, click Add under Data Property Aliases and fill-in the
required information for the alias.
CHAPTER 7
Adding Logic to Steps
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Overview
Logic tells a step how to complete its action—for example, how to process a document,
check credit, or approve a purchase order. You assign logic to steps in the form of services
(for flow steps) and workflows (for Workflow steps). You can create and assign step logic
at design time, or you can create it after generating the model and before deploying it.
In addition to the basic logic that steps require to complete their actions, a step may also
require a correlation service. Correlation services are flow or java services that steps (both
regular and Workflow steps) require to link inbound IS documents with the running
process instance. Details about correlation services are described in “Working with
Correlation Services” on page 152.
The following summarizes the types of logic that you add to steps:
Flow or Java Services that Perform Step Logic. The basic unit of logic that performs the
action of a flow step (i.e., non-Workflow step). Use webMethods Developer to create
the user-defined service, either at design time, or after process model generation. For
details, see “Working with Flow Step Logic” on page 148.
Workflows. The basic unit of logic that performs the action of a Workflow step.
Workflows represent the human interaction that is required for the business process,
for example, having a person approve a purchase order. Use webMethods Workflow
to design workflows. You can create Workflows at design time, or after process model
generation. For guidelines, see “Working with Workflow Step Logic” on page 151.
Flow or Java Services that Act as Correlation Services. The additional type of logic that
regular or Workflow steps might require to link an inbound IS document with the
running process instance. You create and assign correlation services to steps at design
time. For details, see “Working with Correlation Services” on page 152.
Note: For details on using webMethods Developer to create flow services, see webMethods
Developer User’s Guide.
Generated Flow Service property; by default, Modeler gives the generated flow service the
name of the step.
Note: See “What Modeler Generates for a Process Model” on page 201 for details on where
Modeler generates flow services.
Note: By default, if the generated flow service and the user-defined service share
identical inputs and outputs, Modeler automatically maps pipeline-to-service inputs
and outputs. If the step did not specify a service to invoke, or if the service to invoke
contained different inputs and outputs than the step, more mapping work is required.
If you need to specify that a step invoke a completely different user-defined service
than the one currently established, keep the following in mind:
After specifying that a step invoke a different service, you need to regenerate the
process model for the new service to run at run time. You might need to edit the
generated flow service after regenerating to again ensure inputs and outputs are
mapped correctly and to make sure step logic is still packaged within a single flow
service.
Note: Depending on how alike the new service is to the old service, Modeler might 1)
replace the old service with the new service and automap inputs and outputs (if they
were identical) or 2) add the new service to the end of the generated flow service
while keeping all of the previous logic intact. In this case, a more significant amount
of generated flow service editing is required. Make sure you view the generated flow
service after generation and edit as necessary.
Important! At run time, the PRT saves information in the pipeline for its own use. The PRT
saves information in the generated flow service’s ProcessData variable. The information
in the ProcessData variable is for internal use only. Services that you code and that are
executed during the running of a process must not alter any information within this
variable.
4 Browse through the packages on the IS Server and select the service to invoke.
5 Click Select.
Note: A Workflow server connection dialog might appear if you are not connected to
the Workflow server. Enter your user name and password.
Important! There is one scenario where the PRT correlates an IS document to the process
without a correlation service. That is when all of the following conditions are met: 1) the
step that subscribes to the IS document is the start step, 2) the step subscribes to only one
IS document, and 3) the step is the only step in the model subscribing any document at all
(whether an IS or an external document). If all of these criteria are met, you do not need to
assign the step a correlation service to correlate the document to the process.
You create a correlation service in order to output a correlation ID to the PRT. A correlation
ID is an identifier that is common to all IS documents that are to be processed in a single
process instance. Correlation IDs perform the same function for IS documents as
conversation IDs do for external documents. Details on creating correlation services are
provided in “Creating a Correlation Service” on page 155.
4 If needed, create the mapping manually. See “You Must Manually Create the
Mapping” on page 154.
5 Create the correlation service. See “Creating a Correlation Service” on page 155.
6 Assign a correlation service to each step necessary. See “Assigning a Correlation
Service to a Step” on page 157.
7 Ensure you set the process model Local Correlation property appropriately. See
“Broadcasting Correlation IDs” on page 158 for details.
In addition, ensure that:
Each model uses unique correlation services; do not share a correlation service for use
in another process model
The correlation ID for each process is unique among all other correlation IDs
by using the process model ID that is passed as input into the correlation service and
the order ID.
Mapping Method 1: Use the establishCorrelation Service within Upstream Step Logic
One way that you can manually establish the mapping is to create the mapping using the
pub.prt.CorrelationService:establishCorrelation service in the WmPRT package. You can call the
pub.prt.CorrelationService:establishCorrelation service within the logic of any step upstream from
the step subscribing to an IS document. For example, if the first step to subscribe to an IS
document is Step 3, you must create the mapping within the logic of Step 1 or Step 2. For
detailed information on using establishCorrelation and other public correlation
Mapping Method 2: Use the Conversation ID of the Start Step’s External Document
In addition to keeping mappings for correlation IDs to process instance IDs, the PRT also
separately maintains mappings between conversation IDs to process instance IDs.
Conversation IDs are the unique identifiers of external documents. The PRT uses
conversation IDs to link external documents to a running instance of a process.
When the PRT receives the first external document in a process, it automatically creates
the mapping to link the document’s conversation ID to the running process instance.
You can establish the mapping for a non-start step’s IS document by creating a correlation
service that treats the IS document’s correlation ID like the conversation ID of the start
step’s external document. To do so, in the Outputs of the correlation service, set the
CorrelateAsTN variable to True. For details, see the “Input/Output Specification for the
Correlation Service” on page 155.
Important! Do not use the same correlation service for more than one business process. In
addition, ensure that each correlation service creates a correlation ID that is unique among
all other correlation IDs.
For more information about the pub.prt:CorrelationService service (which is in the WmPRT
package), see the webMethods Built-In Services Reference.
CHAPTER 8
Creating Step Transitions
Overview of Transitions
You draw transitions (or lines) between steps to indicate the execution order of process
steps. Different transition types, the logic created by transition design (i.e., splits,
branches, and joins), as well as transition conditions, help you to create complex process
logic.
Modeler’s transition types are described below.
Normal. Normal transitions are the most common transition type in a given process
model; they are the only transition type on which you can place conditions. You place
conditions on transitions to affect whether control in the model should proceed in one
direction or another. For example, during the process you might need to approve an
item. After the step that determines whether the approval is granted, you use
transition conditions so the model transitions to one step if approval is granted and
another if approval was not granted. See “Building Transition Conditions” on page 163
for details. You can create an unlimited number of Normal transitions per step.
Retries Exceeded. Retries Exceeded transitions specify the number of times to execute a
step. At run time, if the process attempts to execute the step more than the number of
times that you specify, the process takes the Retries Exceeded transition. You can have
only one Retries Exceeded transition per step.
Timeout. Timeout transitions specify how long to wait for a given step to execute; they
are useful when you create joins that cause the process to wait for multiple events to
occur before continuing (e.g., AND joins). At run time, if the step’s timeout value is
exceeded, the process executes the step following the timeout transition. You can have
only one Timeout transition per step.
Error. Error transitions specify what step to execute if an error occurs for a step. At run
time, the errors transition is taken if the service executed by the step throws an
exception. You can specify only one Error transition per step.
Else. Else transitions specify what step to execute if no other transitions are followed.
At run time, if no other transitions from a step are followed, the process follows the
Else transition. You can specify only one Else transition per step.
1 Place all steps associated with a given transition onto the canvas.
2 Draw transitions to steps as needed. Depending on how you draw transitions, you
might create splits, branches, or joins, described in “Splitting, Branching, and Joining
Logic in a Process” on page 163.
3 Specify the transition type:
a If it is a Normal, Error, Timeout, or Retries Exceeded transition, right-click on the
transition and choose Change Transition Type. Then choose Normal, Error, Timeout, or
Retries Exceeded. (The default transition type is Normal.)
b If it is an Else transition, right-click on the transition and choose Set as “else”
transition. The Edit Transition Conditions window appears. Check Set as “else”
transition and then click OK.
4 Set transition properties by right-clicking on the transition and choosing Properties.
For details, see “Transition Properties” on page 162.
5 Optional. To place conditions on a Normal transition, right-click on the transition and
choose Edit transition condition (or, choose Edit on the transition’s Properties panel). The
Edit Transition Conditions To Target Step window appears so that you can build the
condition. For steps on building transition conditions, see “Building Transition
Conditions” on page 163.
6 Ensure that all steps other than the process-wide error handling step are linked by
transitions. For details, see “Ensure a Clear Flow of Control” on page 168.
Transition Properties
After creating a transition, specify its properties. These are described below.
Line Style The type of line style (e.g., curved or The default line style
straight) for the transition. corresponds to the default
process Line Style,
specified at the bottom of
the process window.
Important! Do not assign conditions to transitions to and from external groups, as the PRT
ignores these transitions and groups.
1 Right-click the transition and select Edit transition condition; or, from the transition’s
Condition property, select Edit. The Edit Transition Conditions window appears.
1 Right-click the transition and select Edit transition condition; or, from the transition’s
Condition property, select Edit. The Edit Transition Conditions window appears.
2 To specify a transition condition using an XPath expression, click Use XPath Expression.
General Guidelines
Ensure Data for Transitions is in the Process at Run Time
When you draw your process model, be sure that the information needed for a
condition on a transition will always be available at run time. For example, consider
the following process model. In this process model, the transitions from Step 3 to Step 4
and Step 3 to Step 5 require information in the document that arrives in Step 2.
Process where data not available for condition if error transition is taken
Incorrect process model that does not have a clear flow of control
In the above process model, there is not a clear flow of control. All steps in internal groups
or outside of any group are not linked. The chain of steps breaks at the external group. The
order between the send order, wait for acknowledgement, and wait for response steps is not clearly
defined. To make the order clear, draw transitions between these steps as shown in the
below.
Place join logic shortly after the split if you will rejoin the threads
Be careful using conditions with joins
See the following examples for details.
Use caution when using OR joins after splits
OR joins allow multiple threads of execution to run simultaneously after the join.
When the PRT encounters an OR join, it continues a thread for each transition coming
into the OR join. In the following sample process model, the numbers on the
transitions represent the number of threads processing.
Six threads
arriving
Three threads
arriving at different
times. Each thread
continues.
If you want a single thread of execution to run after a join, do one of the following:
Place conditions on the splits before the OR join, so that at run time exactly one
transition out of the split executes. As a result, only one active transition will enter
the OR join.
Use an XOR join rather than an OR join. The XOR join continues processing the
first transition that enters the XOR join.
Use an AND join to wait for all transitions to arrive before continuing. When all
transitions have arrived, processing continues with a single thread.
Ensure conditions used with AND joins do not halt the process
When you have an AND join in your process and you place conditions on the splits
before the AND join or conditions on the transitions leading to the AND join, be sure
that all conditions can be met at run time. If all conditions are not met, processing will
halt.
For example, in the above sample if at run time, the condition “X > 10” is not true
and/or the condition “Y > 10” is not true, the process halts. Step 3 cannot execute until
both the transition from Step 1 to Step 3 and the transition from Step 2 to Step 3 are
satisfied.
Use caution when using XOR joins and loops
The PRT will process an XOR join only a single time during a process. If there is a loop
in your logic that causes the XOR join to be evaluated a second time after it has
already been satisfied, processing will halt.
Sample model with an XOR join in a loop that causes processing to halt
In the above process model, the transitions from Step 2 and Step 3 are joined with an
XOR join. The first transition coming from either Step 2 or Step 3 will satisfy the XOR
join. When the XOR join is satisfied, the PRT executes Step 4, then Step 5. Step 5 loops
back to Step 1 and continues. However, the second time through the loop, Step 4 will
not execute. This is because the XOR join has already been satisfied the first time
through the loop and the PRT will not evaluate it again. Processing halts.
If you need to add this type of logic to your process model, use OR joins with
conditions as shown in the following sample.
For example, in the above process model, it is not predictable whether pipeline
variable String1 will have the value from Step A or the value from Step B after the
pipeline is merged. Also note that although the String variables within the Document1
variable have different names for Step A and Step B (that is CustomerInfo and PartnerInfo),
when the pipeline is merged, only one Document1 variable remains and the variables
within are not merged.
To avoid problems with pipeline merging, keep the top-level pipeline variable names
distinct as shown in the sample below.
To hide/display transition types, choose ToolsOptions and check or uncheck the Show
Transition Types property.
Default Transitions
You can specify a default color for Normal transitions by choosing ToolsOptions and
selecting a color from the Line Color property.
Other Transitions
You can specify that the other transition types (Timeout, Error, and Retries Exceeded)
each display as distinct colors. To do so, choose ToolsOptions and enable Color Transition
Types.
Note: You cannot change the colors that Modeler assigns to these transition types.
CHAPTER 9
Adding Groups to a Process Model
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Overview
You can place steps into groups to represent different organizational boundaries or
different phases within the business process. Groups are represented by shaded
rectangles in the process model. Placing steps within groups can be a helpful visual aid
for complicated process models, but is never required. Use groups if they help you to
conceptualize phases of a model more easily.
There are two types of groups:
Internal groups Internal groups band together steps within the scope of the business
process. The group does not affect the way that the process runs. Steps in internal
groups (like steps outside of any group) must be complete (i.e., with logic, inputs and
outputs, etc.), as the PRT uses the steps to generate run-time elements. You might
create internal groups, for example, for steps performed by specific departments, such
as Accounting or Purchasing.
External groups External groups band together steps outside the scope of the business
process; they enable you to include these steps within the process to help you to
visualize the process from beginning to end. For example, it might be helpful to see a
step that waits for a document or sends an acknowledgement, even if the step is not
within the model’s scope. When you generate the model, no run-time elements are
created for steps in external groups. That is, the PRT ignores these steps. Use external
groups if it helps you to conceptualize a process from beginning to end.
The following process model includes both internal and external groups. The steps in the
internal group execute just as if they were outside of any group. The steps in the external
group are purely visual aids and are ignored by the PRT.
Adding a Group
To add an internal or external group to a process model, use the following procedure.
3 Select Internal group or External organization, depending on the type of group you are
creating. By default, an internal group appears as a shaded gray rectangle with solid
borders. By default, an external group appears as a shaded blue rectangle with dotted
borders.
Y-coordinate
Border width
Border height
CHAPTER 10
Importing and Exporting BPEL Process Models
1 From the File menu, select Import.The Select import file dialog appears.
2 Select the desired .bpel file and click Open. The Select WSDL import file dialog
appears.
3 Select all of the .wsdl files associated with this process (using group select) and click
Open. The imported process appears, along with any warnings or errors encountered
during the import. Warnings are displayed identifying any unsupported BPEL
constructs skipped during import. If these warnings occur, your Modeler process may
not be functionally equivalent to the original BPEL process.
Note: Version 6.1 of Modeler does not support import of XSD schema files. In order to
import message types that have their parts defined in xsd documents, you must import
the xsd documents directly into the Integration Server using Developer.
BPEL Mappings
The process model created during the BPEL import process contains elements that are
mapped from the .bpel file and associated .wsdl files into the resulting process model.
Following is a list of these elements and a description of how each mapping approximates
the original BPEL element.
Partner Links
The information defined for Partner Links in the BPEL process is mapped to the Web
Service Interaction information in Modeler. This information includes the following:
Interaction Name - taken from the name of the partner link.
My Partner’s Port Type - the port type that is defined according to the
“partnerRole” attribute.
My Process’s Port Type - the port type that is defined according to the “myRole”
attribute.
This information is initially taken from the WSDL file that defines the interaction in the
BPEL process.
Any complex document type definitions used by messages in the process are imported to
<WSDL name>.DocumentTypes:<documents contained in message type>.
A document containing all variables as its elements is created on the Integration Server at
<process name>.Design_Server.GlobalData:<process name>+GlobalData.
Use of this document type is optional and not required at process runtime.
For example, consider the following definition of variables:
<variables>
<!-- input of this process -->
<variable name="input"
messageType="initiateLoanFlowSoapRequest"/>
<!-- output of this process -->
<variable name="selectedLoanOffer"
messageType="onLoanFlowResultSoapRequest"/>
</variables>
onLoanFlowResultSoapRequest
onLoanFlowResultSoapRequest
LoanFlow.MessageTypes:onLoanFlowResultSoapRequest
Receive
The BPEL <receive> activity is imported as a web service receive step in the Modeler. For
example, the <receive> activity
<receive name="receiveInput" partnerLink="client"
portType="tns:LoanFlow"
operation="initiate" variable="input"
createInstance="yes"/>
will be imported as a web service receive step with the following properties:
portType = LoanFlow
operation = initiate
Output variable = input
Reply
The BPEL <reply> activity is imported as a web service reply step in the Modeler. For
example, the <reply> activity
<reply name = "UANG_SyncAccount_faultReply"
partnerLink = "partner"
portType = "wsdl1:Default"
operation = "Execute"
variable = "UANG_SyncAccount_fault"/>
will be imported as a web service receive step with the following properties:
portType = Default
operation = "Execute"
Input variable = "UANG_SyncAccount_fault"
Invoke
The BPEL <invoke> activity is imported as web service invoke step in the Modeler. For
example, the <invoke> activity
<invoke name="invokeCR" partnerLink="creditRatingService"
portType="crs:CreditRatingService" operation="process"
inputVariable="crInput" outputVariable="crOutput"/>
will be imported as a web service invoke step with the following properties:
portType = CreditRatingService
operation = process
inputVariable = "crInput"
outputVariable = "crOutput"
Terminate Activity
The BPEL <terminate> activity is imported as a terminate step.
Empty Activity
The BPEL <empty> activity is imported as an empty step.
Wait Activity
The BPEL <wait> activity is imported as a Modeler flow step. You will need to manually
set up the flow service to control the wait.
While Activity
The BPEL <while> activity is imported as a loop containing activities embedded in the
while activity. The loop is generated on the preceding activity. Consider the following
example of a while activity:
<assign>
<while condition="bpws:getVariableData(orderDetails) > 100">
<invoke>
</while>
This will be imported as an assign step which has a transition to an invoke step having
condition expression = "bpws:getVariableData(orderDetails) > 100". The invoke
step loops back to the assign step.
Assign Activity
Modeler performs BPEL <assign> within the logic of a webMethods flow service. The
flow service is created on import, and a Modeler flow step is used in the process to invoke
this flow. Consider the following example of an assign activity:
<assign>
<copy>
<from variable="PO" part="customerInfo"/>
<to variable="shippingRequest"part="customerInfo"/>
</copy>
</assign>
This assign activity will be generated into a flow service which will be invoking
pub.prt.assign:variableToVariable with input variables set to the following values:
variableNameFrom = "PO"
partFrom = "customerInfo"
queryFrom = ""
variableNameTo = "shippingRequest"
partTo = "customerInfo"
Please refer to the webMethods Built-In Services Reference for detailed information about
each assign activity type and its usage.
Sequence
The activities contained in BPEL <sequence> activity on import are connected to each
other in the same order as they are defined in the sequence activity. This ensures their
order of execution.
Scope
Activities and their ordering in the BPEL <scope> activity is maintained, but scope-
specific constructs such as compensation and fault handling are currently ignored.
Switch
The BPEL <switch> activity will be imported as transitions from the preceding activity
for activities embedded the case and otherwise members. Consider the flowing pseudo
code example of switch activity:
<activity A>
<switch>
<case 'P'>
<activity B>
</case>
<case 'Q'>
<activity C>
</case>
<case 'R'>
<activity D>
</case>
<otherwise>
<activity E>
</otherwise>
</switch>
The BPEL above will be imported as a single step A, with transitions to the three activities
A, B, and C.
Pick
The BPEL <pick> activity is not currently fully supported, but Modeler approximates its
behavior. The <pick> activity is imported as receive step for each <onMessage> element
that transitions to the activities defined in the <onMessage> element, all followed by an
XOR join to the activity following the <pick>. Consider the following example of a pick
activity:
<pick>
<onMessage ...>
<activity A>
</onMessage>
<onMessage ...>
<activity B>
</onMessage>
<onMessage ...>
<activity C>
</onMessage>
</pick>
This will import as three web service receive steps, one for each message type, followed
by the corresponding activity A, B, or C. The steps for A, B and C will transition to a new
Empty Step in the Modeler with an 'XOR' join on it. This is not exactly functionally
equivalent to the BPEL <pick> because it allows that any of A, B, and C may execute.
Flow Steps invoking services that use the predefined PRT Assign services to create
BPEL Assign steps (See the webMethods Built-In Services Reference)
XPath expressions in Joins and Timeouts for BPEL join and timeout parameters.
The web service invoke step exported for the publication document creates a partner
link as <Flow_Step_Name>NotificationService.
The exported BPEL <variables> element will contain variables representing the process'
global data. There will also be variables created for any Flow and Workflow steps
according to the steps' inputs and outputs and document subscriptions and publications:
If the step has a subscription, that subscription will be represented in BPEL as a
<receive> activity, and a new variable will be created for use as that activity's
variable attribute. The variable will be defined as a message named
<Flow_Step_Name>ReceiveStepInput, and it will contain the subscribed document
type as one of its parts.
Variables are created for the input and the output data of the generated service of the
Modeler step and they will contain the input pipeline data and the output pipeline
data for that service, respectively.
If the step has a publication, that publication will be represented as a BPEL <invoke>
activity and a new variable will created for the input to that activity. The variable is
defined as a message named <Flow_Step_Name>NotificationStepInput, and it
contains the published document type as one of its parts.
The following WSDL files are exported along with BPEL process:
A WSDL file for the BPEL process interface. This defines the process level partner link
types, variables and port types. The partner link types created in this WSDL are either
based on web service interaction or are created for use with the WSDLs for the Flow
and Workflow steps. The variables created for this WSDL consist of the global data as
well as the pipeline line data for IS steps.
WSDL files for each Flow or Workflow step's generated wrapper service. This WSDL
defines the web service interface for the step's generated flow service.
WSDL files for each Web Service Step configured for receive. The web service step is
generated to Integration Server as a flow service that is exposed as a web service.
<flow>
<links>
<link name="Web_Service_StepA-to-Web_Service_Step"/>
<link name="Workflow_Step-to-Web_Service_Step1"/>
<link name="Web_Service_Step-to-Workflow_Step"/>
<link name="Web_Service_Step-to-Flow_Step"/>
<link name="Flow_Step-to-Web_Service_Step1"/>
</links>
<receive name="Web_Service_StepA" operation="onResult"
partnerLink="ws_receive_reply" portType="portType" variable="onLoanFlowResultSoapRequest">
<source linkName="Web_Service_StepA-to-Web_Service_Step"/>
</receive>
<invoke inputVariable="processCreditRatingServiceSoapRequest"
name="Web_Service_Step" operation="process"
outputVariable="processCreditRatingServiceSoapResponse"
partnerLink="ws_invoke" portType="portType">
<target linkName="Web_Service_StepA-to-Web_Service_Step"/>
<source linkName="Web_Service_Step-to-Flow_Step"/>
<source linkName="Web_Service_Step-to-Workflow_Step"/>
</invoke>
<invoke inputVariable="Workflow_StepInvokeStepInput"
name="Workflow_StepInvokeService"
operation="Workflow_StepInvokeServiceOperation"
outputVariable="Workflow_StepInvokeStepOutput"
partnerLink="Workflow_StepInvokeServiceLink" portType="Workflow_StepInvokeServicePortType">
<target linkName="Web_Service_Step-to-Workflow_Step"/>
<source linkName="Workflow_Step-to-Web_Service_Step1"/>
</invoke>
<invoke inputVariable="inputVariable"
joinCondition="getLinkStatus(Workflow_Step-to-Web_Service_Step1) and getLinkStatus(Flow_Step-
to-Web_Service_Step1)"
name="Web_Service_Step1" operation="pollResult"
outputVariable="pollLoanFlowResultSoapResponse"
partnerLink="ws_receive_reply" portType="portType">
<target linkName="Workflow_Step-to-Web_Service_Step1"/>
<target linkName="Flow_Step-to-Web_Service_Step1"/>
</invoke>
<invoke inputVariable="Flow_StepInvokeStepInput"
name="Flow_StepInvokeService"
operation="Flow_StepInvokeServiceOperation"
outputVariable="Flow_StepInvokeStepOutput"
partnerLink="Flow_StepInvokeServiceLink" portType="Flow_StepInvokeServicePortType">
<target linkName="Web_Service_Step-to-Flow_Step"/>
<source linkName="Flow_Step-to-Web_Service_Step1"/>
</invoke>
</flow>
</process>
The partner link for Flow_Step (IS step) defines partner role
"Flow_StepInvokeServicePartnerRole", which points to the port type defined by the
web service for generated wrapper flow service.
<partnerLink name="Workflow_StepInvokeService"
partnerLinkType="Workflow_StepInvokeServiceLT"
partnerRole="Workflow_StepInvokeServicePartnerRole"/>
The ws_invoke partner link points to the partner link type defined at wsdl0.
<partnerLink myRole="LoanFlow" name="ws_receive_reply"
partnerLinkType="wsdl1:ws_receive_reply"
partnerRole="LoanFlowCallback"/>
</partnerLinks>
The ws_receive_reply partner link points to the partner link type defined at wsdl0.
The following section defines the various variables defined for each type of process steps:
<variables>
<variable
messageType="wsdl1:LoanFlow_MessageTypes_pollLoanFlowResultSoapResponse"
name="pollLoanFlowResultSoapResponse"/>
messageType="wsdl0:CreditRatingService_MessageTypes_processCreditRatin
gServiceSoapRequest" name="processCreditRatingServiceSoapRequest"/>
<variable
messageType="wsdl0:CreditRatingService_MessageTypes_processCreditRatin
gServiceSoapResponse" name="processCreditRatingServiceSoapResponse"/>
<variable messageType="Flow_StepInvokeStepInput"
name="Flow_StepInvokeStepInput"/>
The flow activity below defines the equivalent activities of the above process model and
the links/connections between them.
<flow>
<links>
<link name="Web_Service_StepA-to-Web_Service_Step"/>
<source linkName="Web_Service_Step-to-Workflow_Step"/>
</invoke>
The web service reply equivalent step with join condition based on getLinkStatus
function().
<invoke inputVariable="inputVariable"
joinCondition="getLinkStatus(Workflow_Step-to-Web_Service_Step1)
and getLinkStatus(Flow_Step-to-Web_Service_Step1)"
name="Web_Service_Step1" operation="pollResult"
outputVariable="pollLoanFlowResultSoapResponse"
partnerLink="ws_receive_reply" portType="portType">
<target linkName="Workflow_Step-to-Web_Service_Step1"/>
<target linkName="Flow_Step-to-Web_Service_Step1"/>
</invoke>
CHAPTER 11
Generating Process Models
Modeler
Design IS
Server WmModeler
package
IS IS IS
Workflow
Each step in a process model is associated with a specific logical server. Modeler places
the run-time elements associated with a step on the physical server mapped to the logical
server for the step. For Workflow steps only, Modeler also places these run-time elements
on an Associated Server. To place the run-time elements on a server, Modeler accesses the
servers through the Design Server. The Design Server connects to the various servers in
the webMethods platform, as needed, during process generation. As a result, all physical
servers must be running and available when you generate the process model.
Type of
Generated item property Property How Modeler uses property during generation
package process Package Name Modeler places all generated run-time
elements for the process model in the
package that you specify. If you specify
a package that does not currently exist,
Modeler creates it.
process Label If you do not specify the Package Name
property, Modeler uses the Label
property as the name of the package to
hold the generated run-time elements.
The Label property specifies the name of
the process model.
process Process Key If the name that Modeler is to use (either
from the Package Name or Label process
property) contains non-ASCII characters
(e.g., if it contains multibyte characters),
Modeler cannot use the name you
specify for the package. In this situation,
Modeler uses the value it defines for the
Process Key property.
Type of
Generated item property Property How Modeler uses property during generation
IS folder for process Label Modeler creates an IS folder in the
the process package with the name of the process
model.
process Process Key If Label contains non-ASCII characters
(e.g., if it contains multibyte characters),
Modeler cannot use the name for this
folder. In this situation, Modeler uses the
value it defines for the Process Key
property.
IS folders for step Logical Server Modeler creates one IS folder named for
the logical each logical server referenced in the
servers process model. Modeler places the IS
folders for logical servers in the IS folder
for the process.
trigger step Logical Server Modeler creates one trigger for each
logical server that is referenced in the
process model and places the trigger in
the IS folder for the corresponding
logical server.
Type of
Generated item property Property How Modeler uses property during generation
flow services step Label Modeler creates one flow service for
each controlled step. By default,
Modeler gives the flow service the name
of the step, which is specified by the
Label step property.
step Generated The value of the Generated Flow Name step
Flow Name property overrides the default name for
a generated flow service. If you specify
the Generated Flow Name step property,
Modeler uses this name for the name of
the generated flow service instead of the
name of the step, which is specified by
the Label step property.
step Unique ID If the name that Modeler is to use (either
from the Label or Generated Flow Name
step properties) contains non-ASCII
characters (e.g., if it contains multibyte
characters), Modeler cannot use the
name you specify for the service name.
In this situation, Modeler uses the value
it defines for the Unique ID property.
step Service to If you specify the Service to Invoke
Invoke property, when Modeler generates the
flow service for the step, it includes an
INVOKE flow operation to invoke the
service you specify.
If you do not specify the Service to Invoke
property, Modeler generates an empty
flow service.
step Logical Server By default, Modeler places the generated
flow service in the IS folder it creates for
the logical server associated with the
step.
Type of
Generated item property Property How Modeler uses property during generation
step Folder The value of the Folder step property
overrides the default IS folder where
Modeler places a generated flow service.
If you specify the Folder step property,
Modeler places the generated flow
service in the IS folder you specify. If the
IS folder you specify does not exist,
Modeler creates the IS folder in the
package for the process model.
process run- step Logical Server Modeler creates one process run-time
time script script for each logical server referenced
in the process model. It places all process
run-time scripts in the config\wmprt
directory of the package.
When the above process is generated, Modeler generates the following run-time elements:
Generated flows for steps that do not use the Folder property
are placed in the folder named for the process model and then
within the folder for the appropriate logical server.
Workflow Project
Important! Changing the default Associated Server could negatively impact process model
generation. To avoid generation problems associated with changing the default
Associated Server assignment, read “Consequences to Changing the Associated Server”
on page 208.
Tip! It is recommended that when you supply values for properties that are used for
naming generated run-time elements, that you use only ASCII characters. Although
Modeler can successfully generate run-time elements that have names with multibyte
characters to webMethods Workflow, the webMethods Workflow user interfaces will be
unable to properly display the multibyte characters.
1 If the process model you want to generate is not already open, open it.
2 Select ToolsValidate Business Process.
If Modeler encounters errors when validating the process model, it displays error
messages. The error messages are preceded with in the Implementation
Validation Messages dialog.
For a description of the errors and how to fix them, see “Troubleshooting Process
Generation” on page 216
1 If the process model you want to generate is not already open, open it.
2 Select ToolsGenerate Business Process.
If Modeler encounters errors when generating the process model, it displays error
messages. The error messages are preceded with in the Implementation
Generation Messages dialog. If Modeler encounters errors, it does not generate new
or update existing run-time elements.
For a description of the errors and how to fix them, see “Troubleshooting Process
Generation” on page 216.
Note: If you make visual changes, such as adding text, adding notes, or moving lines and
icons around, you do not need to regenerate.
STEP 1: Regenerate the process model. The procedure for regenerating a process
model is the same procedure as when you initially generated the process.
STEP 2: Optionally, add logic to the generated run-time elements.
STEP 3: Make the process model available for monitoring.
STEP 4: Enable the process model if you have not previously enabled it or if you
disabled it.
Change made to process model How Modeler handles the change during regeneration
Change the ‘Label’ process
property
If the Label process property is Modeler generates a new package using the new
being used for the name of the value of the Label property if the package does not
generated package (i.e., before already exist.
you made the change, the
Label property was the same Modeler does not rename the folder named for the
as the Package Name property) process model. Modeler continues to use the
original value of the Label process property for
this folder.
Modeler moves all generated flow services,
triggers, and process run-time scripts to the new
package.
If a step in the process model uses the Folder
property and the specified folder does not exist in
the new package, Modeler creates the folder in the
new package.
Modeler preserves the old package. The old
package still contains all folders that Modeler
previously generated. Additionally, Modeler
preserves all user-defined data in the package
(folders, flow services, triggers, etc.).
If the Label process property is Modeler makes no change. The folder named for
not being used for the name of the process model continues to use the original
the generated package (i.e., value of the Label process property.
you specified a different value
for the Package Name property)
Change made to process model How Modeler handles the change during regeneration
Change the ‘Package Name’ Modeler generates a new package using the new
process property value of the Package Name property if the package
does not already exist.
Modeler moves all generated flow services,
triggers, and process run-time scripts to the new
package.
If a step in the process model uses the Folder
property and the specified folder does not exist in
the new package, Modeler creates the folder in the
new package.
Modeler preserves the old package. The old
package still contains all folders that Modeler
previously generated. Additionally, Modeler
preserves all user-defined data in the package
(folders, flow services, triggers, etc.).
Change the ‘Label’ step property
If the Label step property is Modeler renames the generated flow service for
being used for the name of the the step to the new value of the Label step
generated flow service (i.e., property.
before you made the change,
the Label property is the same
as the Generated Flow Name
property)
Change made to process model How Modeler handles the change during regeneration
Change the ‘Service to Invoke’ Modeler regenerates the flow service preserving
step property for a step all previous user-defined and generated logic.
Modeler appends a new INVOKE flow operation
to the end of the preserved logic in the flow
service to invoke the new service specified by the
Service to Invoke step property.
Change the ‘Logical Server’ step
property
If the newly selected logical If the package for the process model does not
server is associated with the already contain a folder for the newly selected
same physical server logical server, Modeler creates a new folder
named for the new value of the Logical Server
property.
Modeler moves all generated flow services and
triggers to the folder named for the newly selected
logical server.
If after the change the old logical server is no
longer referenced in the process model by any
other steps, Modeler removes the trigger and
process run-time script for the old logical server.
It does not delete the folder it generated for the
old logical server.
If the newly selected logical Modeler generates new flow services, trigger, and
server is associated with a process run-time script on the new physical
different physical server server.
Modeler removes the previously generated flow
service from the folder for the old logical server
on the old physical server.
If after the change the old logical server is no
longer referenced in the process model by any
other steps, Modeler removes the trigger and
process run-time script for the old logical server
from the old physical server. It does not delete the
folder it generated for the old logical server.
Change made to process model How Modeler handles the change during regeneration
Delete a step from the process Modeler deletes the flow service that it generated
model for the step from the Integration Server
namespace.
If the deleted step is the only step that runs on a
specific logical server, the deletion of the step also
removes the reference to the specific logical
server. In this case, Modeler also removes the
trigger and process run-time script for the logical
server. It does not delete the folder it generated for
the logical server.
Change the Input/Output Modeler changes the Input/Output variables for
documents for a step the generated flow service.
Modeler preserves all mappings that are
associated with unchanged documents.
Change made to process model How Modeler handles the change during regeneration
Change the ‘Project’ or If the project that you specify does not exist,
‘Project’ and ‘Version’ step Modeler generates it.
properties
Modeler generates a new implementation module
in the newly specified project and version.
Note: You must clear the
Workflow to Invoke property If you did not use the Workflow to Invoke property
before you can change the to specify an existing workflow in the new project,
Project property. Modeler generates an empty workflow for the
new project.
Modeler preserves the old project,
implementation module, and workflow in the old
project.
If you added any logic to the old implementation
module or workflow, Modeler does not move it to
the newly created implementation module or
workflow.
Change the ‘Label’ process Modeler makes no change. If your current
property and/or the ‘Label’ step implementation module and/or workflow have
property names based on the old label fields, they will
continue to use the same names.
Change the ‘Logical Server’ step Modeler generates all run-time elements as
property and the new logical needed to the new physical server.
server is associated with a
different physical server Modeler preserves all old generated run-time
elements on the old physical server.
Change the ‘Implementation Modeler renames the generated implementation
Module’ step property for a step module to use the new name that you specify.
Change made to process model How Modeler handles the change during regeneration
Clear the ‘Workflow to Invoke’ Modeler generates an empty workflow.
step property for a step
Modeler updates the generated implementation
module so that it invokes the newly created
empty workflow.
Modeler preserves the old workflow.
Change the ‘Workflow to Invoke’ Modeler updates the generated implementation
step property for a step module so that it invokes the newly specified
workflow.
Modeler preserves the old workflow.
Delete a Workflow step from the Modeler preserves all generated information for
process model the deleted step.
Important! If Workflow steps inadvertently generate to multiple IS servers, make sure that
all users that have generated the model have the same Associated Server assignment. For
details on this issue, see “Consequences to Changing the Associated Server” on page 208.
Invalid Web Service receive step “stepname”. Cannot have multiple receive steps with the same port
type and operation.
Cause: webMethods platform uniquely identifies a Web Service receive step with in a
process model by its port type and operation. A process model with multiple Web Service
receive steps implementing the same operation violates this unique constraint.
Response: Each Web Service receive step within a single process model must implement a
different operation.
Step “stepname” is duplicate. Please either rename the step or choose a different name for the flow
service.
Cause: You have more than one step in your process model named stepname and have not
used the Generated Flow Name step property for the steps to give unique names for the flow
services that Modeler is to generate.
Response: Do one of the following:
Rename your steps so that their names are unique.
Use the Generated Flow Name step property to identify unique names for the flow
services that Modeler is to generate.
Response: Ensure all physical servers that are associated with the logical servers your
process model references are running.
Web Service reply step “stepname” does not have a matching receive step.
Cause: A Web Service reply step in your process model does not have a matching Web
Service receive step.
Response: Ensure that your process model contains one and only one Web Service receive
step with the same Web Service interaction, port type and operation as the Web Service
reply step.
Warning Messages
In the following cases, process generation is allowed, but it may cause runtime errors.
Found multiple Web Service replies to the Web Service Step “stepname”. Only the first reached reply
will be returned to the caller and subsequent replies will be ignored.
Caution: Ensure that the process model is designed in such way that only one Web Service
reply step is reached for any given runtime instance.
Operation “operation name” for Web Service step “stepname” expects output message type
“message type”, but output is not assigned.
Caution: Data returned from the Web Service operation will not be available for use by the
process model steps downstream.
Operation “operation name” for Web Service step “stepname” expects input message type “message
type”, but input is not assigned.
Caution: You will not be able to assign input data to the Web Service operation.
Web Service receive step “stepname” does not have a matching reply step.
Caution: If the process model is invoked as a BPEL process, no data will be returned to the
invoker.
Note: The Update Model for Monitoring option is disabled if you have not defined an
Process Audit Log. To define an Process Audit Log, from the webMethods Server
Administrator, select the JDBC Pools option from the Settings menu of the navigation
area to associate the alias of a JDBC pool with the ProcessAudit functional alias.
CHAPTER 12
Managing Process Models
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Overview
Tasks involved in managing process models include updating, regenerating, versioning,
deleting, importing/exporting, and managing logical servers and server connections
associated with a model. For details on monitoring running process models, see the
webMethods Integration Platform Logging and Monitoring Guide.
Note: If you make changes to the user-defined service that the generated flow service
invokes, you do not need to regenerate the process model. For details on editing services,
see Chapter 7, “Adding Logic to Steps”.
1 From an active process model, choose FileDelete Process. The Delete Process window
appears.
2 Browse to the process model that you want to delete and select it. Click Delete.
3 When prompted to confirm your action, click OK.
Note: The simple XML file created when exporting as Portable Format contains the process
model definition in BIML (Business Integrator Processing Language) format. For a
technical description of the BIML format, refer to the XML schema document at
webMethods\Modeler\etc\BIMLschema.xsd.
Note: For details on migrating process models from Business Integrator 4.6 to Modeler
6.0.1, see Appendix C, “Migrating 4.6 Process Models to Modeler 6.1”.
1 Start Modeler and open the process model that you want to export.
2 Select FileExport Current Process asComplete Model.
Note: If you want to export the model as Portable Format, choose FileExport Current
Process asPortable Format.
3 In the Save Export File dialog, browse to the directory where you want to save the
exported process model.
4 In the File Name dialog, type a file name for the exported process model. Click Save.
5 Modeler displays a confirmation message. Click OK.
1 From the Modeler main menu, select FileExport Other Processes asComplete Model
.
Note: If you want to export the model as Portable Format, choose FileExport Other
Processes asPortable Format.
2 In the Select Processes For Export dialog, browse to and select the process model(s)
that you want to export.
3 Click Export.
4 In the Select Directory dialog box, browse to and select the directory where you want
to save the exported process model(s).
5 Click Select Directory. Modeler displays a confirmation message. Click OK.
3 From the Find Logical Server menu, select the logical server to be replaced.
4 From the Replace With menu, select the new logical server.
5 Click Replace All. A message appears stating how many server instances were
replaced.
6 If you are done replacing logical servers in the process, click Close.
Important! This is the logical IS on which Workflow steps generate and execute.
Changing the default Associated Server could negatively impact process model
generation. To avoid generation problems associated with changing the default
Associated Server assignment, read “Consequences to Changing the Associated
Server” on page 208.
Refresh logical server information. For example, if logical servers have been added,
changed, or removed through webMethods Administrator, the Refresh option
prompts Modeler to retrieve the latest server information.
Use the following procedure to access the Server Connections dialog.
CHAPTER 13
Moving Process Models to Production
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Overview
This chapter describes information to consider when you are ready to move your process
model and related information from your development environment to your production
environment.
In your development environment, you want to:
Create your process model.
Generate the process model to create the run-time elements in the underlying
systems.
Add additional data mapping and logic to the run-time elements, if necessary. For
example, map data into services, add logic to services, and/or design a human
workflow.
Test the business process to ensure it works as expected.
When you are satisfied that your business process runs as expected, move your process
model information from the development environment to the production environment.
To move the process model, you move items from your physical servers in your
development environment to physical servers in your production environment.
Development Production
Accounting
Finance
Purchasing Accounting Finance Purchasing
IS IS IS IS
All logical servers map to a single physical server. Each logical server maps to a different physical server.
The underlying physical servers do not have to match. For example, in the development
environment, all three logical servers (Accounting, Finance, and Purchasing) might map to a
single physical server. In your production environment, you might have the same three
logical servers mapped to three separate physical servers.
Type of server
associated with steps Information in deployment list
all Host name and port of the physical server to which the
logical server is mapped
Integration Servers Package name for the process
Correlation services
Important! Before you can generate the deployment list, you must first generate the process.
To create the deployment list, Modeler using information that is saves during process
generation.
To
To generate the deployment list
Development Production
Accounting
=
Logical server s= Finance Accounting Finance Purchasing
Purchasing
IS IS IS IS
Accounting Items Accounting Items
Finance Items Finance Items
Purchasing Items Purchasing Items
The items on Integration Servers that you need to move are run-time elements that
Modeler generated (PRT scripts, flow services, and triggers) and other items (e.g.,
services, publishable documents, etc.) that you referenced in your process model.
The following table lists each generated run-time element and where you can locate the
item within the package based on whether the Folder property was used.
Default or
Run-time element Folder property Where Modeler places the run-time element
process run-time Either In the config\wmprt directory of the package.
scripts
triggers Either Modeler places triggers in the
ns/Model/LogicalServer folder where:
Tip! If you use the default location for all steps, all generated flow services and triggers
will be located in a folder that has the same name as the process model.
For more information about the items that Modeler generates and where Modeler places
these items, see Chapter 11, “Generating Process Models”.
Development Production
IS IS IS IS IS IS
Accounting Items Accounting Items
Finance Items Finance Items
Purchasing Items Purchasing Items
In this situation, the move of the generated run-time elements is straight forward.
To move generated run-time elements when logical-to-physical mappings are the same
Development Production
Accounting
Finance
Purchasing Accounting Finance Purchasing
IS IS IS IS
Accounting Items Accounting Items
Finance Items Finance Items
Purchasing Items Purchasing Items
Development Production
Accounting Accounting
Finance Purchasing Finance Purchasing
IS IS IS IS
Accounting Items Accounting Items
Finance Items Finance Items
Purchasing Items Purchasing Items
If you used the Folder property to specify where to place generated flow services for
one or more steps, locate the generated flow services in the folders you specified and
include them in the release, as well. Be sure to include only the generated flow
services that are associated with the logical server for which you are making a release
of the package.
2 After you have created the releases, publish and install the releases in the equivalent
physical server in the production environment.
To
To move items stored in Trading Networks
1 From the development environment, use the Trading Networks Console to access the
Export Data dialog (from the File menu), which allows you to select the items you
want to export. Trading Networks creates an .xml file that contains the exported
items.
2 Move the .xml file to a location to which the production Trading Networks has access.
3 Use the Trading Networks Console in the production environment to access the
Import Data dialog (from the File menu).
4 From the Import Data dialog, select the .xml file you created in the development
environment. This allows you to import the data from the development environment
to your production environment.
For more information about how to export data from and import data to Trading
Networks, see the webMethods Trading Networks User’s Guide manual.
1 Access the Workflow Generator from the Tools menu of the Workflow Designer that is
connected to the webMethods Workflow server in your development environment.
2 Using the Workflow Generator, identify the webMethods Workflow server to which
you want to move the workflows. This server is known as the deployment server.
Specify the webMethods Workflow server in your production environment for the
deployment server.
3 Select the Install Deployment option from the Install menu to copy the previously
generated and tested deployment to your production environment.
The Workflow Generator will guide you through moving the Workflow items from
your development environment to your production environment.
For more information about deploying workflows, see the webMethods Workflow User’s
Guide.
WMPROCESSDEFINITION
WMPROCESSIMAGE
WMSTEPDEFINITION
WMSTEPTRANISITONDEFINITION
Note: Scripts used to export the necessary tables are available on the webMethods
Advantage website.
APPENDIX A
Tuning Performance and Quality of Service
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Overview
Service Pack 1 for webMethods Modeler 6.0.1, coupled with Service Pack 2 for Integration
Server 6.0.1, adds settings to the Modeler and PRT that let you tune performance and
quality of service levels to meet specific needs. This appendix provides a framework for
tuning these dispersed settings as a cross-functional unit, and for leveraging them for
your environment.
Backwards Compatibility
The performance and quality of service default settings are such that, out-of-the-box, all
process models created prior to the implementation of the new features (that is, prior to
the application of Modeler 6.0.1. SP1 and Integration Server 6.0.1 SP2), work exactly as
they did before. Specifically, all process models default to the highest quality of service—
the behavior prior to the existence of these settings.
Benefits
Processes are guaranteed. They:
Automatically recover at the appropriate step in case of system failure; i.e., the
process is guaranteed to run to completion
webMethods Monitor provides maximum visibility and control. Use Monitor to:
View process status (Started, Suspended, Failed, Completed)
View step status (Completed, Started, Failed/Error, Waiting)
Suspend, resume, resubmit, or stop the process
Costs
Each process takes longer to complete, and/or fewer instances complete per time
period.
Benefits
Processes complete more quickly, and/or more instances complete per time period.
Costs
Process instances are not guaranteed. They:
Do not automatically recover in case of server failure; i.e, if a server fails, the
process does not run to completion.
There is no visibility or control via webMethods Monitor. You cannot:
View process status (Started, Suspended, Failed, Completed)
View step status (Completed, Started, Failed/Error, Waiting)
Suspend, resume, resubmit, or stop a process
View error or activity messages
Edit or resubmit the step pipeline
Configuration Overview
The performance and quality of service settings are found on the Modeler and the PRT
home page and apply to three distinct levels of the environment: the PRTs in the territory,
processes, and individual steps. The choices that you make for the territory determine
how you can configure processes, and process settings determine how you can configure
steps. The following table summarizes the order of steps for tuning performance/quality
of service.
Important! It is important that you tune the settings on each server consistently, so that the
territory functions as an interconnected unit. Step 5 of the following procedure explains
what is meant by consistent tuning.
Note: Clicking the Default button causes the PRT to revert to the default values.
5 Repeat steps 1-4 for all PRTs in a territory, ensuring values are tuned consistently. For
example, if using a central Process Tracking Store, ensure all servers have designated
a central Process Tracking Store and that each points to the same Associated Pool
Alias. Similarly, if using distributed Process Tracking Store, ensure all servers have
designated a distributed Process Tracking Store and that each server points to a
different Associated Pool Alias. If using a distributed Process Tracking Store, be sure
to assign only one Process Completion Tracking Server per territory.
6 Reload the WmPRT package, or restart the integration server.
Use Case
Centralized process tracking is best used when:
The connection to the Process Tracking Store database is very reliable, and/or
Effects
The maximum possible performance level is decreased; that is, Volatile Tracking
mode is unavailable in a centralized, multi-server environment (although it is
available in a single-server environment). Volatile tracking may have a problem in
clusters (for non-optimized locally and processes with splits or joins). It will work for
both distributed and single server environments if you do not use clusters. For a
distributed environment, you will have to change the WMPRT home page to set
Central Process Tracking Store to off and Set one (and only one) of the servers to be a
tracking server. For details, see “Using Volatile Tracking” on page 262.
Use Case
Distributed process tracking is best used when:
Connections to the Process Tracking Store database are unreliable, and/or
Effects
You can tune performance to a maximum level; that is, you can override persistence to
the Process Tracking Store for Volatile Tracking mode (RAM). For details, see “Using
Volatile Tracking” on page 262.
You need to choose a Process Completion Tracking Server. See “Choosing a Process
Completion Tracking Server”.
Important! Be sure to assign only one Process Completion Tracking Server per territory.
Step Description
1 Choose global default process settings.
2 Tune individual process model settings.
Note: Modeler makes selective step pipeline logging available when you set the model’s
Logging Level to Process and all steps. For details, see “Process and all steps” on page 261.
3 Check or uncheck the Steps Enable Resubmission option to enable or disable it.
Important! Changing this parameter affects steps added to the process going forward. It
does not affect steps already in existence.
Tip! The step property that the Steps Enable Resubmission option corresponds to is
Enable Resubmission.
Process
Model
Property Description Default For details, see...
Logging Determines the level of persistence to the Process “Choosing a
Level Process Audit Log, and hence the level of and All Logging Level”
visibility and control in webMethods Steps on page 260
Monitor.
Logging Levels are:
None
Errors Only
Process Only
Process
Model
Property Description Default For details, see...
Optimize Specifies whether servers should publish Enabled “Optimizing the
Locally process transition documents between Process Locally”
execution of adjacent steps on the same on page 264
IS. A simpler method of passing control
between steps on the same IS is to
directly invoke them. This decreases
Broker traffic and increases performance.
If enabled, servers use the direct invoke
to pass control between steps on the
same IS. If disabled, servers publish
process transition documents between
execution of adjacent steps on the same
IS.
Local Specifies whether to save correlation IDs Enabled “Managing
Correlation on the local server that created them, or Correlation IDs
whether it is necessary to broadcast them in a Distributed
to different servers in the process. Environment”
on page 267
It might be necessary to broadcast these
IDs when 1) the process spans multiple
servers and 2) the territory uses a
distributed Process Tracking Store.
Broadcasting IDs ensures that if the step
that needs the correlation ID is on a
different server than that which created
the ID, the ID is received.
When enabled, correlation IDs are not
broadcast; when disabled, they are
broadcast (through the Broker) to all
servers in the process.
Note: If a process does not use correlation
services, this property is not applicable
and can be ignored.
Important! The defaults described above apply to new process models (i.e, process models
created and generated after the application of Modeler 6.0.1 Service Pack 1 and
Integration Server 6.0.1 Service Pack 2). The defaults for models created and generated
prior to the application of the service packs are modified to ensure models have the same
settings as before the application of service packs. This means that these models have
maximum quality of service default settings. The defaults for previously created models
are: Logging Level = Process and All Steps, Volatile Tracking = Disabled, Volatile
Transition Documents = Disabled, Optimize Locally = Disabled, Local Correlation =
Disabled.
Modeler prohibits document field logging in association with the remaining levels:
None
Errors only
Important! Keep in mind that logging document fields means persisting information and
thus impacts performance/quality of service. When setting or changing your level of
performance/quality of service, do not forget to consider the document logging settings.
For example, if you decide you need greater performance and change the Logging Level
from Process and All Steps to Process Only, remember that any document logging
parameters are still in effect until you manually change them.
Example Scenario
Let’s examine the impact of enabling Volatile Tracking with the following process. In this
process:
Optimize Locally is enabled (and all steps execute on a single server)
Logging Level is Process and all steps
Effect: When the server recovers, the process begins again at step 1. Steps 1, 2, and 3
execute again. Though it is the second iteration of these steps, the previous iteration data
stored in RAM was lost when the server failed. Therefore, upon recovery, the PRT
inaccurately records step iteration as the first iteration.
Note: The process recovers at step 1 rather than the failed step because the process has
enabled Optimize Locally (and all steps are on a single server). These factors are discussed in
detail in “Optimizing the Process Locally” on page 264.
Implications: It is harder to determine and address the negative effects of server failure
without being able to see in the Monitor accurate iteration count, and how much work
might have been duplicated.
Summary of Using Volatile Tracking
If you do not need an accurate step iteration trail in the Monitor and/or are not logging
information to the Process Audit Log, using this property increases performance without
undesired consequences. If however you need an exact audit trail and/or are logging step
information to the Process Audit Log, the cost of the inexact audit trail might outweigh
the performance benefits. Of course the costs of enabling this property depend on server
failure. If servers do not fail, it is safe to use Volatile Tracking.
Effect: The PRT publishes process transition documents between steps 1 and 2 only.
Therefore, when the server fails at step 4, the process recovers at step 2.
Implications: Processes that recover past the point where the process failed might perform
work twice. In this example, the work performed during steps 2 and 3 is repeated.
Effect: The PRT publishes process transition documents between each step. When the
server fails at step 4, the process recovers at step 4.
Implications: The risk of work being duplicated is greatly decreased. Although it is possible
that upon recovery the process repeats some work done at the beginning of step 4 (before
the server failed), the maximum amount of work that can be repeated is decreased.
Summary of Optimize Locally
The possibility of duplicating work is the biggest risk when using Optimize Locally. How
detrimental work duplication would be probably depends on the specific process.
For example, you might not want to risk duplicating work for processes that store,
synchronize, or correlate data. For processes that do less significant work, the
performance benefits might outweigh the risks.
Of course, the risks associated with Optimize Locally depend on server failure. If a server
does not fail, it is safe to enable Optimize Locally.
Territory uses distributed Process Tracking Store (see “Choosing Central vs.
Distributed Process Tracking Store” on page 254)
Note: The remainder of this section applies to processes that meet the above criteria. For a
review of when processes require correlation services, see “Working with Correlation
Services” on page 152.
Example Scenario
In the following process:
The “processJob” step receives a document that needs to be correlated with the
process. The step generates to Server 2.
The “routerScheduleRequest” step invokes a correlation service to output the
correlation ID that “processJob” needs. The step generates to Server 1.
Note: There is a slight delay between the PRT’s broadcast of the correlation ID to the
Broker, and the remote servers receiving it. It is possible that you could design a process in
such a way that a step receives the document that it needs to correlate before the server
receives the ID from the Broker.
If the Sample Process Had Not Broadcast Correlation IDs: The PRT would have begun a new
instance of the process at “processJob” step.
Designing the Model so That Broadcasting Is Not Necessary: Broadcasting correlation IDs to the
Broker (i.e, disabling Local Correlation), slightly detracts from performance. To avoid this,
you can instead design the process so that the steps publishing and the steps needing
correlation IDs are on the same server. In this case you could enable Local Correlation and
still be ensured documents correlate to the process successfully.
Note: Using the previous model as an example, you would assign the “ProcessJob” and
“routerScheduleRequest” steps the same physical server.
APPENDIX B
Guidelines for Working with Referenced Processes
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Introduction
As described in “Referenced Process Steps” on page 89, steps within a process that invoke
a separate business process are known as referenced process steps. There are some special
design-time and run-time considerations to keep in mind when working with referenced
processes. This appendix provides information and guidelines to help you design process
models that contain referenced processes, and also to monitor running business processes
containing referenced processes.
Design Time
In designing business processes with referenced process steps, you should:
Understand (and complete as necessary) the additional properties that Modeler
provides for referenced process steps; these are defined in “Referenced Process Step
Properties” on page 273. These properties reflect the special design-time and run-time
considerations for processes containing referenced processes.
Understand the special design-time guidelines described in “Design-Time
Guidelines” on page 275, including:
How to assign inputs and outputs to referenced process steps; this process is
slightly more involved than the process described for general steps, in Chapter 6,
“Assigning Inputs and Outputs to Steps”.
When to assign a return join type to a referenced process step.
Run Time
When you monitor a business process that contains a referenced process, you can:
Monitor both the parent process and the child process, if both have started running.
Use the Monitor enable/disable toggle to swap one running referenced business
process for another, if the referenced process step’s Hot-Swappable property is enabled.
You enable or disable the Hot-Swappable property at design time. For details on
understanding and using the hot-swappable feature, see “Using the Hot-Swappable
Feature” on page 277.
Property Definition
Process Reference The name of the child process to run. When you establish a
referenced process step, Modeler automatically populates the
Process Reference property with the name of the child process
inserted. If you would like to change the child process to run,
select a new process from the Process Reference drop down list.
Use caution when replacing one child process with another. See
“Related Considerations” on page 277 for details.
Hot-Swappable Controls the number of business processes that are triggered per
received subscription document, and enables one referenced
business process to be swapped for another at run time.
If enabled, all possible business processes will be triggered per
received subscription document, and swapping of referenced
business processes at run time is possible.
If disabled, only the business process identified in the Process
Reference property (above) is triggered. For details on hot-
swapping, see “Using the Hot-Swappable Feature” on page 277.
Property Definition
Return Join Type For referenced process steps whose child process contains more
than one possible end step, this join type designates the logic by
which the Modeler proceeds out of the referenced process step to
the next step in the parent process. This join type is necessary only
when a child process contains more than one possible end step,
and when the referenced process step is not the last step in the
parent process model. For an example of this type of child process,
see “Child Process (PO2 Process)” on page 276.
The types of joins are: AND, OR, XOR, and COMPLEX. For
complete definitions, see “Join Types” on page 89. If you assign a
step a return join type of AND (or COMPLEX with ANDs), you
must also assign the step a Return Timeout property, described
below.
Return Timeout Assigns a timeout value to referenced process steps whose return
join type is AND (or COMPLEX with ANDs); you do not need to
specify this property for any other return join type.
The Return Timeout Value is the time (in ms) by which the return
join type conditions must be met before the timeout transition
from the referenced process step will be taken. The timer begins
counting once the first return join condition is met (e.g., the first
input arrives).
Note: When you assign a Return Timeout value to a step, you must
also create a Timeout transition to another step, as described in
Chapter 8, “Creating Step Transitions”.
Design-Time Guidelines
Use the following guidelines when designing business processes containing referenced
process steps.
Looking at PO1 Process, we can see that a step upstream from the referenced process
step (PO2 Process), in this case Step 2, outputs an identical document type as the child
process’s starting subscription document (docType_auditCode). Therefore, Modeler
makes this document available as input to the referenced process step (PO2 Process).
Modeler automatically assigns outputs to referenced process steps such that all
publications of the end step(s) of the child process become the outputs of the
referenced process step. Using the above models again, notice that the child process’s
ending publication documents are docType_quoteRec and docType_projUpdate.
Modeler automatically populates the referenced process step’s outputs with these
documents. The outputs to a referenced process step are not editable.
Ensure your child and parent process outputs stay synchronized. If a child process’s
end step publications change after being established within a parent process, the
parent process does not automatically detect the change. Use Modeler’s Sync Outputs
feature to synchronize parent/child outputs. The Sync Outputs option is available from
the right-click menu of a referenced process step and on a referenced process step’s
Inputs/Outputs dialog.
Tip! If the Sync Outputs option is enabled, outputs need to be synchronized. If the Sync
Outputs option is disabled, the outputs should already be synchronized.
Ensure child and parent process inputs stay synchronized. If a child process’s starting
subscriptions change after being established within a parent process, the parent
process’s referenced process step inputs must be manually updated to reflect the
child.
Related Considerations
Use caution when replacing one referenced process step with another. If the outputs
of the new child process are different than the previous process’s, all transition
conditions connecting the referenced process step to steps downstream will be lost. In
addition, once you replace one referenced process step with another, the action
cannot be undone.
Tip! For an alternate method of substituting one referenced process for another (in a
run-time environment only), you can use the hot-swappable feature, described in
“Using the Hot-Swappable Feature” on page 277.
Important! When hot-swapping, be careful that you disable all running processes with the
starting subscription document in question. Also, make sure that you enable only the
process to run in place of the child process. If you inadvertently leave more than one
process (with a given starting subscription document) enabled, all enabled processes will
run.
Note: Hot-swapping does not in any way alter the design of a parent or child process
model. Therefore, the process model picture does not reflect the hot-swapping, even
though it has occurred.
For details on using webMethods Monitor to enable and disable business processes, see
the webMethods Integration Platform Logging and Monitoring Guide.
APPENDIX C
Migrating 4.6 Process Models to Modeler 6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Introduction
This appendix is for clients who maintain process models from Business Integrator
version 4.6 and who would like to import 4.6 models into Modeler 6.1. This appendix
outlines the basic concepts and steps in 4.6-to-6.1 process model migration.
Overview
When you migrate a 4.6 process model to Modeler 6.1, the design of the model is perfectly
preserved. That is, all steps, transitions, groups, subprocesses, referenced processes, notes,
and annotations remain intact in Modeler 6.1. In addition, the migration utility makes
some adjustments to the model’s settings to reflect the difference in functionality between
Business Integrator 4.6 and Modeler 6.1. However, additional manual adjustments to the
model are necessary before it is fully functional on the 6.1. platform and with your specific
setup.
Before you begin the export/import process, you should understand the differences in
functionality between Business Integrator 4.6 and Modeler 6.1. The following table
summarizes these major differences and how the migration utility handles them.
BI 4.6 and Modeler 6.1 Differences and How Migration Handles Them
Note: The migration utility sets an uncontrolled step’s logical server to empty, since these
steps do not need to be associated with servers.
Note: For a detailed review of 6.1 transitions, see Chapter 8, “Creating Step Transitions” of
this guide.
Index
external documents G
and sender/receiver roles 112 Generated Flow Name property
definition 108 how changing affects process model regeneration 212
deployinig with process model 245 use during process generation 203
enabling steps to access 112 generated flow services
guidelines for subscribing to start steps 113 definition 148
how to have steps send 136 guidelines for working with 148
inability to "publish" 136 mapping to user-defined services 149
keeping distinct among logical servers 113 generating process models
purpose of "publishing" 136 see process generation
sender role 112 generation package, description 18
subscribing steps to 110 global data
when to define 50 definition and overview 108
external groups working with global data 143
creating 179 groups
definition 26, 178 see also external groups
warning about transition conditions 163, 180 see also internal groups
definition 26, 66, 178
F how PRT ignores 26, 178
filters, definition 24, 139
flat file, changing from flat file to database storage 47 H
flow services Hot-Swappable property of referenced process steps
and step logic, overview 148 definition 273
caution about ProcessData variable 150 how process model design is not affected 278
completing logic after process generation 222 how state affects run-time actions 272
guidelines for designing step logic 149 if disabled 278
how Modeler generates flow services 149 if enabled 278
including in release of package for deploying process model importance of disabling all running processes when using 278
243
using instead of referenced process step substitution 277
location of those generated by Modeler 240, 243
using the hot-swappable feature 277
properties affecting generation of 203
Focal Role
I
and sender/receiver roles 112
property defined 54 icons for steps, changing 105
Folder property Implementation Module property
how changing affects process model regeneration 212 how changing affects process model regeneration 215
use during process generation 204 use during process generation 207
folders, IS implementation modules
properties affecting generation of 202 completing logic after process generation 222
properties affecting generation of 206
input data J
assigning to steps 109 Join Queue Lock Expiration (sec), PRT setting 253
instance names 109 join types
subscriptions vs. input data 109 defined 89
input/output data return join types 274, 277
see also input data joins (join steps)
see also output data see also AND joins
changing and process regeneration 214 see also Complex joins
checking after 4.6 model migration 283 see also OR joins
definition and overview 24, 108 see also XOR joins
using in transition conditions 163 definition 25, 163
instance names of input data forming 25, 163
purpose and description 109 guidelines for creating 170
Integration Servers three ways to create 163
and the Associated Server 206 types, defined 89
and webMethods Modeler architecture 18 JPEG, of process model, creating 63
and Workflow step generation 206
items Modeler generates for processes 201
L
properties affecting flow services generated for processes 203
Label process property
properties affecting folders generated for processes 202
properties affecting generation of package 201 how changing affects process model regeneration 211, 215
use during process generation 201, 202, 207
properties affecting process run-time script generated for
processes 204 Label step property
properties affecting triggers generated for processes 202 how changing affects process model regeneration 212, 215
use at design time 21 use during process generation 203, 207, 208
use during process run time 28 Logging Level property 54, 258, 260, 262
internal groups Logical Server property
creating 179 defined 67, 72, 78, 82, 84
definition 26, 178 how changing affects process model regeneration 213, 215
IS documents use during process generation 202, 203, 204, 207, 208
editing contents 120 logical servers
editing instance names 120 see also Logical Server property
guidelines for subscribing steps to 119 and process generation 200
importance of using only once per model 119 assigning after 4.6 model migration 283
publishing to Broker 125 changing connection state 232
subscribing steps to 115 changing step by step vs. throughout process 231
when to create 31, 50, 183 creating release of package containing information for 243
IS folders, properties affecting generation of 202 defining and mapping to physical servers 44
definition 20
development vs. production 31
S start steps
sender role, assigning to external documents 112 and subscription documents 85, 110
sending external documents 136 defined 85
Server Connections dialog 231 guidelines for external document subscriptions 113
servers starting the Modeler 34
consequences to changing Associated Server 208 Step Lock Expiration (sec), PRT setting 254
logical, creating releases of package information for 243 steps
logical, definition 20 and step logic 148
mapping logical to physical 44 changing icons 105
mappings and process deployment 234, 238 collapsing into a subprocess 25
physical, relation to logical servers 20 controlling pipeline logging 54, 71, 77, 81, 258, 260, 261
service packs, Modeler and IS 71, 77, 81, 248 controlling visual properties of 105
Service to Invoke property definition and overview 23, 66
definition 68 enabling resubmission in Monitor 71, 77, 81, 256, 261
how changing affects process model regeneration 213 end steps 86
influence on generated flow services 149 how groups affect 178
use during process generation 149, 203 information flow into and out of 24, 108
services join steps 88
caution about ProcessData variable 150 overview 66
guidelines for working with step logic 149 process-wide error steps 87
helpful PRT services 150 properties of referenced process steps 273
how Modeler generates flow services for steps 149 properties of regular steps 67
important flow sequence for external document access 112 referenced process steps 25, 89, 272
mapping generated flow to user-defined 149 start steps 85
procedure for assigning to steps 150 step functions and types 85
properties affecting generation of 203, 204 subprocess steps 25, 90
relationship to steps 148 using filters 24, 139
replacing service a step invokes 149 Workflow step guidelines 104
Service to Invoke property 68, 149 Workflow steps overview 23
that control a process’s run-time status 150 Steps Enable Resubmission option 71, 77, 81, 256, 261
that create and log activity messages 150 subprocesses
that send external documents 136 accessing and editing 91
types that you can add to steps 148 definition 25, 90
working with correlation services 152 procedure for establishing 90
shutting down the Modeler 35 subscription documents
SP, Modeler and IS 71, 77, 81, 248 and start steps 85, 110
splits external, and start steps 113
definition 25, 163 overview and definition 24
forming 163 subscribing to external documents 110
guidelines for creating 170 subscribing to IS documents 115
W X
webMethods Modeler XOR joins
and business process management 17 and return join types 274
description 16, 18 caution using with loops 171
design-time architecture 20 definition 89
getting started 34
how it relates to webMethods platform 17
use at design time 20
webMethods Monitor
and webMethods Modeler architecture 19
description 19
use during process run time 30
webMethods platform
documents to communicate between components of 24, 108
relationship to webMethods Modeler 17
webMethods Trading Networks
documents to and from 24, 108
webMethods Workflow
and webMethods Modeler architecture 19
consequences of changing Associated Server 208
description 19
two servers Workflow steps generate to 206
use at design time 21
use during process run time 29
WmModeler package, description 18
Workflow logic
and deploying process models 245
assigning to steps 151
deploying workflows to production environment 245
guidelines 151
properties affecting generation of Workflow projects 207
properties affecting generation of workflows 208
Workflow Servers
items Modeler generates for processes 205, 206
properties affecting implementation modules generated for
processes 207
properties affecting projects generated for processes 207
properties affecting workflows generated for processes 208
Workflow to Invoke property
how changing affects process model regeneration 216
use during process generation 208