Anda di halaman 1dari 118

Oracle Business Process Converter

Oracle Tutor R14

October 2010

Copyright 1994 - 2010 Oracle. All rights reserved.


License Restrictions & Warranty Disclaimer
The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose.

Restricted Rights Notice


If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software-Restricted Rights (June 1987). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

Hazardous Applications Notice


The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for any damages caused by such use of the Programs.

Third Party Web Sites, Content, Products, and Services Disclaimer


The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites. You bear all risks associated with the use of such content. If you choose to purchase any products or services from a third party, the relationship is directly between you and the third party. Oracle is not responsible for: (a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warranty obligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party.

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

Copyright Oracle, 2009. All rights reserved.

Oracle Business Process Converter Table of Contents i

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.

Copyright Oracle, 2009. All rights reserved.

Oracle Business Process Converter Table of Contents iii

Send Us Your Comments


Oracle Tutor
Oracle welcomes your comments and suggestions on the quality and usefulness of this publication. Your input is an important part of the information used for revision. Did you find any errors? Is the information clearly presented? Do you need more information? If so, where? Are the examples correct? Do you need more examples? What features did you like most about this manual? If you find any errors or have any other suggestions for improvement, please indicate the manual, chapter, section, and page number (if available). You can send comments to us via Email to tutorsupport_us@oracle.com If you would like a reply, please provide your name, company or organization that owns the Tutor license, address, email, and telephone number with your correspondence. If you have problems with the software, please contact your local Oracle Support Services or log a support request on line using your Customer ID at http://support.oracle.com

Copyright Oracle, 2009. All rights reserved.

Oracle Business Process Converter Table of Contents iv

Oracle Business Process Converter


Chapter 1

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Overview Chapter 1 - Page 1

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Overview Chapter 1 - Page 2

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.

Supported Oracle Tool Conversions


Process model conversion capability is provided between Oracle Tutor and Oracle BPA, and between Oracle Tutor and Oracle BPM. Tutor Procedure to BPA Tutor Procedure to BPM BPA Model to Tutor BPM Model to Tutor

Supported non-Oracle Tool Conversions


Process model conversion capability is provided for Microsoft Visio models and for the models created by tools that are capable of exporting content in the XPDL format. Models are only converted into Oracle tools formats; no export to Visio or XPDL is provided by OBPC. Visio Model to Tutor Visio Model to BPA Visio Model to BPM XPDL Model to Tutor XPDL Model to BPA XPDL Model to BPM
Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Overview Chapter 1 - Page 3

Tutor System Requirements


The requirements for a users PC with an installation of Tutor Author, Publisher, Oracle Business Process Converter, and model documents are as follows. Tutor Business Process Converter X Required for conversion to Tutor

Software Requirements Windows XP/Vista Microsoft Office 2003/2007 X X

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

Required only for PDF conversion X

Required only for PDF conversion X

Required for conversion to BPM Required for conversion to BPA X

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor System Requirements Chapter 1 - Page 4

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

Tutor Business Process Converter X

1 GB required Optional Optional X

1 GB required 1 GB required Optional 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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor System Requirements Chapter 1 - Page 5

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor System Requirements Chapter 1 - Page 6

Installing Oracle Business Process Converter


This document covers installing the components that will enable the user to import files into Oracle Business Process Architect (BPA) and/or Oracle Business Process Management Suite (BPM).

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 Tutor procedure to BPM

Export BPA model to Tutor

Export BPM model to Tutor

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.

Installing Oracle Business Process Converter Chapter 1 - Page 7

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Installing Oracle Business Process Converter Chapter 1 - Page 8

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.

Installing Oracle Business Process Converter Chapter 1 - Page 9

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Installing Oracle Business Process Converter Chapter 1 - Page 10

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Installing Oracle Business Process Converter Chapter 1 - Page 11

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Installing Oracle Business Process Converter Chapter 1 - Page 12

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.

Conversion Guide Chapter 1 - Page 13

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.

Conversion Guide Chapter 1 - Page 14

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Conversion Guide Chapter 1 - Page 15

General Conversion Rules


Business Process Models are composed of three elements: Events, Tasks, and Gateways. Different tools present slight variations of the icons used for the variants on these elements. Generally it is easy to immediately identify and map the elements from source to target, though exceptions exist. When translating from Tutor text to diagram or diagram to text the conversion of model elements is more complex, and basic conversion rules apply as defined below. Diagram to Diagram For models created with BPMN oriented capabilities or templates, the conversion of model elements is straightforward. Events, activities, and gateways are converted to the same type from one model to the next. Limitations of the target tool may create exceptions; for example, if a signal event is coming into a tool that does not recognize signal events, the conversion will typically create a generic event. BPM does not currently support multiple pools, so multiple models, and one for each pool, will be created. Otherwise, the converted model in the target tool will have the same number of pools, lanes, and model elements. The layout will be basically the same, although BPM has its own layout algorithms. Some slight tweaking may be required, particularly in complex models coming into BPA that create sequence flow overlaps. Visio models created without a BPMN template present their own issues. There may be no pools or swim lanes, activities can be created by grouping four lines into a rectangle and dropping a text block in, and so on. The cleaner and more BPMN oriented the models are, the more elements will be effectively converted. In any event, the OBPC mapping capability will provide the modeler with the ability to map incoming elements to outgoing elements and improve the conversion process. Tutor Text to Diagram Tutor models converted to diagrams in BPA or BPM have a limited number of constructs, which drive the diagram generation. Actors are converted to lanes, tasks become activities, and directives become gateways. The flow sequence will follow the order of the tasks as defined in the task list, including If/Then and Goto directives. The target model element set will be relatively simple and, if required, additional BPMN elements will need to be added in the target environment. Tutor Procedures contain organizational policy content and second level task content which is placed in model attributes during the conversion. This mapping will be explicitly defined in the sections that follow. Diagram to Tutor Text The complexity inherent in BPMN models, as well as Visio models created without BPMN templates, creates the largest conversion challenge. A matrix of BPMN elements mapped to both standard Tutor text structures as well as to specially created tasks is used to create an accurate text model in Tutor. These rules will be defined in more detail in the sections below. For example, a parallel join in a diagram will result in the following task in the Tutor Procedure: Verify all parallel tasks are complete and continue. These conversions of model elements to text will be defined below. In addition, automated activities in any diagram are not converted into the Tutor procedure, as they are transparent to the end user, and so do not typically appear in an end user oriented procedure. This may result in directives in Tutor created from gateways in the model that have no apparent meaning in the Tutor procedure, since gateways in the middle of a long sequence of automated tasks are converted. Any human or system supported tasks which follow the automated tasks will show up in the Tutor procedure as if they directly followed the last task before any automated activities.
Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 16

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.

Building Effective Model Content


Simply put, Process Models are used for two reasons: 1) to communicate approved organizational behavior, and 2) to generate a designed sequence of executable code. When an organization is managing its business processes in a formal diagram based tool as well as Tutor, certain conventions must be followed so that the content is usable for both purposes. Tutor customers who are using multiple tools to manage business process must learn how to create content, which addresses these different uses. The process of defining the correct sequence of tasks and decisions is the core of effective business and IT analysis. The analyst identifies the event which triggers the process, then who is responsible for the first task, and what the task is. The following tasks are developed by the analyst asking, what comes next?, and a valid model is built. When process models are used for communicating, a degree of laxity is allowed in how the language in the model is presented, as the intent is communicated to the observer by the
Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 17

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 18

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.

