Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Chapter 13 Transforming iProcess Procedures into the Workflow Standard XML Process Definition Language (XPDL) : Understanding Translation Concepts

Understanding Translation Concepts
Some iProcess procedure entities map to XPDL entities and some do not. Therefore, you need to understand how iProcess procedures are transformed into XPDL and vice versa. This is especially true if you are going to perform the transformation more than once. For example, transforming an iProcess procedure to XPDL and then back to iProcess. This is because you may lose something that you have configured in the iProcess procedure because it is not recognized in XPDL.
Overview
When transforming XPDL into an iProcess procedure, if the XPDL source uses concepts or entities that are not supported by iProcess, the concept is either ignored or converted to the nearest possible concept within iProcess. This means that usually an incomplete procedure is created. The procedure can be edited in the TIBCO iProcess Modeler to make it complete.
When transforming an iProcess procedure into XPDL, where the iProcess procedure and XPDL entities map, the iProcess procedure entities are converted to XPDL entities. The parts of the iProcess procedure that do not map are stored as extended attributes.
All iProcess procedure XPDL extended attributes are optional. This means that iProcess Workspace (Windows) will load XPDL that does not have any iProcess extended attributes defined. See Understanding XPDL Produced From an iProcess Procedure.
How iProcess Procedure Entities and XPDL Entities Map Together
To understand how XPDL transforms into an iProcess procedure and vice versa, you need to understand how iProcess entities map to their equivalent XPDL entities. The following table gives a general description of how iProcess entities map to their equivalent XPDL entities. For more detailed information about how iProcess entities transform into XPDL entities, see How iProcess Transforms to XPDL.
Procedure. A procedure consists of steps. Each step is a unit of work. The procedure defines the relationships between those steps.
Workflow Process. A Workflow Process consists of activities. Each activity is a unit of work. The workflow process defines the relationships between those activities.
Fields. Fields store the business data that is created and used in the procedure.
Workflow Relevant Data. The business data that is created and used as part of the workflow process.
iProcess Users and Groups. The user/group on whose behalf the actions are performed, as a result of the step.
Participants are descriptions of resources that can act as the performer of the various activities in the process definition.
Form Definitions and EAI steps. The form definition is displayed at run-time and enables the user to amend information required by the process. EAI steps enable integration between external applications and iProcess.
Applications. The applications or interfaces which may be invoked by the workflow service to support, or wholly automate, the processing associated with each activity.
Normal Steps, EAI Steps, Sub-Procedure Call Steps, Dynamic Sub-Procedure Call Steps, Graft Steps. Each of these steps can be used to perform a specific activity that make up the workflow process.
Activity. The activities define each elementary activity that makes up a workflow process.
Links. Data in the workflow process is processed depending on how the steps are linked together.
Transitions. Activities are linked by transitions. Each individual transition has three elementary properties, the from-activity, the to-activity and the condition under which the transition is made. The transitions within a process may result in the sequential or parallel operation of individual activities within the process.
XPDL Entities That do Not Map to iProcess Procedure Entities
This section describes the entities in iProcess procedures and XPDL that do not map to each other.
Activity Sets
If you have any activity sets in your XPDL source, they are ignored by iProcess when the XPDL source is transformed into an iProcess procedure. In iProcess, all sub-processes are defined as sub-procedures. Therefore, you have to use sub-procedures instead of activity sets for each process that you wanted to define as a sub-procedure in iProcess.
Package Level Applications, Participants and Data Fields
If your XPDL source contains package level applications, participants and data fields, they are ignored when the XPDL source is transformed into an iProcess procedure. This is because iProcess applications, participants and data are defined for each procedure. iProcess has no concept of global data. Therefore, you need to duplicate package level applications, participants and data for each iProcess procedure in the TIBCO iProcess Modeler once you have loaded the XPDL source.
Conditions
Both XPDL and iProcess procedures enable you to process your data from one activity to another depending on a condition. However, XPDL and iProcess handle conditions differently from each other.
In XPDL, conditions are defined as part of a transition. Each transition can have its own condition and an activity can have multiple branches. The diagram below demonstrates an example of a condition in XPDL:
In this example, when Activity 1 completes then
iProcess uses a condition object to define conditions. Conditions cannot be defined as part of a link. This means that in iProcess, each step that requires a condition must have its own condition object. The same example above would be represented in an iProcess procedure as follows:
If you are transforming XPDL into an iProcess procedure, you can either:
in the XPDL source, create a route activity for each condition. iProcess only transforms conditional transitions that come from route activities into an iProcess procedure condition object.
or
If you do not amend the XPDL source to take into account how iProcess handles conditions, then iProcess transforms the XPDL source as follows:
All conditions from activities other than route activities are ignored. iProcess only transforms conditional transitions that come from route activities into an iProcess procedure condition object in the iProcess procedure.
If multiple conditional transitions come from a route activity then iProcess transforms the condition from the first transition into an iProcess procedure condition object. All subsequent conditions are created as link labels. This enables you to see the conditions that have not had a condition object created for them so that you can create them later if you wish.
See Understanding XPDL Produced From an iProcess Procedure for information on how iProcess conditions are transformed into XPDL entities.
Joining Branches
In XPDL and iProcess, you can define a synchronization point in the process where parallel paths join together again. However, XPDL and iProcess handle this differently from each other.
In XPDL, you need to define an AND join as part of a transition between two activities. Each activity can have a join and an activity can have multiple branches. The diagram below demonstrates an example of a join in XPDL:
In this example, when Activity 1 completes then Activity 2, 3 and 4 are processed. Activity 5 does not start processing until Activities 2, 3 and 4 have completed. It is activity 5 that specifies the XPDL and Join.
iProcess uses a wait object to define joins. A join cannot be defined as part of a link. This means that in iProcess, each step that requires a join must have its own wait object. The same example above would be represented in an iProcess procedure as follows:
If you are transforming XPDL into iProcess, you can either,
in the XPDL source, create a route activity for each And Join. iProcess only transforms route activities with And Joins into an iProcess procedure wait object. In the above XPDL, you would insert a route activity before Activity 5 and specify the And Join on that.
or
If you do not amend the XPDL source to take into account how iProcess handles joins, then iProcess transforms the XPDL source as follows:
All joins from activities other than route activities are converted to XOR joins. iProcess only transforms join transitions that come from route activities into an iProcess procedure wait object.
See Understanding XPDL Produced From an iProcess Procedure for information on how iProcess Wait objects are transformed into XPDL entities.
Naming Conventions
The naming of some iProcess entities is more restrictive than their equivalent entities in XPDL. This means that when transforming XPDL source into an iProcess procedure, if the names of the XPDL entities do not match the naming conventions of the iProcess entities, they are transformed in iProcess as follows:
See TIBCO iProcess Modeler Getting Started and TIBCO iProcess Modeler Basic Design for information about the naming conventions of iProcess entities.
To work around this you can either:
or
import the XPDL source into iProcess. Once you have imported the XPDL source into iProcess, you can choose to amend the names or leave them as they are, depending on your requirements.
If you import the XPDL source into iProcess and allow iProcess to truncate the names, you could end up with duplicate names. This could be a problem, for example, if you are referencing a particular step name at run-time and there is more than one step with the same name.
See Understanding XPDL Produced From an iProcess Procedure for information on how iProcess names are transformed into XPDL entities.
Formal and Actual Parameters
iProcess has no equivalent concept to FormalParameters and ActualParameters that can be defined in XPDL. In XPDL, FormalParameters and ActualParameters define the input and output parameters to sub-process calls (both the sub-process that is calling and the sub-process that is being called). If you transform an XPDL source that has FormalParameters and ActualParameters defined, iProcess transforms these as follows:
it checks the FormalParameters and if the name of the FormalParameter matches a data field, it creates the field markings on the iProcess form definition with that name. Otherwise, the FormalParameters are ignored.
See Understanding XPDL Produced From an iProcess Procedure for information on how iProcess fields are transformed into XPDL entities.
Other Vendor Extended Attributes
If the XPDL source you are using has come from another vendor that has defined some extended attributes, these are ignored when you transform the XPDL into an iProcess procedure. To work around this, you can amend the XPDL source so that it transforms the extended attributes into valid iProcess extended attributes. You can do this either by:
or
iProcess Procedure Entities That do Not Map to XPDL Entities
The parts of the iProcess procedure that do not map are stored as extended attributes. See Understanding XPDL Produced From an iProcess Procedure.

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved