Equivalence Table: iProcess to BPM

This table covers equivalence between iProcess and BPM objects.

iProcess BPM
Project Objects
None Project
Package A package will be created for each iProcess procedure even where there were multiple procedures in each iProcess XPDL package.
Procedure Process
I/O Parameter Template Process Interface

Sub-Procedure (Process referenced by an reusable sub-procedure call or a process that has formal parameters)

Sub-Process

All participants appear in the Users or Roles column in iProcess. An additional administrative task in the iProcess Engine is to create the required users and groups.

Package level participant

Field.

Data Field (Package and Process)

I/O parameter and field.

The mandatory flag on an process formal parameter is equivalent to the Required column in iProcess. This column is on the Procedure > IO Parameters menu in iProcess when defining a sub-procedure. Using the mandatory flag means that the sub-procedure requires this parameter to always be supplied.

Process Formal Parameter
Activities and Tasks
Sub-Procedure call Reusable Sub-Process

Enterprise Application Integration (EAI) step with the appropriate type set.

Service Tasks

EAI Script step

Script Task

Complex router

Task Type (None)
iProcess Event Receive Task
User Step User Task
User step participant, depending on addressee type User Task Participant

Field = Performer Data Field, all other types = Org Model Query Participant (with query fetch org model resource with same name as addressee e.g. "resource(name = “CallOperators”) )

Formflow Form URL User Task Form URL

Field instance on iProcess form or Formflow parameter.

User Task Parameter

Script object

User Task Script
EAI Mail Email service task
EAI DB step Database-Stored Procedure service task
Transaction Control Steps
No direct equivalent for this activity type in BPM: the difference between iProcess and BPM runtimes that affect this behavior is that in iProcess, contiguous EAI steps are run in a single database transaction and therefore the Commit step would perform an 'earlier than expected commit' between these whereas in BPM a commit is performed after each and every task and event.
  • Commit steps: are converted to a Task type None activity.
  • Abort steps: are converted to a Task type None activity with an associated FIXME text annotation describing that there is no equivalent of abort step in BPM.
Delayed Release/EAI Withdraw

Delayed release is handled as two separate activities; a Service Task that performs the action on external system followed by a Receive Task that holds the flow until it is triggered via web service invocation.

Events
Start/Stop Start/End Event

In-flow event "Standalone Event handler"

Receive Task Message Event

Deadline expression

Timer Event Script

Deadline on iProcess step Timer event on equivalent task boundary with equivalent withdraw / continue on timeout setting.

Timer Event (on Task boundary)

Withdraw link

Signal Event pair (throw and catch on task boundary)

Gateways
Complex Router Task type none (small green)

Condition with the Expression defined by the condition on the conditional Sequence Flow:

Gateway with one input, one conditional output, and optionally one default output

Wait

Parallel Gateway (multiple unconditional input)

Connecting Objects
Deadlines Link

Sequence Flows from a Timer Event (attached to task boundary)

Diagram Annotation Text Annotation
Swimlanes
Lanes in single automatically created Pool Lane
Naming
Step Name Activity/Task Name
Description Label
Extended Description Label
Leading Digit Process Content Naming Restrictions For WSDL Generation iProcess procedure content names are generally reasonably restricted to be within a subset of permitted character set for the equivalent artifact in BPM.
Note: Where the artifact name has leading digits, the WSDL content NCNames derived from it will be prefixed with underscore.
Arrays
Array[....] (with explicit index specification using square bracket notation) Two new JavaScript methods:
  • ScriptUtil.setArrayElement(arrayField, index, value) which allows an existing array element (or the next additional element at end of current list) to be set.
  • ScriptUtil.getArrayElement(arrayField, index) which allows an existing element to be read from the list where null is returned if a non-existent element index is specified.
Note: In ActiveMatrix BPM, arrays are implemented as JavaScript list objects. Therefore elements must be added contiguously starting from index = 0 (this was not necessary in iProcess).
Arrays with implicit index specification (via SW_GEN_IDX or IDX_xxx index field)

Not supported: these will result in script problem markers that must be addressed manually.

Scripting
Standalone Script Object

Calls to standalone scripts using CALL("SCRIPT") have the content of the referenced script inserted in place of the call.

Script calls using SCRIPT("SCRIPT", param, ...) method cannot be used because of the parameter variables. A commented out version of these is inserted.

Unsupported iProcessScript SPECIALCHARS Function JavaScript string with special character notation (\n = newline etc)
SW_ fields:

SW_NA

SW_TIME

SW_DATE

SW_PRONAME

SW_CP_VALUE

SW_CASENUM

All others
BPM Javascript Equivalent:

null

DateTimeUtil.createTime()

DateTImeUtil.createDate()

Process.getName()

Process.priority

Process.getId()

Note: References to other SW_ system values in scripts will require additional human intervention as getId() returns string (so depends how SW_CASENUM was used) and hence there maybe problem markers to resolve.