General Conversion Rules Chapter 1 - Page 19

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 20

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 21

New: Parallel Processing in Tutor


Parallel tasks will be accommodated in Tutor through a new feature added to Tutor 14. Not only will Tutor documents be capable of creating parallel tasks, but also incoming models with parallel tasks will be converted appropriately. See the Tutor Implementation Guide for more information on the parallel function in Tutor. The simple model below, rendered in BPA, contains a set of parallel tasks.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 22

Tutor Round Tripping


For many of the reasons previously stated, converting a model from source to target to source will result in two different models in the source environment. The previously mentioned parallel join gateway, converted to a task in Tutor, will be converted to an activity in the next conversion, which reads Verify all parallel tasks are complete and continue. The sense of the model will be accurate, but it will no longer be efficient. Accurate round-tripping is not supported in this release of OBPC, and, though it may be possible, results may be unexpected.

Conversion Performance
When converting a large file or many files, it is advisable to exit other applications that may use significant memory.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

General Conversion Rules Chapter 1 - Page 23

Converting from Tutor Documents


Overview
Tutor Procedures are developed in Tutor Author, an enhancement to Microsoft Word used to develop role based process documentation called Procedures. Procedures contain an introductory segment (organizational and policy information), a task segment (process information), and a flowchart that is derived from the process information. The task segment consists of actors, tasks, and directives. In the following example, the introductory segment for a procedure from the Tutor model document content is shown. This data is converted into the BPA model attributes, and into BPM in the initial swimlane properties description.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting from Tutor Documents Chapter 1 - Page 24

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting from Tutor Documents Chapter 1 - Page 25

