Professional Documents
Culture Documents
October 2010
Trademark Notice
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Author Chuck Jones, Fred Evers, Naveen Machana Contributors and Reviewers Jim Lange, Mary Keane, Tom Kauth, Stuart Dunsmore, Emily Chorba This book was published using:
Oracle Tutor
Table of Contents
Oracle Business Process Converter ..............................................................................................................1-1 Overview ........................................................................................................................................................1-3 Tutor System Requirements.......................................................................................................................1-4 Installing Oracle Business Process Converter ...........................................................................................1-7 Conversion Guide ..........................................................................................................................................1-13 General Conversion Rules .............................................................................................................................1-16 Converting from Tutor Documents .................................................................................................................1-24 Tutor Procedure to BPA .................................................................................................................................1-27 Tutor to BPA Data Conversion Map ...............................................................................................................1-33 Tutor Procedure to BPM ................................................................................................................................1-37 Converting to Tutor Documents from Oracle BPM Tools ...............................................................................1-41 BPA Model to Tutor........................................................................................................................................1-44 BPM Model to Tutor .......................................................................................................................................1-52 Converting from Visio Diagrams.....................................................................................................................1-56 Visio Model to Tutor .......................................................................................................................................1-57 Visio Model to BPA ........................................................................................................................................1-61 Visio Model to BPM........................................................................................................................................1-63 Converting from XPDL Files...........................................................................................................................1-66 XPDL Model to Tutor......................................................................................................................................1-67 XPDL Model to BPA.......................................................................................................................................1-70 XPDL Model to BPM ......................................................................................................................................1-73 Appendix 1: Architecture ................................................................................................................................1-76 Appendix 2: Visio Import Technical Details ....................................................................................................1-86 Appendix 3: XPDL Import Technical Details ..................................................................................................1-91 Appendix 4: Customizing XPDL Import with XSL Doc...................................................................................1-107 Appendix 5: Tutor Conversion Technical Details............................................................................................1-109
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Standards will continue to evolve over time, and Oracle Corporation is actively engaged with other marketleading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For additional information, visit the Oracle Accessibility Program Web site at http://www.oracle.com/accessibility/ . This documentation may contain links to Web sites of other companies or organizations that Oracle Corporation does not own or control. Oracle Corporation neither evaluates nor makes any representations regarding the accessibility of these Web sites.
Overview
The Oracle Business Process Converter (OBPC) is a significant enhancement to Oracle Tutor, which enables importing, and exporting of business process models between diagram and text based modeling tools. Models developed in Visio or any tool which provides an XPDL export can be imported into the Oracle Tools: Oracle Tutor, Oracle Business Process Architect 11g (BPA), and Oracle Business Process Management Suite 11g (BPM). In addition, models can be exchanged between Tutor, BPA, and BPM. The capabilities of the Oracle Tools provide a scope of process model development, management, and deployment, which is beyond the typical usage of stand-alone diagramming tools. Oracle BPA has significant enterprise process model architecture capability. Oracle BPM enables process model software development and execution. Oracle Tutor is used to create easy-to-understand procedures with text and diagram for end user training and productivity purposes. When used together, especially as enhanced by Tutors model conversion capability, the tools provide significant value to an organizations management of its business processes. Tutors model conversion capability has significant benefit during two phases of business process management. The first is during process discovery, the initial phase of developing process models or procedures. Many organizations have a large number of Visio diagram artifacts, which describe the way the organization does (or would like to do) its business. These can be imported directly into Tutor to accelerate the procedure development cycle. Whether new procedures are being used for end user training in an implementation or for process documentation in general, importing existing Visio diagrams can provide a significant acceleration. This is also true for any process model artifacts created in a modeling tool, which has XPDL export capability, such as Provision or Bizagi. The second area of benefit applies to organizations using a formal process modeling tool for generation of executable process driven applications or integrations. Importing Tutor, Visio, or XPDL models into BPA or BPM provides an initial process framework for developing executable models. It also provides the ability to keep IT oriented process models and end user process models in sync, allowing for a single enterprise process model to be used for dual purposes.
Tutor Author
Tutor Publisher X X
Adobe Acrobat 8.0/9.0 (this is a full default installation of Adobe Acrobat, not simply an installation of Acrobat Reader) Any antivirus program capable of detecting Word macro viruses; for example, Symantec AntiVirus A java-compliant web browser that supports cascading style sheets, for example Firefox 2.0 or higher or Internet Explorer 6.0 or higher Oracle Business Process Management Suite 11.1.1.4 Oracle Business Process Architect 11.1.1.3 Java v6.0 or greater
Note: Oracle Tutor supports documents written in the following languages, as well as these language versions of Windows and Microsoft Office: English Western European Eastern European Simplified and Traditional Chinese (Tutor Authors user interface is available in these languages) Japanese (Tutor Authors user interface is available in this language) Korean (Tutor Authors user interface is available in this language) When writing Tutor documents in other languages and interfaces, both Windows and Office must be in the same language as the documents you are writing. Do not mix languages.
Hardware Requirements A minimum 1 Ghz Pentium personal or multimedia computer 2 GB of RAM minimum 5 GB free hard disk space CD-ROM VGA or higher-resolution video adapter (Super VGA, 256-color or higher recommended) Mouse or compatible pointing device X
Tutor Author
Tutor Publisher X
X X Optional X
Using Tutor and Oracle E-Business Suite Online Help One of the Tutor features allows you to customize online help files that reside in the E-Business Suite applications. You can also link the help file to related procedure documents or do the reverse and link Tutor procedures to a particular help file. The E-Business Suite online help files are written in HTML code and are stored in the database. Oracle standards prohibit writing data directly to the database, hence the use of Oracle forms to add and maintain entries to the database. The Online Help works in a similar format. The Oracle Applications Help System Utility has specifically been designed for this Tutor feature that allows the conversion of the HTML online help to Word for editing. This program will extract the online help by product, store the HTML documents in a middle tier (server) and allow conversion to Word and editing to Word documents. Your System Administrator will need to initialize the configuration of the Help System Utility so that it is downloading to and uploading from the correct server. The System Administrator and Document Administrator will need to maintain the language directory and the appropriate product subdirectories while downloading and uploading files. Clients will determine the placement of their documents at installation time. For example, Author and Publisher software tools will be loaded on a PC and the documents loaded on a server. In this instance, the system administrator will need to allocate space to store the downloaded HTML help files. The Document Specialists will need privileges to this server to convert the documents to Word, edit documents and convert the documents to HTML. The Document Administrator (uses Publisher software) may be the designated person at the client site to download the documents to the server. Proper system administration privileges will be required for access to the server. If the middle tier server is a UNIX server, files cannot be directly accessed. The UNIX server will require use of FTP (File Transfer Protocol) to move the files from the middle tier to the database. The Help System Utility is available in Oracle EBS Applications release 11.5.2 and above.
Installing OBPC
A prerequisite for an installation of Oracle Business Process Converter is the installation of Tutor Author. Refer to the Tutor Installation Manual for the following information Installing Tutor Author Installing Tutor Publisher Tutor System Requirements Whats New in Tutor Author Whats New in Tutor Publisher Verifying Tutor Software Installation
Prerequisites
Desired Functionality Import Tutor procedure to BPA Required Software Tutor Author 14, Microsoft Office 2003 or 2007, Oracle Business Process Architect 11.1.1.3, Oracle Business Process Converter Tutor Author 14, Microsoft Office 2003 or 2007, Oracle Business Process Management Suite 11.1.1.4, Oracle Business Process Converter Tutor Author 14, Microsoft Office 2003 or 2007, Oracle Business Process Architect 11.1.1.3, Oracle Business Process Converter Tutor Author 14, Microsoft Office 2003 or 2007, Oracle Business Process Management Suite 11.1.1.4, Oracle Business Process Converter Tutor Author 14, Microsoft Visio 2003 or 2007 Microsoft Visio 2003 or 2007, Oracle Business Process Architect 11.1.1.3, Oracle Business Process Converter Microsoft Visio 2003 or 2007, Oracle Business Process Management Suite 11.1.1.4, Oracle Business Process Converter Tutor Author 14 Oracle Business Process Architect 11.1.1.3, Oracle Business Process Converter Oracle Business Process Management Suite 11.1.1.4, Oracle Business Process Converter
Import Visio model to Tutor Import Visio model to BPA Import Visio model to BPM
Import XPDL model to Tutor Import XPDL model to BPA Import XPDL model to BPM
Installation information for Tutor Author and Tutor Publisher is located in the Tutor Installation Manual. Please note that there is no auto installer for the Oracle Business Process Converter. 1. Verify Java is installed. If you have previously installed Java, goto task #3. Otherwise, goto task #2. 2. Install Java. Navigate to java.com Install Java 3. Unzip the install package to a temporary folder. If you are installing the converter for BPA, goto task #4. If you are installing the converter for BPM, goto task #15. 4. Make sure that BPA Suite is not running.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
5. 6. 7.
8. 9.
Locate your BPA Suite directory. The default is C:\Program Files Oracle BPA Suite11g Navigate to \Program Files Oracle BPA Suite11g\LocalServer Copy the installation files to BPA Suite Locate the installation files in the temporary folder Copy all files and subfolders in the BPA\LocalServer directory to the :\Program Files\Oracle BPA Suite<version>\LocalServer Overwrite files if asked Start BPA Import the filter BPA Suite Administration Module (left panel) > LOCAL > Configuration > Conventions > Filter Right-click on Filter Choose Import
Browse to the location of Oracle Tutor BPA Filter.amc This file is located at the same level as the bpa directory within the installation files. Check all the boxes in the dialog box
Click OK 10. Import the Template BPA Suite Administration Module (left panel) > LOCAL > Configuration > Conventions > Template Right-click on Template. Choose Import
Browse to the Oracle Tutor BPMN.act file. This file is located at the same level as the bpa directory within the installation files. Check all the boxes in the dialog box Click OK 11. Verify the reports have been installed.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
Oracle BPA Suite Script Editor (left-side panel) > Local > Reports > Tutor Verify Tutor reports have been installed. 12. Verify the macros have been installed. Oracle BPA Suite Script Editor (left-side panel) > Local > Macros > Tutor Verify Tutor macros have been installed. 13. Add the Macros to the user interface. Oracle BPA Suite Evaluate > Configure Macros Locate Import Tutor Procedure Choose an icon Check the box in the Toolbar column Check the box in the Menu column
Repeat for the following macros, choosing different icons for each macro if desired. Export Tutor Procedure Import Visio Diagram Import XPDL Link imported models 14. Configure user preferences Oracle BPA Suite View > Options > Log In Set the Filter choice to Oracle Tutor BPA Filter You will need to change the server to LOCAL to see the filters.
Oracle BPA Suite View > Options > Model > For New Models > Representation Set Current template to Oracle Tutor BPMN Click on Model type-specific templates Choose Business process diagram (BPMN) and expand the list of available templates Select Oracle Tutor BPMN Click OK from both dialogs to save your changes Oracle BPA Suite View > Options > Model > For New Models > Connections Set Bridge height to 0 Set Rounding intensity to 25 Check the box New connections only right-angled
Oracle BPA Suite View > Options > Model > For New Models > Grid Check Use grid Set both Grid settings to 2 Click OK to close the Options dialog If you are also installing the integration for BPM, goto task #15. Otherwise, end of activity. 15. Install Tutor Integrator for BPM. The appropriate bundles to run BPM must be installed before continuing. Open JDeveloper Navigate to Help > Check for Updates Navigate through the wizard, choosing to add tutor_bpm_integrator.zip from the installation files. End of activity.
Conversion Guide
Approach
Organizations have a spectrum of requirements for managing business processes. On one end is the technical orientation that supports process driven development and execution. On the other end is the need to communicate approved business process information for training and guiding the business end user community. The Tutor Method recognizes three phases in BPM, Business Process Management. Business Process Discovery Process Discovery is the early part of the business process management cycle. Organizations may have existing model artifacts in a variety of formats, as well as undocumented processes. The objective of this phase is to define the current state of process in the organization: the way we do our work today. Oracle Tutor is an effective tool for developing the current state model for two reasons: Tutor is easy for business people to learn and use, and accelerates the capture of the current state. The OBPC component of Tutor provides the means to rapidly convert a variety of existing process diagrams, especially Visio content, reducing rework. Business Process Design and Orchestration Process Design and Orchestration address the future state model, or the way the organization wants or needs to do business in the future, based on the implementation of new systems, reorganizations, process improvement projects, or other forces driving redesign. During a new systems implementation, the current state models have to be tailored to match the new workflow demanded by the apps. When process models are being used to create executable applications, the current state models form the baseline for the process flow. Or when process models are being assembled into an Enterprise Process Architecture, all model content must be brought together and standardized. The Conversion from Tutor to BPA or Tutor to BPM is a rapid and efficient means to pull current state models into the formal modeling tool. Business Process Readiness Process Readiness demands that end users be effectively trained in how they will do their jobs in the new environment. Complex symbols from BPMN based diagrams are difficult for end users to understand. The conversion of content from BPA to Tutor or BPM to Tutor makes deployment to end users significantly easier. The text based process information, deployed by Tutor in a linked body of content, is easy for users to access and consume, enabling a rapid ramp up to productive work in the new environment.
Model Conversion
The conversion of models from source to target follows general transformation rules and has guidelines and constraints. When these are understood, the process of converting models will flow smoothly. In addition, it would be wise to consider the Use Case, which will drive the majority of conversions, and plan accordingly. During a formal project, best practice is to identify resources responsible for specific areas and manage the conversion with a defined process. Roles should include: Process Owners, responsible for the accuracy of model content from a business perspective Tool Specialists, responsible for training or content development
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
A Content Administrator, responsible for managing the content development and deployment cycles Enterprise Architects, responsible for overall process model integrity Developers, responsible for development, testing, and deployment of executable models Trainers, responsible for ensuring end user readiness Useful information on project roles and the Tutor Methodology can be found in the Tutor Implementation Guide.
Use Cases
Organizations can use Tutor OBPC to convert models for different purposes at different times. Understanding the use case will help to identify how to prepare content, and when to correct content for accuracy. Keep in mind that the intent of the conversion capability is to provide as complete a conversion as possible given the limits of source models and target tool capabilities, and some post conversion cleanup may be required. Model Artifacts to Tutor, BPA, or BPM During the initial phase of an implementation or process modeling project, the organization will collect existing models developed with Visio or a tool providing XPDL export. Conversion of these models is typically a one-time event. A wide variety of modeling standards or templates may have been used during the initial creation of these models. In brief, the following steps will be followed to convert the files: Review a representative set of the model content. Follow the Source Model Preparation advice found below when it is efficient or necessary to do so, such as in the case of ungrouping sets of objects in Visio models. Convert several models and review the results. If a frequently used model object has not been recognized and converted during the process, use the OBPC conversion table to map incoming template objects to target objects as described in the section Customizing OBPC and retest. After initial preparation, convert the models to the source application and clean up the converted content as necessary. The source models will be left behind, and, from that point forward, the approved model content will reside in the target application and all further enhancements or corrections will occur there. Tutor Procedures to BPA or BPM Tutor is an excellent tool to develop or enhance the initial set of models during process discovery, as it is easy to learn and use, and allows for rapid and forgiving development of model content. After artifacts have been converted to Tutor, the To Be model can be quickly developed. From that point it is necessary to understand the function of BPA or BPM in the organization. What purpose is driving the use of the formal modeling tool? Is it for development of an enterprise process model architecture in BPA? Is it for the development of process driven execution as provided by BPM? Where will the source of truth be stored? When will the source of truth be formally defined? The answers to these and other questions will guide the process of converting Tutor content to BPA or BPM. Tutor can be used to develop or revise content until a model or group of models is finalized in the target application. After this, the Tutor procedures can be deployed using Tutor Publisher and used for end user training purposes. Note that Tutor creates organizational oriented policy content as well as second level task content which will be converted and stored in the target model but which will not typically appear
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
in the model diagram. This content will be of high value to the end user community and should be maintained in Tutor, and it will impact the content management cycle. Once the model content has been formally established in BPA or BPM, using Tutor to make revisions must be assessed and carefully managed. For example, it may be appropriate to make a revision to a model in Tutor and import it into BPA to replace an existing model. However, in BPM, there are many implementation or deployment attributes assigned to the process model elements, and import of Tutor content may not be appropriate to an existing model scenario. BPA or BPM Process Models to Tutor Understanding the most effective use of the content deployed by these applications provides the guidelines for converting models back into Tutor. In some cases, initial model development may have been done in BPA or BPM and models will be converted to Tutor to populate an initial set of procedures. In another scenario, models may have been developed in Tutor and passed to BPA or BPM. The organization must decide where the source of truth resides, how it can be modified, and when to redeploy model content into Tutor for end user consumption. In this scenario, remember that Tutors capability to create policy and second level task information will need to be considered. An organization could decide that all event, task, and gateway content will be managed on the source application, and all policy and task notes will be deployed in Tutor. In that case, when a revision takes place in the source, it may be appropriate to make the revision manually in Tutor so as not to override existing content.
When converting to Tutor, the resulting model should be carefully reviewed for accuracy, fluency, and flow. What is clear in a diagram might be awkward in converted text. For example, a decision in a diagram might be represented as a diamond with the text Does Adverse Event(s) Meet Criteria as being Serious:
This will be converted to a Directive in Tutor, which reads: If Does Adverse Event(s) Meet Criteria as being Serious, Goto task #2. Otherwise, End of activity:
What is clear in the diagram becomes difficult to understand in text, and if the procedure is being deployed to the end user community, clear language should be used. This may require a change to the source model if that model is not an artifact being left behind. Best practice would be to test the conversion of a subset of diagram based models to the text of Tutor, review the results, and modify or review for accurate adherence the standards used in the source model.
context of the model flow. Note the diagram below. It is clear that the gateway following the task Identify Method of Creation is used to select different sequences of tasks based on the Creation Method. If the user is to copy an existing report, they will take the top flow path. When presented with this diagram, a business user will understand the choice and the path to follow.
However, in the organization using multiple modeling tools, the business user is more likely to be presented with the Tutor procedure of the same model. The advantages of Tutor content make this the most effective tool for end user deployment. The challenge is to develop the content to work for both IT modeling/execution and user communication as well as in both diagram format and Tutor text format. When the above model is converted to Tutor, the task list will be as follows: 3. Identify Method of creation If ????, Goto task #4. If ????, Goto task #5. If ????, Goto task #6. Since there is no text in the gateway, and no text associated with the sequence flow lines, there is no way to translate to an effective set of directives in Tutor. Now review the same model but with text in the gateway and sequence flows.
The conversion to Tutor is: 3. Identify Method of creation If Method of creation is Copy, Goto task #4. If Method of creation is New, Goto task #5. If Method of creation is Import, Goto task #6. The meaning is now clear in the Tutor Procedure. Many similar examples can be developed of process information that is clear through context in a diagram, but unclear when converted to the analogous text. Content developers in an organization using multiple tools should understand the Tutor best practices for developing content and should enforce them in the diagram based tool if the process documentation is being developed there initially. More information can be found in the Tutor user manual Procedure Style Guide, but here is a summary for developing content in a diagram based modeling tool that is intended to be converted to Tutor. Events. An event is can be generally described as the receipt of a message. While neither Start Events nor End Events are currently translated into Tutor, Intermediate events are translated as tasks. When naming events, use the standard format Receive <Message>. Using this approach, an intermediate event titled Receive RFP will be translated to the Tutor task Receive RFP. Tasks. Standard format is <Verb><Object>, and keep it reasonably short. Examples: Enter time and payments. Review expenses. Gateways. Describe the essential decision in a short phrase. Standard format is <Noun phrase>. This will be converted in Tutor to If <Noun Phrase> is <Sequence Flow Name>, goto task #n. Frequently the sequence flow will be labeled Yes or No. Examples: All checks are correctly printed? Supplier has been placed on hold? Note that when the gateway has more than two sequence flows exiting, it is even more critical to label the flows.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
In diagrams of business processes, it is frequently seen that multiple sequence flows converge on a single gateway. In Tutor, a Goto must point to a task. Therefore, some gateways are converted to tasks when to accommodate multiple Gotos referencing that step. In the diagram below, two sequence flows converge on the gateway Supplier Setup Missing?
The conversion to Tutor will create a new Task, Determine if Supplier Setup Missing so that the Goto Task #25 can point to it.
Note that in other cases a gateway can become a task. Each conversion of this nature will be documented in the Conversion Notes section.
Sequence Flows. When a sequence flow exits a gateway, it is important for it to be labeled clearly. This will be used in the Tutor Directive to guide the path. For example, the Gateway below is clearly labeled and will convert to a clear-stacked Directive in Tutor.
The Tutor conversion will read: If Order type is Normal, Goto task #3. If Order type is Special Processing, Goto task #2. If Order type is Expedite, Goto task #4. If Order type is Hazardous Material, End of activity
When converted to Tutor, the task list and flowchart appear as follows. This format will be found no matter what source the incoming model is from.
Conversion Performance
When converting a large file or many files, it is advisable to exit other applications that may use significant memory.
The next example shows the task segment, including the prior activity, the actor, the tasks, task notes, system navigation reference (shown as boxed text), a conditional (If) directive, and two unconditional directives: an End of Activity directive and a Goto directive pointing to the next procedure in sequence. Included in the example are the Tutor paragraph styles in the left column. These are used by OBPC to map conversion of text lines to BPM objects. See the Tutor Author User Manual for more detailed information about Tutor procedure formatting.
The following is the flowchart generated by Tutor from the process information in the task segment above.
An option will be provided to modify the name of the primary pool being created. The default pool name is Enterprise.
A status bar will indicate the progress of the conversion, and, when complete, a model will open in BPA Designer Mode.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
Expected Results
The import of a Tutor process document to a BPA process model is composed of two types of conversion activities: the re-creation of the process model from text to diagram, and the storage of process related data into attributes. The essential process elements converted from Tutor to BPA are: Tutor Element Prior Activity Actor Task Task followed by box text If Directive In Parallel Directive Stop and Complete Directive Goto Directive End of Activity Directive Goto Directive following End of Activity Tasks in uninterrupted sequence BPA Element Collapsed SubProcess followed by Message Flow Swimlane Manual Task User Interaction Task Gateway Parallel Gateway Collapsed SubProcess Sequence Flow End Event Message Flow followed by Collapsed Subprocess Sequence Flow
With this basic set of Tutor text based process elements, the BPA diagram is created. Note that many of the more complex process elements in BPMN, such as Complex Gateways, are not supported within Tutor, and there is no conversion algorithm to BPA. When the Tutor procedure Cash Transfers is imported into BPA, the conversion generates a swimlane diagram, which appears in the Oracle Tutor BPMN Template as shown in the example below. Note that the Oracle Tutor BPMN Template, loaded during the installation process, is used to populate the symbols in the model.
There are three pools: the prior activities, the post process activities, and the enterprise. The lanes in the enterprise pool correspond to the actor names in the procedure, in this case Vice President of Finance and General Accounting Manager. Tasks map one to one, and the conditional (If) directive has been converted to a Gateway. Start and End Tasks have been added. Notice the difference in format between the fourth and fifth tasks:
The first task is a Manual Task, and uses the manual task symbol from the Tutor template in BPA. The next task has been converted to a System Supported or User Interaction Task because it was followed in the Tutor procedure by a system reference (as indicated by the box text paragraph style) or navigation to the transaction supporting it.
In the screen shot below, the attributes for this task are shown, and the navigation information can be seen in both the Description/Definition attribute and the XML Content attribute. The application name (E-Business Suite General Ledger), that appears as text above the task, maps to the System Application attribute.
The remainder of the content in Tutor is the introductory information (organizational and policy content) that precedes the task segment (process content), and the notes attached to tasks. These are stored in attributes in BPA, and a full mapping is provided.
Below is an example of the conversion of these elements. These attributes belong to the model itself; so the organizational and policy content is stored at the model level. Notice that the text in the Description/Definition attribute in the following example contains the Scope, Policy, Responsibility, and other content appearing in the introductory segment.
Below is an example of how task notes are stored. The attributes of task 3 contain the task notes (refer to Tutor Procedure Example Task Segment).
This would be the .XML property of the node in Documentation the Tutor namespace that represents all of the text from the start of the document up to (but not including) the taskSegment element.
Oracle Tutor Task (Task 1) Information Subordinate Task (Task 2, notes, System Reference, etc following a task) Information Activity following 'End of Activity' Statement
Diagram Pool called post process activities, underlined phrase becomes a collapsed subprocess
Model
Prior Activity, Stop and Complete, or post End- Process Reference of-Activity Goto Procedure ID reference
Task
Linking Models
Tutor Procedures typically contain references to other procedures: In the Prior Activity Sections From Stop and Complete directives From Goto Directives following the final End of Activity From Tutor Process and SubProcess models, stored as Reference documents Each of these Tutor elements creates a collapsed subprocess in BPA, with reference information stored appropriately. The Link Imported Models feature in BPA will create a set of linked models based on imported Tutor procedures. Users who are familiar with the hyperlinks within Tutor HTML documents will understand the similarity. The link feature uses the BPA attribute Process Reference associated with the collapsed subprocess and the identifier attribute of the model itself to establish the link. Prior to running the Link function, a collapsed subprocess appears like this:
How to Use this Feature Open BPA, and navigate to the Explorer Mode, and open a local database. Open a Group. Select the start macro icon on the toolbar or select Evaluate > Start Macro and choose Link Imported Models. Select an individual model or a group of models.
The Link Process will run, and when complete, the collapsed subprocess will appear as follows, with the BPA hierarchy symbol identifying that a process is linked to/from this subprocess.
Since Tutor Process and Subprocess documents (which begin with the prefix RE_) can be imported into BPA as well as procedures, the Link function will create the vertical links into that content. Example below:
Conversion Issues
BPA Task, Pool, Lane, and other objects have display names, which have a limit of 80 characters, thus incoming tasks longer than 80 characters will be truncated. The full task name will be loaded into the Full Name field. All text pertaining to a directive found between a directive and a task in a Tutor Procedure is assigned to the directive in the BPA model. It will not be found within the task attributes - it will appear as an attribute of the gateway.
A file selection dialog box will appear called Open. Navigate to a folder with the Tutor Procedure desired for conversion, and select it. A status dialog will present and inform as to import status.
Expected Results
Any conversion issues that require elimination or change to the inherent Tutor model will be depicted in a Conversion Notes box which can be reviewed and deleted.
The following image is a task list and flowchart from a Tutor procedure used as a source document for illustration purposes.
The following image is the resulting BPM business process as converted from the above procedure.
The import of a Tutor process document to a BPM process model is composed of two types of conversion activities: the re-creation of the process model from text to diagram, and the storage of process related data into attributes. The essential process elements converted from Tutor to BPM are: Tutor Element Prior Activity Actor Task Task followed by box text If Directive In Parallel Directive Stop and Complete Directive Goto Directive End of Activity Directive Goto Directive following End of Activity Tasks in uninterrupted sequence BPM Element Not converted Swimlane Manual Task User Task Exclusive Gateway Parallel Gateway SubProcess Sequence Flow End Event Not Converted Sequence Flow
Tutor content that does not comprise the essential process elements is stored as attributes of these elements. The Tutor Scope, Policy, and other organizational content is stored as an the description in the property of the initial swim lane:
Content associated with a task such as Task 2, Task List, or Box Text content is stored in the description in the property of the task:
Conversion Issues
BPM does not support multiple pools, so Prior and Post activities will not be imported into the BPM model.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
End Events
Tasks Task All Tasks are converted to Tutor Tasks. The name or description of the task becomes the text in the Tutor Task. SubProcesses performed by actors in a separate Pool at the start of a process are converted to body text in the Prior Activity Section of the Tutor Procedure. SubProcesses found in line are converted to Stop and Complete Directives in Tutor, with the name or description placed after the phrase Stop and Complete. SubProcesses performed by actors in a separate Pool at the end of a process are converted to Goto Directives at the end of the Tutor Procedure, with the name or description placed after the phrase Goto.
SubProcess
Pools & Lanes Pools Pools are not converted into Tutor Text.
Lanes
Lanes are converted into Actor Bars in Tutor, and the Pool name becomes the Actor name in the Bar.
Gateways Data Gateway Data Gateways are converted to If Directives in Tutor. Exclusive Gateways are converted to If Directives in Tutor. Inclusive Gateways are converted to If Directives in Tutor.
Complex Gateway
Complex Gateways are converted to If Directives in Tutor. Event Based Gateways are converted to If Directives in Tutor. Parallel Gateways are converted to If Directives in Tutor. If the Gateway has text, it is used in the If Statement. If the Gateway has no text, the text associated with the sequence flows is used in the If Statement. If the Gateway & Sequence flows have no text, ???? is used in the If Statement.
Click OK. Open Macros. Select Tutor. Right Click on Export Tutor Document. Select Properties. Select Context. In the Model pane check the models to be exported. Click OK.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
A dialog box will open providing the option to select one pool or all pools from the model. In multi-pool models, each pool typically represents a single organization. When the Tutor procedure is created with all pools selected, a single procedure is built with all lanes converted to actors in an implied single organization in the Tutor document.
Expected Results
The Tutor procedure created by exporting from BPA will conform to Tutor Author standards; however, the only attributes of the introductory segment that will be converted to the Tutor procedure will be the Distribution and Ownership sections. BPA Model As an example of a conversion, below is a model called Hire in BPA.
Model Converted to Tutor Procedure The first thing to notice in the newly created Tutor Procedure is the Conversion Notes section. Each element of the conversion, which is not included or is modified from the original due to conversion rules is annotated in this section. Below are the conversion notes from the model above, and it can be reviewed as a sample of the types of issues that are managed in a conversion. For example, since the pools were combined, message flows, which are typically found between pools, were converted to sequence flows, resulting in sequentially placed tasks in the procedure.
Below is an example of the introductory segment (organization and policy section) as it is created in the conversion. Note that the actors in the Distribution section came from the lanes in the original model, or in this case, since all the pools were converted, the pool name Applicant became the lane name.
The next page shows the task segment section of the Tutor procedure, converted from the Hire model. Compare it to the BPA model, and note the following: The flow begins from the primary Start Event in BPA and follows a logical sequence to the End Event, although there are neither Start nor End Events in the Tutor process. As noted in the Conversion notes, some superfluous flows have been removed for clarity. The logic remains essentially the same. The Actors are derived from the Lane names. The third task, Make Offer to Top Candidate, has three sequence flows emerging from it. These are treated as a parallel gateway, with unconditional directives (Goto) pointing to the respective tasks. The sequence flows after the Exclusive Gateway Accept Offer? are named, and they become the objects in the conditional (If) directives (If Accept Offer is No) The Intermediate Events are converted to tasks, to which the Event Gateway Sequence Flows point.
BPA to Tutor Symbol Conversion Map: Exceptions to Standard BPMN Symbol Mapping Refer to the section titled Conversion of BPMN Symbols to Tutor Text for the standard mapping of BPMN symbols to Tutor text. The table below identifies exceptions or additions to that table BPA Symbol Name Automated Activity BPA Symbol Tutor Text Automated Activities are not translated to Tutor. Tutor tasks are Manual or Systems Supported, and pure automated tasks are not communicated in the Procedure document Human Tasks are converted to Tutor Tasks. The name or description of the task becomes the text in the Tutor Task. User Interaction functions are converted to Tutor tasks. If the task attribute System Application contains a value, a Box Text style is created in Tutor, which contains the System Reference. If there is no value in the System Application attribute, no box text is created.
Human Task
Conversion Issues
For the best representation of human tasks (systems supported tasks) in both BPA and Tutor, best practice is to depict one human task per system function, such as transaction or report. In BPA it is possible to reuse objects while creating models, and the copied objects will inherit the attributes of the original. This can create unexpected results when a BPA model is converted to Tutor. If unexpected names are found in the Tutor Procedure, check to see if objects are reused.
Automated tasks in BPA are not converted into Tutor. A model with a task set as below will be converted to Tutor as follows below. Notice the task Create Deal Structure is an Automated Task, and as such, will not be converted into Tutor.
The Tutor conversion of the above example results in this task list. The Automated Tasks (Create Deal Structure & Generate Quote Document) are not included and the sequence flows to the parallel or Inclusive Or gateway. In complex cases it can be difficult to follow the logic from the source to the target model. Best practice is to summarize large groups of Automated Tasks into a collapsed subprocess.
Expected Results
The Tutor procedure created by exporting from BPM will conform to Tutor Author standards, however, as with the BPA conversion, the only attributes of the introductory segment that will be converted to the Tutor procedure will be the Distribution and Ownership sections.
BPM Model As an example of a conversion, the following is a model called Request Quote in BPM.
Model Converted to Tutor Procedure As in any conversion to Tutor, a Conversion Notes section is created documenting changes from source to target. Each element of the conversion, which is not included or is modified from the original due to conversion rules is annotated in this section. Below are the conversion notes from the model above, and it can be reviewed as a sample of the types of issues that are managed in a conversion. For example, all Automated Tasks were removed, redundant gateways were removed, and tasks added to replace some gateways where multiple flows converged on one gateway.
The process content is converted to the Tutor Task section. As noted in the Conversion Notes, Automated Tasks are missing, new tasks are created where Gateways have multiple input flows to handle the use of Gotos, etc.
BPM to Tutor Symbol Conversion Map: Exceptions to Standard BPMN Symbol Mapping Refer to the section titled Conversion of BPMN Symbols to Tutor Text for the standard mapping of BPMN symbols to Tutor text. The table below identifies exceptions or additions to that table BPM Symbol Name BPM Symbol Business Rule Script Measurement Annotation Tutor Text Treated as an Automated Task, not translated. Treated as an Automated Task, not translated. Measurement artifacts not translated. Annotation artifacts not translated.
Conversion Issues
BPM makes a variety of distinctions between certain types of tasks, such as Interactive User Tasks and Interactive Manager Tasks. These distinctions are lost in the conversion to Tutor, and any not Automated Task is converted to a standard Tutor task. Similarly, no distinctions are made between Catch and Throw Event types.
Expected Results
Visio models contain a wide variety of symbols, which conform to a varying degree to BPMN notation. The general symbol conversion rules found in Appendix 1 will apply, but customers can map their own symbols as described in the Customizing OBPC section. Visio Model
Model Converted to Tutor Procedure Below is the task section of the procedure. The conversion notes and opening sections are not shown.
Conversion Issues
Some models use complex numbering schemes for task identification. When converted to Tutor, only Tutor numbering will be provided, unless the task number is part of the task name. In that case, revision of the content in Tutor is advised. Tutor currently cannot present text associated with Start or End events, and this text will not be converted.
Expected Results
Visio Model
BPA Model
Conversion Issues
BPA Task, Pool, Lane, and other objects have display names that have a limit of 80 characters. Incoming tasks longer than 80 characters will be truncated. The full task name will be loaded into the Full Name field. In a Visio diagram, it is possible to add connectors that attach to symbols other than events, gateways, or tasks. They can be attached to other connectors, groups, or to nothing at all. BPA will not render connections that are not attached to valid objects.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
If the model has multiple pools, the following options will be provided:
Expected Results
Visio Model
BPM Model
Conversion Issues
BPM does not currently have the capability to render multiple pools, so an option to combine pools will be provided during the Import. If taken, the pools will become lanes in the BPM model. Message flows will be turned into sequence flows. Superfluous flows may be removed. Sequence flow line placement will follow the BPM layout algorithm, which may result in overlapping lines. Unnamed objects will be given numbers as names in BPM.
Expected Results
XPDL export of models can contain slightly different symbols mapped to BPMN notation. The general symbol conversion rules found in Appendix 1 will apply. A mapping of XSLT must occur to ensure a correct conversion. Currently, the following tools are correctly mapped: Provision Bizagi Tibco
Model Converted to Tutor Procedure Below is the task section of the procedure. The conversion notes and opening sections are not shown. Intermediate events are converted into tasks. Since the task Bill Customer is an Automated Task, it is not converted.
Conversion Issues
Tutor currently has no way to present text associated with Start or End events, and this text will not be converted.
Expected Results
XPDL Model Here is an example of the same incoming model rendered in Bizagi.
BPA Model Below is the model after import into BPA. Note the use of the Oracle Tutor BPMN Template for the symbols.
Conversion Issues
BPA Task, Pool, Lane, and other objects have display names, which have a limit of 80 characters. Incoming tasks longer than 80 characters will be truncated. The full task name will be loaded into the Full Name field. The BPMN standard states that conditional flows connected to gateways should NOT display a diamond at the head of the line. Some XPDL models display a diamond on a conditional flow, which is not to standard and will not be converted.
Expected Results
XPDL Model Here is an example of the same model rendered in Bizagi as was used above.
BPM Model Below is the model after import into BPM. Compare the difference to the BPA model, including the merging of pools and conversion notes.
Conversion Issues
BPM does not currently have the capability to render multiple pools, so an option to combine pools will be provided during the Import. If taken, the pools will become lanes in the BPM model. Message flows will be turned into sequence flows. Superfluous flows may be removed. Sequence flow line placement will follow the BPM layout algorithm, which may result in overlapping lines. Unnamed objects will be given numbers as names in BPM.
Appendix 1: Architecture
OBPC is a file conversion application that consists of the OBPC BPMN common object model and several import modules that are each designed to read a particular type of source data. All of the components of the OBPC are implemented as Java classes. The OBPC BPMN common object model is closely modeled on BPMN 1.2, and can represent most process models featuring the set of elements defined in that specification. The import modules read data from their input source files, and convert the data they contain into BPMN objects in the OBPC BPMN common object model. The import modules allow the following formats to be imported into OBPC: Visio vdx files XPDL 2.1 conformant xpdl files Oracle Tutor documents. The diagram below illustrates the relationship between the OBPC common object model and the different import modules.
For each type of import the import module begins by reading the source file. In some cases, the source file is transformed by intermediary processes into data formatted in a way that can be consumed by the common object model. The end user can customize those transformations, and a section discussing each import process follows. In some cases, appendices are provided to provide details on how end users can customize the process to ensure an optimal import.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
Import Visio OBPC can import Visio 2007 and 2010 vdx files. On import, the Visio module will check a set of associations or mappings present in the Visio Mapping file (VisioMasterMap.xml). The Visio importer checks the master map for rules regarding how to map Visio elements to BPMN elements. A customer may extend this functionality by adding an additional Master named VisioUserMap.xml. [Details for developers are given in Appendix 2: Import Visio Technical Details.]
Once the Visio importer has determined how elements will be mapped, it populates the BPMN Common Object. This information is then passed into the Oracle Modeling Tools BPA or BPM, and a model is generated. In some cases OPBC must adjust the data to allow for a proper model. For example, it is possible to create models in Visio with multiple Pools, but BPM currently supports only one Pool per model. If a multi-pool XPDL model is imported via OBPC into BPM, the source pools must be merged into one pool.
At this point the model is edited entirely in the Oracle Modeling tool. Each of the tools has the option to export a model to Tutor (but not back to Visio or XPDL). Then next pages describe that process.
Visio to Tutor OBPCs integration with Tutor operates in the same way as it does in the description above. When a Visio file is selected for conversion, the VisioMasterMap.xml file is checked for mappings between Visio elements and BPMN elements. OBPC converts the Visio elements and populates the Common Object Model. The Common Object Model then passes its data to the Tutor Export module, and a Tutor document is generated. One Tutor document is generated for each page in the Visio file.
Import XPDL OBPC can import XPDL 2.1 conformant files. The XPDL module imports in a two-part process, first performing an initial transform, then populating the BPMN Common Object Model. The source model is transformed via XSLT to ensure it conforms to Oracle XPDL 2.1 format. Then the transformed XPDL file is used to populate the BPMN Common Model. During the initial transform, the XPDL module will check for a <Vendor/> element in the source XPDL file. It then checks for a reference to an XSLT stylesheet in the XSLFilePaths.xml file to see if there is a style sheet associated with models published by this vendor. This process gives OBPC the extensibility to process models that do not conform to XPDL 2.1. [See Appendix 3: XPDL Import Technical Details on how to add a custom style sheet to enhance OBPCs XPDL import process.]
This information is then passed into Oracle Modeling Tools BPA or BPM, and a model is generated. In some cases OPBC must adjust the data to allow for a proper model. For example, BPA and XPDL 2.1 support multiple Pools in a model. But BPM currently supports only one Pool per model. If a multi-pool XPDL model is imported via OBPC into BPM, the source pools must be merged into one pool.
At this point the model is edited entirely in the Oracle Modeling tool, BPA or BPM. Each of the tools has the functionality to export a model to Tutor. See below for a description of that process.
OBPCs integration with Tutor provides a similar import of XPDL documents into the Tutor format. When an XPDL file is selected for conversion, the <Vendor/> element is checked against the entries in the XSLFilePaths.xml file to see if there is a style sheet associated with models published by this vendor. [See Appendix B for details on how to add a custom style sheet to enhance OBPCs XPDL import process.] The XPDL module performs an initial transform, and then populates the BPMN Common Object Model. The Common Object Model then passes its data to the Tutor Export module, and a Tutor document is generated.
Tutor to BPM / BPA OBPC imports Tutor documents into both BPM and BPA. The Tutor import module reads the Tutor document and populates the OBPC Common Object Model. OBPC then passes this data to the Oracle Modeling Tools BPA or BPM, and a model is generated.
BPM / BPA to Tutor OBPC provides the capability for Oracle modeling tools BPA and BPM to export models to Tutor. The Oracle modeling tools pass model information to the OBPC Common Object Model. The Common Object Model then passes its data to the Tutor Export module, and a Tutor document is generated.
BPMN Common Object Model to Tutor Since Oracle Tutor is not conformant to BPMN, it supports only a sub-set of the Activities found in BPA and BPM models. In Tutor, all Activities are represented by either a Task element or a Directive element. Therefore, when exporting a model to Tutor, OBPC must transform the model into a form appropriate for Tutor. OBPC does this by applying rules as it encounters each BPMN object to generate an appropriate equivalent that can be processed as a Tutor element. See Appendix 5: Tutor Conversion Technical Details for a summary of the rules applied to BPMN models when they are exported to Tutor.
This file must not be edited. If a decision is made to change the mapping of one or more elements, or if additional elements must be added, add a VisioUserMap.xml file as described
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
below. OBPC checks for a VisioUserMap.xml file after it has parsed VisioMasterMap.xml and then modifies its rules accordingly. The user map serves to extend and/or override the master map. Creating a VisioUserMap.xml file The Visio import module is designed for extensibility. Users may add an XML file to support alternate Visio stencils and specify the mapping of additional Visio master shapes to BPMN objects. This file must be named VisioUserMap.xml, and it must be placed in the same directory as the VisioMasterMap.xml file. This file should have the same root element as the supplied VisioMasterMap.xml file, including the reference to the VisioMasterMap.xsd. VisioUserMap.xml must have the same format as the master map, which may be used as a reference. Entries added to the user map either add mappings or overwrite an existing entry in the main map. It should contain only the extended/override entries and should not repeat all the original entries. Sample XML code for creating a VisioUserMap.xml file: <?xml version = '1.0' encoding = 'UTF-8'?> <Masters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/oracle/tutor/visio/mas terMapElements VisioMasterMap.xsd" xmlns="http://www.oracle.com/oracle/tutor/visio/masterMapElement s"> <! custom <Master/> elements go here -- > </Masters> Example: the source Visio file contains a shape named Report, and you wish to have that shape map to a Data Object. The VisioMasterMap will map this to a Send Task (because that is how many users model with it), but if you use it strictly as an input/output object, it is more accurate to map it to a Data Object. In the VisioMasterMap.xml file, we locate the Master definition for DataObject. <Master Name="data object"> <BPMNObject>DataObject</BPMNObject> </Master> This definition is followed by a series of additional Master elements that use the Like attribute to clone the first definition and map additional Visio objects: <Master Name="sequential data" Like="data object"/> <Master Name="data" Like="data object"/>
To add or modify a mapping for a Visio <Report> element, simply add the following element to the VisioUserMap.xml file: <Master Name=Report Like=data object/> The VisioMasterMap shows how an object can be mapped to an exiting BPMN object with additional or different attributes by using the Extends attribute. <Master Name="flow"> <BPMNObject>SequenceFlow</BPMNObject> </Master> <Master Name="conditional flow" Extends="flow"> <Attributes> <Attribute Name="ConditionType" Value="Expression"/> </Attributes> </Master> The Visio object conditional flow will be mapped to the BPMN SequenceFlow object, but has added the attribute ConditionType with the value Expression. BPMN Elements The following are valid values for the BPMNObject tag: Task Subprocess Event Gateway DataObject Group Annotation Lane Pool MessageFlow SequenceFlow Association null NOTE: a value of null is used to suppress the creation of a BPMN object for a specific master.
LoopType isForCompensation Subprocess Attributes and their values: Attribute isExpanded isATransaction LoopType isForCompensation AdHoc Event Attributes and their values: Attribute EventType Trigger
Values true, false true, false Standard, MultiInstance true, false true, false
Values Start, Intermediate, End None, Message, Timer, Conditional, Signal, Multiple, Error, Cancel, Compensation, Link, Terminate
Gateway Attributes and their values: Attribute GatewayType ExclusiveType MarkerVisible Values Parallel, Inclusive, Exclusive, Complex Event, Data true, false
NOTE: ExclusiveType and MarkerVisible are only valid for GatewayType = Exclusive. If they are specified for any other GatewayType, they will be ignored.
SequenceFlow Attributes and their values: Attribute ConditionType Association Attributes and their values: Attribute Direction Pool Attributes and their values: Attribute BoundaryVisible true, false Values None, One Values Values None, Expression, Default
Below is a sample xsl that copies elements written using a local namespace in the source document to the default namespace in the result document. Note that the local namespace is added in the stylesheets root element, and that when matching elements in the source XPDL document, the local namespace prefix [in our example we use ANY_LOCAL_NAMESPACE] is required for a match to be successful. <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" xmlns:ANY_LOCAL_NAMESPACE = "http://www.someURI" > <xsl:output method = "xml" indent = "yes"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match = ANY_LOCAL_NAMESPACE:Activity> </xsl:template> </xsl:stylesheet> Relative Coordinates XPDL documents may have object coordinates given as relative or absolute. An XPDL document with absolute coordinates will import with all coordinates retained as absolute coordinates. But XPDL documents with relative coordinates should follow the rules provided below for the model to be imported properly in OBPC. Pool coordinates are absolute Lane coordinates are relative to their parent Pool Node coordinates not in a Subprocess are absolute Node coordinates in an embedded Subprocess (expanded or collapsed) are relative to the upper-left corner of the Subprocess Sequence Flow path coordinates connecting nodes in a Subprocess are relative to the upper-left corner of the Subprocess All other Flows are absolute An XPDL document with relative coordinates must be converted to meet the above requirements. The following information may be helpful in converting coordinates from relative to absolute or vice versa when necessary. Pool coordinates must be absolute. If coordinates provided for Pools are relative, then OBPC will render all Pools overlapping each other. OBPC assumes Pools contain absolute coordinates. To override this, convert Pool coordinates to absolute. Lane coordinates must be relative to their parent Pool. In some instances, Lanes have absolute coordinates but the model has relative coordinates. In this case Lane coordinates can be converted as follows.
Lane X-Coordinate can be taken as the difference between Lane X-Coordinate and its parent Pool X-Coordinate. The same logic applies to the Y-Coordinate. A sample style sheet to accomplish this conversion is given below. <xsl:template match = "xpdl2:Lane/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2 :Coordinates"> <xsl:copy> <xsl:copy-of select = "@*[name() != 'XCoordinate' and name() != 'YCoordinate']"/> <xsl:attribute name = "XCoordinate"> <xsl:value-of select = ancestor::xpdl2:Pool/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphics Info/xpdl2:Coordinates/@XCoordinate - @XCoordinate"/> </xsl:attribute> <xsl:attribute name = "YCoordinate"> <xsl:value-of select = "ancestor::xpdl2:Pool/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphics Info/xpdl2:Coordinates/@YCoordinate - @YCoordinate"/> </xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> Node coordinates not in a Subprocess must be absolute If node coordinates are relative to their parent Lane or Pool, convert them to absolute. Coordinates for Activities relative to the parent Pool can be converted to absolute by adding their Pool coordinates to the Activity Coordinates. Coordinates for Activities relative to parent Lanes, which are relative to the parent Pool, can be converted to absolute by assigning the sum of the Activity, parent Lane and parent Pool coordinates to Activity coordinates. A sample stylesheet template is given below which will calculate Activity coordinates if Activity coordinates are relative to the parent Lane and Lane coordinates are relative to the parent Pool where the Pool coordinates are absolute. <xsl:template match="xpdl2:Activity/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphics Info/xpdl2:Coordinates"> <xsl:copy> <xsl:copy-of select="@*[name()!='YCoordinate' and name()!='XCoordinate']"/> <xsl:variable name="LaneId"> <xsl:value-of select="ancestor::xpdl2:NodeGraphicsInfo/@LaneId"/> </xsl:variable> <xsl:variable name="PoolId">
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
<xsl:value-of select="//xpdl2:Lane[@Id=$LaneId]/ancestor::xpdl2:Pool/@Id"/> </xsl:variable> <xsl:attribute name="YCoordinate"> <xsl:value-of select="//xpdl2:Pool[@Id=$PoolId]/xpdl2:NodeGraphicsInfos/xpdl2: NodeGraphicsInfo/xpdl2:Coordinates/@YCoordinate + //xpdl2:Lane[@Id=$LaneId]//xpdl2:NodeGraphicsInfos/xpdl2:NodeGra phicsInfo/xpdl2:Coordinates/@YCoordinate + @YCoordinate"/> </xsl:attribute> <xsl:attribute name="XCoordinate"> <xsl:value-of select="//xpdl2:Pool[@Id=$PoolId]/xpdl2:NodeGraphicsInfos/xpdl2: NodeGraphicsInfo/xpdl2:Coordinates/@XCoordinate + //xpdl2:Lane[@Id=$LaneId]//xpdl2:NodeGraphicsInfos/xpdl2:NodeGra phicsInfo/xpdl2:Coordinates/@XCoordinate + @XCoordinate"/> </xsl:attribute> </xsl:copy> </xsl:template> Node coordinates in an embedded Subprocess (expanded or collapsed) must be relative to the upper-left corner of the Subprocess For child nodes of a Subprocess, coordinates are relative to the parent Subprocess. If coordinates of child nodes of a Subprocess are not relative to the parent Subprocess, it is necessary to determine whether the coordinates are relative to the parent Lane or parent Pool. To make Node coordinates relative to the Subprocess, subtract the appropriate Subprocess coordinates from the node coordinates and assign the resulting values to the node coordinates. A sample style sheet template is given below that calculates the coordinates of the child nodes of a Subprocess. This template will work if the child node coordinates are not relative to a Subprocess. <xsl:template match = "xpdl2:ActivitySet/xpdl2:Activities/xpdl2:Activity/xpdl2:NodeGra phicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates"> <xsl:variable name = "ActivitySetId"> <xsl:value-of select = "ancestor::xpdl2:ActivitySet/@Id"/> </xsl:variable> <xsl:copy>
<xsl:copy-of select = "@*[name() != 'XCoordinate' and name() != 'YCoordinate']"/> <xsl:attribute name = "XCoordinate"> <xsl:value-of select = "@XCoordinate //xpdl2:Activity[@Id = $ActivitySetId]/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/x pdl2:Coordinates/@XCoordinate"/> </xsl:attribute> <xsl:attribute name = "YCoordinate"> <xsl:value-of select = "@YCoordinate //xpdl2:Activity[@Id = $ActivitySetId]/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/x pdl2:Coordinates/@YCoordinate"/> </xsl:attribute> </xsl:copy> </xsl:template> Sequence Flow path coordinates connecting nodes in a Subprocess must be relative to the upper-left corner of the Subprocess Determine whether Sequence Flow path coordinates are relative to Subprocess or not. If not, convert them to relative to upper-left corner of the Subprocess. Simple logic can be used to convert coordinates to relative. Such logic would subtract the Subprocess coordinates from the Sequence Flow path coordinates. All other Flows must be absolute Determine whether coordinates are relative or absolute. If coordinates are not absolute, convert them. To convert, include templates in a style sheet that contains logic to add the parent Pool coordinates to the Flow coordinates and then assigns these values to the Flow coordinates. Here it is important to note if coordinates are relative to the parent Pool or the parent Lane. If Sequence Flows are relative to the parent Pool, add the Pool coordinates to the Flow coordinates. If Sequence Flows are relative to the parent Lane, add the parent Pool coordinates and the parent Lane coordinates to the Flow coordinates. Extended Attributes Two extended attributes are used by OBPC to parse XPDL files. These extended attributes are optional but can be very useful when working with XPDL documents that employ relative coordinates for Flows. These are: redrawConnections isRelativeObjectCoordinates These extended attributes are not standard XPDL elements but can be used to mitigate the amount of work required to convert Flow coordinates from relative to absolute or from absolute to relative. Although the <ExtendedAttributes> element is found in many elements of the XPDL document, OBPC will search for it under <Package/> element. Place the <ExtendedAttributes> element under <Package/> element to ensure it is located by OBPC. redrawConnections Setting this attribute to true will let OBPC to redraw Flow connections instead of using the original coordinates. This is useful when coordinates of Flows need to be converted to relative
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
or absolute. If it is hard to convert coordinates of Flows to relative or absolute, then setting this attribute to true will let OBPC recreate the coordinates for Flows. When this attribute is set to true, there is no need to convert coordinates to absolute or relative. OBPC will not consider the original coordinates of Flows but will create the most suitable coordinates to Flows. OBPC will use the original coordinates when this ExtendedAttribute is not included in XPDL file or is set to false. Therefore, use of this attribute should be considered when retaining the layout of the original model is of lesser importance than providing a shorter development time. A sample style sheet template to set this attribute is given below. <xsl:template match="xpdl:Package/xpdl:ExtendedAttributes"> <xsl:copy> <xsl:copy-of select="@*"/> <xpdl:ExtendedAttribute Name="redrawConnections" Value="true"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="xpdl:Package"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:if test="not(child::xpdl:ExtendedAttributes)"> <xpdl:ExtendedAttributes> <xpdl:ExtendedAttribute Name="redrawConnections" Value="true"/> </xpdl:ExtendedAttributes> </xsl:if> <xsl:apply-templates/> </xsl:copy> </xsl:template> The above templates add the redrawConnections ExtendedAttribute to the <ExtendedAttributes/> element as a child of < Package/>. isRelativeObjectCoordinates The isRelativeObjectCoordinates extended attribute is used to notify OBPC that object coordinates in the XPDL file are relative or absolute. If the source XPDL file presents ALL object coordinates in absolute form [every coordinate is measured from the 0,0 point at the top left corner of the diagram], then this attribute should be used and its value set to false. Setting this extended attribute to true informs OBPC that all coordinates in the source XPDL file are relative in conformance with the Relative Coordinates rules of OBPC as specified above. OBPC by default assumes all coordinates of input document comply with the Relative Coordinates rules of OBPC as outlined above. When this attribute is set to true or is omitted, make sure that all coordinates meet the Relative Coordinates rules of OBPC. Otherwise, include
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
templates in your style sheet to make them conform to the Relative Coordinates rules specified in this document. A sample style sheet template to include this <ExtendedAttribute/> element in the <ExtendedAttributes/> element, which is a child of the <Package/> element, is given below. <xsl:template match="xpdl21:Package/xpdl21:ExtendedAttributes"> <xsl:copy> <xsl:copy-of select="@*"/> <xpdl21:ExtendedAttribute Name="isRelativeObjectCoordinates" Value="false"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="xpdl21:Package"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:if test="not(child::xpdl21:ExtendedAttributes)"> <xpdl21:ExtendedAttributes> <xpdl21:ExtendedAttribute Name="isRelativeObjectCoordinates" Value="false"/> </xpdl21:ExtendedAttributes> </xsl:if> <xsl:apply-templates/> </xsl:copy> </xsl:template> Remove invisible elements. OBPC considers all graphical elements of the source XPDL file to be visible elements, even if their visibility is set to false. Thus you may find some differences in OBPC as formerly invisible elements have now become visible. The only way to resolve this issue is to remove these elements from the xpdl with the help of some xsl style sheet templates. For example: <xpdl:Activity Name="ProcessGroup" Id="ProcessGroup"> <xpdl:NodeGraphicsInfos> <xpdl:NodeGraphicsInfo ToolId="XYZ" LaneId="PMCoE" IsVisible="false"> <xpdl:Coordinates XCoordinate="7740.0" YCoordinate="80.0"/> </xpdl:NodeGraphicsInfo> </xpdl:NodeGraphicsInfos> .. </xpdl:Activity>
Here the Activitys visibility is set to false, but when this model is imported into OBPC, you will still see this Activity. To eliminate invisible elements include a style sheet template to remove them. A sample style sheet template is given below to remove these invisible activities. <xsl:template match="xpdl:Activity"> <xsl:variable name="isVisible"> <xsl:choose> <xsl:when test="xpdl:NodeGraphicsInfos/xpdl:NodeGraphicsInfo/@IsVisible = 'false'"> <xsl:text>false</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>true</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:if test="$isVisible = 'true'"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:if> </xsl:template> Orientation Orientation is an attribute found in many XPDL documents to specify the orientation of the model. This attribute must have HORIZONTAL or VERTICAL as its value. XPDL documents generated by some tools may have coordinates that identify the model as horizontal when the model is actually in vertical orientation and vice versa. Make sure the model has correct coordinates with respect to the model orientation. If model has mismatching coordinates, include style sheet templates to swap the coordinates. The Orientation attribute of model is also important to OBPC for calculating dimensions of Pools and Lanes (which will be discussed later in this document). The Orientation attribute can be found in Pool elements. If this attribute is not found in the XPDL document then the model is assumed to be in Horizontal orientation by OBPC. If the Orientation attribute is in a tool specific namespace it must be made available to OBPC by creating an Orientation attribute on the Pool elements and setting their values to the one found in tool specific namespace. A sample style sheet template is given below to set orientation of Pools. This template tries to find the orientation of Pools. If it is not found then this template will set the Orientation attribute to HORIZONTAL. <xsl:template match="xpdl:Pool"> <xsl:variable name="orientation"> <xsl:choose>
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
<xsl:when test="not(@Orientation)"> <xsl:text>HORIZONTAL</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="@Orientation"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:attribute name="Orientation"> <xsl:value-of select="$orientation"/> </xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> Specify view type for Subprocesses The View attribute of <BlockActivity/> and <Subflow/> elements specify whether the Subprocess is an expanded or a collapsed Subprocess. OBPC assumes the default view type of Subprocess elements is COLLAPSED. For this reason, if a model has an expanded Subprocess element but its view type is not given in XPDL file, OBPC will render this Element as a Collapsed Subprocess element. Note: Subflow elements of an XPDL file cannot be rendered with their child elements into OBPC, only the Subflow elements themselves will be found in the imported model. It is possible to identify the Subprocess according to its view type. I.e. if the Subflow is expanded OBPC will render this element as an expanded Subflow element. For example: below are <BlockActivity/> and <Subflow/> elements that do not have a view type specified. Hence their corresponding interpretation by OBPC will result in a Collapsed Subprocess. <xpdl2:BlockActivity ActivitySetId="_gJ5DQeE3Ed6tmt0cZVxmlA"/> <xpdl2:SubFlow Id="_swKUEGyzEd6oxIP3ZfQL-g" PackageRef="ProcessPackage"/> If the View attribute is not found in <BlockActivity> element, it may be present in a tool specific namespace. If so, include templates in xsl to create View attribute on <BlockActivity> or <Subflow> elements. A sample style sheet template is given below to add the View attribute to <Subflow> elements. This template will work for BizAgi generated XPDL files. <xsl:template match="xpdl21:SubFlow"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:attribute name="View"> <xsl:choose>
<xsl:when test="ancestor::xpdl21:Activity/xpdl21:NodeGraphicsInfos/xpdl21: NodeGraphicsInfo/@Expanded='false'"> <xsl:text>COLLAPSED</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>EXPANDED</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:attribute> </xsl:copy> </xsl:template> Below is a sample style sheet template that will add the View attribute to <BlockActivity> elements. This template will work for Oracle BPM Studio XPDL generated files. This template also shows how to create the View attribute on <BlockActivity> elements by accessing the View attribute value from a tool specific namespace. <xsl:template match="xpdl:Activity/xpdl:BlockActivity"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:choose> <xsl:when test="ancestor::xpdl:Activity/xpdl:Extensions/albpm:ALBPMExtensi ons/albpm:FeatureSet/albpm:BooleanFeature[@ name='collapsed']/@value='true'"> <xsl:attribute name="View"> <xsl:text>COLLAPSED</xsl:text> </xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="View"> <xsl:text>EXPANDED</xsl:text> </xsl:attribute> </xsl:otherwise> </xsl:choose> <xsl:apply-templates/> </xsl:copy> </xsl:template> Object Pin In some tools the coordinates provided for Activities are given for the upper-left corner of the Activity object, but for others the coordinates are based on the center of the Activity object. These coordinates serve as the object pin. When an XPDL document that has object pin at center of Activities is imported into OBPC, all of these Activities will be found at different positions from what is expected. This is because the
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
object pin for Activities are at the center but OBPC expects the object pin at the upper left corner. To resolve this discrepancy the Activity coordinates must be recalculated. Simple logic may be used to calculate these coordinates, such as subtracting half of the Activitys width from its XCoordinate and subtracting half of the Activitys height from its YCoordinate. Below is a style sheet template that does this recalculation. Note that this template will work only if width, height, x, and y-coordinates are provided for Activities. <xsl:template match = "xpdl:Activity/xpdl:NodeGraphicsInfos/xpdl:NodeGraphicsInfo/xpdl :Coordinates"> <xsl:copy> <xsl:copy-of select = "@*[name() != 'XCoordinate' and name() != 'YCoordinate']"/> <xsl:attribute name = "XCoordinate"> <xsl:value-of select = "@XCoordinate ancestor::xpdl:NodeGraphicsInfo/@Width div 2 "/> </xsl:attribute> <xsl:attribute name="YCoordinate"> <xsl:value-of select = "@YCoordinate ancestor::xpdl:NodeGraphicsInfo/@Height div 2"/> </xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> Dimensions: Height & Width of Activities Some tools do not provide height & width for Activities in their XPDL files. But coordinates and dimensions of Activities are needed to import an XPDL file into OBPC. So include templates in an xsl style sheet that will set height and width for Activities and Lanes. If the XPDL file does not contain height and width for Activities, set some default dimensions for them. For instance, set 80x40 width and height for Tasks, collapsed Subprocesses, and set 30x30 width and height to Events and Gateways. It can be especially difficult to set the height and width for Expanded <BlockActivity> and <Subflow> elements, as an expanded <BlockActivity> element may also contain another expanded <BlockActivity> elements. Here the innermost BlockActivity height and width should be calculated first and then its parent BlockActivity. This recursion must bubble up to the topmost <BlockActivity>. It can be difficult to code this recursion process in XSL. For this reason OBPC provides a feature which calculates height and width of expanded Subprocesses. To use this feature set the height and width of <BlockActivities> to 0,0 using xsl templates. Below is an Event element that does not have Width and Height. <xpdl:Activity Name="Begin" Id="Begin"> <xpdl:Event> <xpdl:StartEvent Trigger="None"/> </xpdl:Event> .. <xpdl:NodeGraphicsInfos> <xpdl:NodeGraphicsInfo LaneId="Accounting" IsVisible="true">
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
<xpdl:Coordinates XCoordinate="36.0" YCoordinate="110.0"/> </xpdl:NodeGraphicsInfo> </xpdl:NodeGraphicsInfos> </xpdl:Activity> The sample style sheet template is given below to set height and width of Activities. This template can be used if height and width of Activities are not given in the XPDL document. This will set 80x40 dimensions (width, height) for Task elements and collapsed BlockActivities, it will set 30x30 dimensions to Route and Gateways, and it will set 0x0 dimensions to expanded BlockActivities and thus lets OBPC calculate the dimensions for these Expanded BlockActivity elements. This template will work for BPM studio XPDL files. <xsl:template match = "xpdl:Activity/xpdl:NodeGraphicsInfos/xpdl:NodeGraphicsInfo"> <xsl:variable name = "activityType"> <xsl:choose> <xsl:when test = "ancestor::xpdl:Activity/xpdl:Implementation/xpdl:SubFlow"> <xsl:text>SubFlow</xsl:text> </xsl:when> <xsl:when test = "ancestor::xpdl:Activity/xpdl:Implementation"> <xsl:text>Task</xsl:text> </xsl:when> <xsl:when test = "ancestor::xpdl:Activity/xpdl:Event"> <xsl:text>Event</xsl:text> </xsl:when> <xsl:when test = "ancestor::xpdl:Activity/xpdl:Route"> <xsl:text>Route</xsl:text> </xsl:when> <xsl:when test = "ancestor::xpdl:Activity/xpdl:BlockActivity"> <xsl:choose> <xsl:when test = "ancestor::xpdl:Activity/xpdl:Extensions/albpm:ALBPMExtensions/a lbpm:FeatureSet/albpm:BooleanFeature[@ name = 'collapsed']/@value != 'true'"> <xsl:text>ExpandedBlockActivity</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>CollapsedBlockActivity</xsl:text> </xsl:otherwise> </xsl:choose>
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
</xsl:when> </xsl:choose> </xsl:variable> <xsl:copy> <xsl:copy-of select = "@*"/> <xsl:attribute name = "Width"> <xsl:choose> <xsl:when test = "$activityType = 'Task' or $activityType = 'CollapsedBlockActivity' or $activityType = SubFlow"> <xsl:text>80</xsl:text> </xsl:when> <xsl:when test = "$activityType = 'Route' or $activityType = 'Event'"> <xsl:text>30</xsl:text> </xsl:when> <xsl:when test = "$activityType = 'ExpandedBlockActivity'"> <xsl:text>0</xsl:text> </xsl:when> </xsl:choose> </xsl:attribute> <xsl:attribute name = "Height"> <xsl:choose> <xsl:when test = "$activityType = 'Task' or $activityType = 'CollapsedBlockActivity' or $activityType = SubFlow"> <xsl:text>40</xsl:text> </xsl:when> <xsl:when test = "$activityType = 'Route' or $activityType = 'Event'"> <xsl:text>30</xsl:text> </xsl:when> <xsl:when test = "$activityType = 'ExpandedBlockActivity'"> <xsl:text>0</xsl:text> </xsl:when> </xsl:choose> </xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template>
Height & Width of Lanes In many XPDL documents, width or height dimensions for Lanes is provided depending on orientation of the parent Pool. For instance, if the orientation of the parent pool is horizontal then the width of the Lane might be found in the XPDL document but not its height. As mentioned before, the height and width of Lanes and Activities are needed for OBPC to determine the sizes of graphical elements. If the Lane height or width is not found in the XPDL document, set these attributes to a value which is sufficient to hold all its containing elements. If the height of Lanes is provided but not their width, simple logic can be used to set the width of Lanes. Find the largest sum of x-coordinate plus the widths of Activities, and set this value to the widths of all Lanes. If the Lane width is merely sufficient to hold all elements, you can find the Lane right border running from the right border of Activity that has the largest sum of xcoordinate and width. A small padding value can also be added to the largest sum to extend the Lanes enough to allow them to appear as the containers of the other objects. The above logic will work if all Activities contain width and height values. But there are cases where Activities might not contain height and width values. In such cases it is difficult to calculate Lane widths using XSLT with the above logic as each Activity height and width should be calculated before calculating Lane height or width. To resolve this problem, OBPC provides a feature that will set the Lane widths or heights. To use this feature set the missing dimension of Lane to zero using xslt. This feature assumes one dimension was provided for the lane. Height and Width of Pools If height and widths are provided for Pools, OBPC will use those dimensions for Pools. If these values are absent, OBPC will try to calculate them. OBPC will calculate both dimensions even if one of dimensions is provided. The source XPDL document must contain both dimensions for Pools to circumvent this feature. Do not put Activities close to together or near the borders of Lanes When coordinates and dimensions are provided in the XPDL file, OBPC will use those values without manipulating them. But if some dimensions are missing, such as dimensions for Lanes dimensions or Sub processes, OBPC will try to calculate these dimensions. In the process of calculating dimensions, OBPC will add some padding to the dimensions for the model to be friendlier but this model will look good only if the Activities have some space around them. Otherwise the imported model may have borders of Activities or Lanes running on top of other Activities or Lanes. To avoid this problem position Activities with some space around them. Do not create activities or Lanes with duplicate ids When models containing duplicate ids for more than one Lane or Activity are imported into OBPC problems will ensue. OBPC cannot create more than one Lane or Activity with the same name. Only one Lane or Activity from the source will be created, and the results will not accurately reflect the original model. To avoid this problem, create model elements with unique ids. Include missing elements If the XPDL source document is missing elements or attributes required for OBPC to properly perform its conversion, then add those elements and attributes using xslt. For instance, there are 8 types of tasks in XPDL. For OBPC to recognize these task types, a <Task> element should contain another child element which specifies whether the Task is a service task, a receive task, and so on. If these child elements are not found under a source <Task> element, that <Task> element will be converted to a default <Task> element.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
For example, the <Task> element shown below is a user task but does not have a child <TaskUser> element. Hence it is assumed to be a default Task element by OBPC. <Implementation> <Task /> </Implementation> In order for the activity to be identified by OBPC as user task, a <TaskUser> element must be added under Task element as follows. <Implementation> <Task> <TaskUser> .. </TaskUser> </Task> </Implementation> As mentioned before many attributes may be given under tool specific namespaces. If task type is not found under the xpdl namespace, try finding it in the tool specific namespace and include templates in the style sheet to include these elements under the Task element. The style sheet template shown below will include a <TaskService> element as a child of <Task> element whenever it finds an Automatic Task element. This template will work for XPDL source files generated by BPM Studio. <xsl:template match="xpdl:Activity/xpdl:Implementation/xpdl:Task"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:if test="ancestor::xpdl:Activity/xpdl:Extensions/albpm:ALBPMExtensi ons/albpm:FeatureSet/albpm:StringFeature[@name='type']/@value='A UTOMATIC' and not(child::xpdl:TaskService)"> <xpdl:TaskService/> </xsl:if> <xsl:apply-templates/> </xsl:copy> </xsl:template> Check for correctness of Activities Be sure that the source XPDL contains the correct elements to represent Activities when they are exported as XPDL from the source tool. For example, if a model contains an Event Activity and while exporting that model into XPDL the tool creates <Route> or <Task> element for that Event Activity, this element must be replaced with an element that accurately represents an Event Activity. Consider the XPDL element shown below. The Activity is a Start Event, but instead of an Event element under the <Activity> element, you find a <Route> element. When this model is imported into OBPC, OBPC will convert this Activity into a Route Activity rather than as an Event Activity. <xpdl:Activity Name="Group$Begin" Id="Group$Begin">
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
<xpdl:Route GatewayType="XOR" MarkerVisible="true"/> .. </xpdl:Activitiy> The correct notation for the above element should be: <xpdl:Activity Name="Group$Begin" Id="Group$Begin"> <xpdl:Event> <xpdl:StartEvent Trigger="None"/> .. </xpdl:Event> . </xpdl:Activity> If this problem is found in your source XPDL, include templates in a style sheet to replace the incorrect elements with correct elements.
Activity Preface
These tasks are performed whenever the default conversion does not produce optimal results.
XSLT Developer
1. Create a custom XSLT file. Create a new XSLT file in the XML editor of choice. To view examples, see Appendix 3: XPDL Technical Details. It is best to put the XSLT file in the xml directory that contains XSLFilePaths.xml. See below. Open the XPDL file to be imported and locate the <Vendor/> element under the <PackageHeader/> element, and note its value. For example, if the XPDL looks like this:
2.
<Package xmlns="http://www.wfmc.org/2004/XPDL2.0alpha" Id="6" Name="Untitled Document 6"> <PackageHeader> <Vendor>Global 360</Vendor> </PackageHeader> </Package> The Vendor elements value is Global 360. If your company purchased BPM Suite, goto task #3. Otherwise, goto task #5. 3. Locate the XSLFilePaths.xml file in OBPC.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.
Appendix 4: Customizing XPDL Import with XSL Doc Chapter 1 - Page 107
This file is located in a folder named xml which is nested beneath your JDeveloper install directory as follows: [JDeveloper install]\jdeveloper\jdev\extensions\tutor\xml. Goto task #5. 4. Locate the XSLFilePaths.xml file in OBPC. If you are using Oracle Tutor, this file is nested beneath your Tutor install directory as follows: [Tutor install]/xml. If you are using BPM, this file is located in a directory named xml which is nested beneath your JDeveleoper install directory as follows: [JDeveleoper install]/jdeveloper/jdev/extensions/tutor/xml. 5. Add a new <XSLFilePath/> element with a Vendor attribute containing the name of the vendor, and provide the relative path to the XSLT file as the value. For example: <XSLFilePaths xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:schemaLocation="filesPaths PatchFilesPaths.xsd" xmlns="filesPaths"> <XSLFilePath Vendor=Global 360>Global360Patch.xsl</XSLFilePath> </XSLFilePaths> Note that in this example the file name Global360Patch.xsl has no additional path information. OBPC will search for this file in the same folder that contains the XSLFilePaths.xml file. If additional path information is present, OBPC will search for the file relative to the \xml folder. 6. Import XPDL file in OBPC. Your file will be transformed and processed according to the rules specified in the custom XSLF file. End of activity.
Appendix 4: Customizing XPDL Import with XSL Doc Chapter 1 - Page 108
Parallel OR (Join)
AND (Join)
Subprocess
Collapsed Expanded
Event
Start
End
Attribute
Attached Intermediate
Attached intermediate events are converted to directive conditions. Ignored. (Should point to next activity in sequencial document flow.) Will be formatted as an Otherwise goto task #n directive segment. Will create a If [Expression], goto task #n, where #n is based on evaluation of expression If merging pools, they are converted to SequenceFlows. Otherwise they are removed.
SequenceFlow
ConditionType:None
ConditionType:Default
ConditionType:Expression
MessageFlow
Pools Tutor does not have a concept of a Pool. The Task segment of a Tutor document is equivalent to the main pool of a multi-pool diagram. However, Tutor documents do support activities referenced as Prior Activities, and activities may be referenced as follow up actions to an End of Activity directive. Generally, multi-pool models will be merged into a single pool during export to Tutor. When exporting a BPMN model containing multiple pools from BPA to Oracle Tutor, the converter will ask you whether to export all pools or a single pool. If you choose all pools, the converter will merge them. If you choose a single pool, you can specify the pool and only the process defined in the pool you specify will be exported to Tutor. In some circumstances, when merging pools, flows might create parallel directives in the Tutor document that are unnecessary. These are removed when detected. Pools that contain no lanes are converted to a lane. Tasks Automated Tasks are removed. This includes tasks with a BPMN type of SERVICE and SCRIPT. If a task has multiple outflows, it will usually create a parallel directive. Gateways Decisions that do not affect user activities are removed.
If an automated task is removed, but one of its flows led to an exclusive or inclusive gateway, a Parallel merge may be inserted before the gateway. If an automated task has multiple outflows, it may be converted to a parallel directive. Exclusive merge gateways are removed. Tasks are inserted before gateways as needed to provide a destination for a goto directive. Events Most intermediate events will be converted to a task. One throwing link event and one catching link event with matching names is converted to direct sequence flow. Two throwing link events and one catching link event with matching names is converted to Inclusive-Or merge. One throwing link event and two catching link events with matching names is converted to parallel directive. Events following an event-based gateway will be converted into flow labels. However, if events have additional incoming sequence flows, they will be converted to tasks. If the event has multiple outflows, it may be converted into a parallel directive. Flows Flows that are not connected on both ends are removed. Subprocesses Nodes contained in a collapsed Subprocess are removed when the subprocess is converted to a Stop and complete directive. Tasks are inserted before subprocesses as needed to provide a destination for a goto directive. Tasks inside an Ad-hoc subprocess are converted to a series of tasks in top left to bottom right order.