The following is the flowchart generated by Tutor from the process information in the task segment above.

Source Model Preparation


Make sure the Tutor procedure meets the following prior to converting: Tasks exist and are numbered or renumbered accurately Actor Bars contain named Actors Sequence flow is logical and flowchart is created without orphans No document paragraphs use customer defined paragraph styles Procedure is saved in .docx format

General Conversion Issues


Tutor Procedures that use Audit Mode have a superscript in the task and flowchart that identifies the task as containing a control. This is not converted to the flowcharts in any target models. OBPC uses standard Tutor paragraph and character styles to identify objects to be converted. Documents that use customer defined paragraph styles may not be converted correctly.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting from Tutor Documents Chapter 1 - Page 26

Tutor Procedure to BPA


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 Import Tutor Procedure. From the next dialog box, navigate to the appropriate folder and select the desired procedure to import.

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.

Tutor Procedure to BPA Chapter 1 - Page 27

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPA Chapter 1 - Page 28

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPA Chapter 1 - Page 29

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPA Chapter 1 - Page 30

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPA Chapter 1 - Page 31

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).

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPA Chapter 1 - Page 32

Tutor to BPA Data Conversion Map


Tutor Data Document Name Document ID File name with path Contents of Scope section in plain text Policy Responsibility Distribution Ownership Activity Preface Prior Activity Name Identifier ID Description/Definition Description/Definition Description/Definition Not loaded Not loaded Description/Definition Diagram Pool called prior activity, underlined phrase becomes a collapsed subprocess Author CreationDate ModificationDate Version Model Model BPA Attribute BPA Element Model Model Model Model Model Model

Application.UserName in VBA ActiveDocument.BuiltInDocumentProperties (wdPropertyTimeCreated) ActiveDocument.BuiltInDocumentProperties (wdPropertyTimeLastSaved) Tutors Revision number

Model Model Model Model Model

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

ToolID Task Name Description/Definition

Model Task Task

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor to BPA Data Conversion Map Chapter 1 - Page 33

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:

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor to BPA Data Conversion Map Chapter 1 - Page 34

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor to BPA Data Conversion Map Chapter 1 - Page 35

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor to BPA Data Conversion Map Chapter 1 - Page 36

Tutor Procedure to BPM


How to Use this Feature
Open BPM (Oracle JDeveloper Studio 11G), select the Default or BPM Process Analyst Role and open the Application Navigator. Open or start a new project. Right click on the project and select Import Models.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPM Chapter 1 - Page 37

The following image is a task list and flowchart from a Tutor procedure used as a source document for illustration purposes.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPM Chapter 1 - Page 38

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Tutor Procedure to BPM Chapter 1 - Page 39

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.

Tutor Procedure to BPM Chapter 1 - Page 40

Converting to Tutor Documents from Oracle BPM Tools


Overview
Process models developed in BPA and BPM are converted to Tutor procedure documents from toolbars within each of the tools. Upon selection of the proper button or menu option in each tool, the conversion program will convert the selected model into a .docx file in Tutor Author format, and store it in the chosen folder. The newly created process document can then be opened in Author, modified if necessary, and deployed using Tutor Publisher into an HTML environment serving the end user community. Note that converting a BPM Model in diagram form to the text based process flow of a Tutor Procedure must address more elements than the reverse operation. This is due to the larger number of BPM symbols and their lack of direct analogs in Tutor. BPMN symbols will be converted into Tutor text following standard rules described below.

Source Model Preparation


Make sure the Process Models meet the following prior to converting: The process model is developed using standard icons within each tool. Processes are logically sound Processes have been saved

General Conversion Issues


Tutor currently has no way to present text associated with Start or End events, and this text will not be converted. No Automated Tasks will be converted to Tutor Tasks, as Tutor content is intended for use by end users.

Conversion of BPMN Symbols to Tutor Text


BPMN is the standard notation for developing business process models. Modeling tools tend to use a subset of a specific release of this notation. Diagramming tools use symbols, which correspond to BPMN symbols for the most part. The conversion of symbols to Tutor Text follows the rules defined in the table below. While the representation or icon of the symbol may change from tool to tool, the meaning does not. The table shows standard BPMN icons, their definition, and the Tutor text, which is generated during the conversion. BPMN Name Events Start Events Intermediate Events Start events are not converted into Tutor as there is no analog for a start event. Intermediate events of all types are converted to tasks in Tutor. The name or description of the event becomes the text in the Tutor task. End events are converted as End of Activity Directives in Tutor. BPMN Symbol Tutor Text

End Events

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting to Tutor Documents from Oracle BPM Tools Chapter 1 - Page 41

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.

Exclusive Or Gateway Inclusive Or Gateway

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting to Tutor Documents from Oracle BPM Tools Chapter 1 - Page 42

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.

Event Based Gateway Parallel Gateway

Gateway Naming Rules

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting to Tutor Documents from Oracle BPM Tools Chapter 1 - Page 43

BPA Model to Tutor


Source Model Preparation
Make sure the BPA Model conforms to the following rules: The model is a BPMN model (EPC models will not convert to Tutor) The model conforms to BPA modeling conventions Tasks flow in the correct sequence Events are used correctly Gateways are used correctly and the language is clear Sequence flows are labeled when they exit from a Gateway Pools and Lanes are labeled correctly The model type has been selected for export (see below) Preparing Customer Models for Export to Tutor The OBPC install instructions include the steps necessary to set up the Tutor BPA Model types for export. A similar process must be undertaken to export customer specific models. In BPA, 1. Navigate to the Scripts Module. 2. Open Reports. 3. Select Tutor. 4. Right Click on Export Tutor Document. 5. Select Properties. 6. Select Context. 7. In the Model pane check the models to be exported.

8. 9. 10. 11. 12. 13. 14. 15.

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.

BPA Model to Tutor Chapter 1 - Page 44

How to Use this Feature


To export a model to Tutor, open BPA, navigate to the Explorer Mode, and open a local database. Open a Group and select a model to export. Select the Start Macro icon on the toolbar or select Evaluate > Start Macro and choose Export Tutor Procedure. Select the desired folder to save the exported procedure from the dialog. A document will be created in that folder in .docx format and will open as a Tutor procedure.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 45

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 46

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 47

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 48

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 49

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

User Interaction Function

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 50

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPA Model to Tutor Chapter 1 - Page 51

BPM Model to Tutor


Source Model Preparation
Make sure the BPM Model conforms to the following rules: The model conforms to BPM modeling conventions Tasks flow in the correct sequence Events are used correctly Gateways are used correctly and the language is clear Sequence flows are labeled when they exit from a Gateway Lanes are labeled correctly The model has passed validation tests

How to Use this Feature


Open BPM (Oracle JDeveloper Studio 11G), select the Default or BPM Process Analyst Role and open the Application Navigator. Open a project. Right click on the process and select Export to Oracle Tutor. Select the desired folder in the Save dialog box.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPM Model to Tutor Chapter 1 - Page 52

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPM Model to Tutor Chapter 1 - Page 53

The Conversion Notes section is followed by the standard opening section.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPM Model to Tutor Chapter 1 - Page 54

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

BPM Model to Tutor Chapter 1 - Page 55

Converting from Visio Diagrams


Overview
Visio diagrams provide the greatest opportunity for time saved in redeveloping BPM oriented content into Oracle Tools because there are so many of them in the organizational environment. At the same time, Visio diagrams are the greatest challenge to convert because templates may not resemble BPMN or may not be used at all, and the flexibility inherent in Visio allows for nonstandard model development. A customer maintained mapping file has been provided which improves the ability to map from non-standard symbols used in Visio diagrams, but models to be converted should be reviewed carefully to assure a clean and efficient conversion.

Source Model Preparation


Make sure the Visio Model conforms to the following rules: Ungroup all model objects Flow connectors are placed between all appropriate model objects, and are connected to the symbol Symbol text is associated with the symbol and is not a Text Box grouped to the symbol Symbols created with non-standard templates have been mapped to OBPC (See Customizing OBPC below) All process symbols contain text Swimlanes contain named roles or actors

General Conversion Issues


Some symbols, which are BPMN 2.0 compliant, will not be converted, especially if they are dropped on tasks to turn them into different types of tasks or sub processes. The table VisioMasterMap.xml is provided and can be maintained by the customer. See Appendix 2: Visio Import technical Details for more information. Excluded Master symbols which map to null currently include: Ad Hoc processes Loop processes Detail Title Block Guide Activity Looping Multiple Instance Incoming Visio models may contain undefined symbols, which appear to map to process objects but do not. If these objects are placed within the sequence flow they will be converted to tasks. If these objects are erroneously converted to tasks, the customer can add the objects to the mapping file. If the customer has licensed BPA or BPM, a more efficient approach is to import the Visio files into BPA or BPM, clean up the resulting models to valid BPMN standards, and then export them to Tutor.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting from Visio Diagrams Chapter 1 - Page 56

Visio Model to Tutor


How to Use this Feature
Open a Tutor Document, and click on the Convert button on the Tutor toolbar. From the Tutor Convert dialog, browse to the folder containing the desired Visio file and click OK to convert the file. Note that the Convert button is the same for both Visio and XPDL files, and the .vdx or .xpdl file extension drives the conversion.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to Tutor Chapter 1 - Page 57

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to Tutor Chapter 1 - Page 58

Model Converted to Tutor Procedure Below is the task section of the procedure. The conversion notes and opening sections are not shown.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to Tutor Chapter 1 - Page 59

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to Tutor Chapter 1 - Page 60

Visio Model to BPA


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 Evaluate > Start Macro and choose Import Visio Diagram. Select the desired file to import.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to BPA Chapter 1 - Page 61

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.

Visio Model to BPA Chapter 1 - Page 62

Visio Model to BPM


How to Use this Feature
Open BPM (Oracle JDeveloper Studio 11G), select the Default or BPM Process Analyst Role and open the Application Navigator. Open or start a new project. Right click on the project and select Import Models. Navigate to the Visio model folder and select the desired model.

If the model has multiple pools, the following options will be provided:

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to BPM Chapter 1 - Page 63

Expected Results
Visio Model

BPM Model

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to BPM Chapter 1 - Page 64

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Visio Model to BPM Chapter 1 - Page 65

Converting from XPDL Files


Overview
XPDL model content is available from Modeling tools, which either save the models as .xpdl files or provide a conversion to XPDL.

Source Model Preparation


Make sure the XPDL model meets the following prior to converting: Model passes validation tests provided by the source tool Model is saved as or exported into XPDL format Source tool has an XSLT map created for the conversion See Appendix 4: Customizing XPDL Import with XSL Doc for more information

General Conversion Issues


When XPDL Models have embedded subprocesses, the customer must ensure the subprocess dimensions are large enough to hold all child elements for conversion to occur correctly.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Converting from XPDL Files Chapter 1 - Page 66

XPDL Model to Tutor


How to Use this Feature
Open a Tutor Document, and click on the Convert button on the Tutor toolbar. From the Tutor Convert dialog, browse to the folder containing the desired XPDL file and click OK to convert the file. Note that the Convert button is the same for both Visio and XPDL files, and the .vdx or .xpdl file extension drives the conversion.

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to Tutor Chapter 1 - Page 67

XPDL Model Here is an example of an incoming model rendered in Bizagi.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to Tutor Chapter 1 - Page 68

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to Tutor Chapter 1 - Page 69

XPDL Model to BPA


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 Evaluate > Start Macro and choose Import XPDL. Select the desired file to import.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to BPA Chapter 1 - Page 70

Expected Results
XPDL Model Here is an example of the same incoming model rendered in Bizagi.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to BPA Chapter 1 - Page 71

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to BPA Chapter 1 - Page 72

XPDL Model to BPM


How to Use this Feature
Open BPM (Oracle JDeveloper Studio 11G), select the Default or BPM Process Analyst Role and open the Application Navigator. Open or start a new project. Right click on the project and select Import Models. Navigate to the desired folder and select the XPDL model.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to BPM Chapter 1 - Page 73

Expected Results
XPDL Model Here is an example of the same model rendered in Bizagi as was used above.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to BPM Chapter 1 - Page 74

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

XPDL Model to BPM Chapter 1 - Page 75

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.

Appendix 1: Architecture Chapter 1 - Page 76

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.]

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 77

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 78

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 79

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.]

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 80

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 81

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 82

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 83

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 84

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 1: Architecture Chapter 1 - Page 85

Appendix 2: Visio Import Technical Details


For importing Visio 2007documents, the following stencils are supported: Oracle Cross-Functional Process Visio Cross-Functional Process Visio Flow Chart Frapu BPMN (public domain) For Visio 2010, the following stencils have been tested: Visio 2010s BPMN stencil Process Modeler 5 Mapping Visio elements to BPMN Objects OBPC maps Visio elements to BPMN objects in order to represent them in the Common Object Model. For this purpose, a mapping file named VisioMasterMap.xml is used to provide the rules for this mapping. This file is found in a directory named xml beneath the Tutor install directory, as in the picture below.. If you are working with BPM, this file is located under your JDeveloper install directory, then navigate to /jdeveloper/jdev/extensions/tutor/xml. Examining this file will show how each element in Visio is mapped to an object in the OBPC Common Object Model.

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.

Appendix 2: Visio Import Technical Details Chapter 1 - Page 86

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"/>

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 2: Visio Import Technical Details Chapter 1 - Page 87

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 2: Visio Import Technical Details Chapter 1 - Page 88

BPMN Element Attributes


These tables show valid values for BPMN attributes according to the basic BPMN object types: Task Attributes and their values: Attribute TaskType Values None, Script, Reference, Service, User, Manual, Send, Receive Standard, MultiInstance true, false

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 2: Visio Import Technical Details Chapter 1 - Page 89

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

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 2: Visio Import Technical Details Chapter 1 - Page 90

Appendix 3: XPDL Import Technical Details


For importing XDPL files that do not conform to XPDL 2.1 or might be missing elements that OBPC expects, OBPC is extensibile through the use of XSLT. See Appendix 4: Customizing XPDL Import with XSL Doc for instructions on integrating custom XSLT to produce the best results. This appendix will provide several sample XSLT templates to handle common situations that a user of OBPC might encounter when importing XPDL files. If you are using Tutor and/or BPA, the files mentioned in this appendix are located in a directory named xml beneath the Tutor install directory. If you are working with BPM, they located under your JDeveloper install directory, then navigate to /jdeveloper/jdev/extensions/tutor/xml Required version XPDL 2.1 and the appropriate namespace attribute There is one requirement for importing XPDL files into OBPC: OBPC is designed to import XPDL 2.1 files. The following namespace must be present in the root element [i.e. <Package/>] of the XPDL source document as the default namespace: http://www.wfmc.org/2008/XPDL2.1 If the XPDLsource file targeted for import IS NOT XPDL 2.1 conformant, then an XSLT must be performed to generate the correct XPDL format for import into OBPC. The following sections provide some guidance for creating those transforms. Developers are encouraged to look at the sample xsl files that ship with OBPC for detailed examples. Handling Namespaces There are features of OBPCs handling of namespaces that must be understood for the successful use of XSLT when importing XPDL. The default namespace assumed by OBPC is http://www.wfmc.org/2008/XPDL2.1. In some cases a source file may be XPDL 2.1 compliant, but still lacks elements required by OBPC. In such cases, XSLT can be used to add those elements. Refer to scenario 1 below for a reference to such a transformation. Any other default namespace in an XPDL document will result in elements and attributes being treated as XPLD 2.1 conformant elements during import, which will likely produce poor results. XPDL source documents that are not XPDL 2.1 conformant must be transformed via xsl into XPDL 2.1 result documents. Four scenarios are possible: The source Xpdl elements are in default namespace and they conform to xpdl 2.1 See stylesheet BizAgiPatch.xsl as an example for handling this scenario. The source Xpdl elements are in default namespace but they dont conform to xpdl 2.1. See stylesheet patch.xsl as an example for handling this scenario. The source Xpdl elements are not in default namespace and they dont conform to xpdl 2.1. See stylesheet ALBPMPatch.xsl as an example of handling this scenario. The source Xpdl elements are not in default namespace but they conform to xpdl 2.1 See stylesheet TibcoPatch.xsl as an example of handling this scenario.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 91

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 92

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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 93

<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>

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 94

<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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 95

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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 96

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>

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 97

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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 98

<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>

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 99

<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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 100

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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 101

<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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 102

</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>

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 103

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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 104

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.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 105

<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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 3: XPDL Import Technical Details Chapter 1 - Page 106

Appendix 4: Customizing XPDL Import with XSL Doc


Scope
OBPC was designed with user extensibility in mind. The conversion of models from source to target follows general transformation rules and has guidelines and constraints. If an XPDL document is imported and does not produce desirable results, there may be a mismatch between the format OBPC is expecting and the format of the XPDL document. Under such circumstances, an XSLT transform may be used to create a better match between the original XPDL diagram and the OBPC results. This instruction covers recommended methods for incorporating an XSL stylesheet to modify the output of an OBPC conversion. OBPC ships with several XSLT files that may serve as examples to XSLT developers.

OBPC and XSLT


OBPC can use XSLT transformations to parse XPDL files and generate a consistent format before the data is passed to BPA or BPM and displayed as a diagram. OBPC will search for a transformation file associated with an XPDL document. Typically, an XPDL file contains a <Vendor/> element that provides the vendor name. By adding the Vendors name and the path to an xsl file to OBPCs XSLFilePaths.xml, the vendor name will be searched to locate the associated transformation files path. The file path is retrieved from index file, and OBPC applies the XSLT transformation on the XPDL file.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 4: Customizing XPDL Import with XSL Doc Chapter 1 - Page 108

Appendix 5: Tutor Conversion Technical Details


Oracle Tutor does not support all of the activity types that can be used to model a process in BPA or BPM. Therefore, when exporting a model to Tutor, a subset of the full model is generated to allow it to be represented in Tutor. Below is a table showing the mapping of the basic elements from BPMN to Tutor. Following that, those activities that require further processing will be described. BPMN Activity or Element Lane Task Gateway Exclusive Data Inclusive If [condition], goto task #n directive A Task "Perform one of more of the following" is inserted, followed by an "If condition, goto task #n" directive for each outflow. In parallel: goto task #n, goto Task #m, Task inserted: "Verify active parallel tasks are complete and continue." Task inserted: "Verify all parallel tasks are complete and continue." Stop and complete [../] directive Subprocess is removed; objects inside the subprocess are incorporated into the flow of the document. Nested Start and End are removed. Tutor has no Start event equivalent, so Start events are removed. However, when converting multiple pools, a labeled Start event may be converted into a task or a gateway. End of activity directive. However, when merging n/a [Non-automated] Attribute Actor Task. Tutor

Parallel OR (Join)

AND (Join)

Subprocess

Collapsed Expanded

Event

Start

End

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 5: Tutor Conversion Technical Details Chapter 1 - Page 109

BPMN Activity or Element

Attribute

Tutor pools, an end event may be removed or converted to a task.

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 5: Tutor Conversion Technical Details Chapter 1 - Page 110

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.

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 5: Tutor Conversion Technical Details Chapter 1 - Page 111

Copyright 2010, Oracle and/or its affiliates. All rights reserved.

Appendix 5: Tutor Conversion Technical Details Chapter 1 - Page 112