This chapter describes how to use the business catalog to store and organize the components needed to implement the processes in your BPM Project. It also describes how the artifacts in your BPM project are represented in the business catalog.
This chapter includes the following sections:
The business catalog is a repository that stores the components you use to implement some flow objects in BPMN processes.
The business catalog stores the following types of components:
Errors
Events
Human Tasks
Business Rules
Service Adapters
Synthesized Types
BPEL Processes and Mediators
Business Objects
Business Exceptions
Depending on the component you can use them for the implementation of a specific activity or multiple flow objects or to define the data associations of a flow object.
Table 9-1 shows which flow objects use each of the components in the business catalog for their implementation.
Table 9-1 Flow Object Implementation
Component | Flow Objects |
---|---|
Error |
|
Business exception |
|
Event |
|
Human Task |
User task |
Business Rule |
Business rule task |
Service Adapter |
|
Mediator |
|
BPEL Process |
|
Business Object |
You can use them as arguments in the data associations of the following:
|
Depending on the type of component, the business catalog uses two different ways of storing them. You can divide the components by the way the business catalog stores them into the following categories:
Non-Synthesized Components
Synthesized Components
The business catalog stores a file with information about these components. When you open a BPM project, the business catalog reads the file it created to load the component.
The following components are not synthesized:
Business objects
Exceptions
Modules
Customized services and references
The business catalog generates the component structure dynamically based on an SOA component included in the SOA composite or an XML type or element. You cannot modify these components. Depending on the type of component they appear on a different predefined module. You cannot move the component to another module. To modify or store the component in another module, you must customize the service or the type.
The business catalog does not store any type of file for synthesized components. It generates the structure of synthesized components dynamically based on the XML or SOA component they represent.
You cannot modify synthesized components or move them to another module. Because these components are dynamically generated, they automatically reflect any change you make to the XML schema or SOA component they are based on.
The following components are synthesized:
Synthesized Types
Business Rules
Human Tasks
BPEL Processes
Mediators
The way you add a component to the business catalog varies according to the type of component.
Errors: When you add a service or a reference to your BPMN Project, if the operations they contain can generate errors, then these errors appear in the Errors predefined module.
Events: When you add events to the SOA Composite, they appear in the Events predefined module. See Section 20.10, "Introduction to Communication Between Processes Using Signal Events", for more information on how to use events in a BPM project.
Human Tasks: The existing Human Tasks included in the SOA Composite and the new ones you add automatically appear as components in the HumanTask predefined module. This component is generated from the Human Task you added. See Chapter 11, "Working with Human Tasks" for more information.
Business Rules: The existing Business Rules included in the SOA Composite and the new ones you add automatically appear as components in the BusinessRules predefined module. This component is generated from the Business Rule you added. See Chapter 13, "Using Business Rules" for more information.
Service Adapters: The existing Service Adapters in the SOA Composite and the new ones you add, appear in the Services and References predefined modules. See Chapter 12, "Working with Services and References" for more information.
BPEL Processes and Mediators: The BPEL Processes and Mediators included in the SOA Composite and the new ones you add, automatically appear as components in the Services and References predefined modules. See Section 12.3, "Introduction to Oracle Mediator in Oracle BPM" and Section 12.4, "Introduction to BPEL Processes in Oracle BPM"
for more information.
Synthesized Types: When you add a service or a reference that requires one or more arguments, if the data type of those arguments does not exist in the Types predefined module, then Studio automatically adds them. See Section 12.1, "Introduction to Services and References" for more information. You can customize a synthesized type to change its name and move it to a user-defined module. See Section 9.4, "Customizing Synthesized Types"
for more information on how to customize a synthesized type.
Business Objects: There are different ways of adding Business Objects to the business catalog. See Chapter 10, "Modeling Business Objects" for more information.
Note:
If you add a component that references resources that are missing or corrupted, the business catalog shows this missing dependencies with an error node. The label of the node displays the path of the resource. For more information on the missing resource place the mouse over the node to display the tooltip, or build the BPM project. Building the BPM project enables you to find the component that requires the missing resources.
You can organize the Business Objects in the business catalog into different groups using modules. Generally you group all the related components into a module.
In the Sales Quote example you can create a module named Quotes to store all the components used to manage the information about the quotes used in the process.
You can nest modules. Nesting modules enables you to create a hierarchical structure that reflects the organization of your components.
In the Sales Quote example you might want to group all the modules that handle the information in the project into a single module. To do this you can create a module named Data that contains modules like Quotes and Contracts.
Organizing components using modules has the following benefits:
It improves the readability of your project. Ideally the name of the module provides information about the components it contains.
It makes it easier to locate a specific component.
If needed, you can use the same name to identify different components that belong to different modules.
You cannot add Business Objects in the root level of the business catalog. You must always create a module where you can store your Business Objects.
It is a good practice to name the modules using a descriptive identifier. This makes it easier to find a component and makes your project easier to understand for other developers.
The business catalog contains the following predefined modules:
Errors: Stores the errors that the operations in the services and references in your project define.
Events: Stores the Events that you add to the SOA Composite.
HumanTasks: Stores the Human Tasks that you add to your project.
References: Stores the interfaces you can use to define the interface of your BPMN process.
Rules: Stores the Business Rules that you add to your project.
Services: Stores the components that you can use to implement the flow object in your BPMN process.
Types: Stores the types that Studio generates when you add a service or a reference that require arguments of types that do not exist in the business catalog.
These modules are a permanent part of the business catalog and you cannot remove or rename them. Studio does not allow you to create new top level modules with these names.
You cannot create new modules within these predefined modules. Because the components stored in them are synthesized, you cannot rename them or move them to other modules.
The business catalog enables you to create new modules to store and organize the Business Objects in your project. You can add a module at the root level of the business catalog or within another module.
You can create a new module to store the new components you create and the customized services and references.
In the BPM Project Navigator, right-click the Business Catalog node or a user-defined existing module.
Select New.
Select Module.
Enter a name to identify the module.
Click OK.
You can delete the custom modules in the business catalog. You cannot delete the predefined modules. When you delete a module, you also delete all the components within the module.
You can delete those modules that you do not use or need.
In the BPM Project Navigator, right-click the module you want to remove.
Select Delete.
A confirmation message appears.
Click OK.
When you delete a module, the module and the components within the module are removed from the business catalog.
If there are any flow objects or components in your project that use any of the deleted components, then this causes errors when you build your BPM project.
You can customize a synthesized type to change its name for a more descriptive name that helps process analysts and process developers understand the use of the component. When you customize a type you must also provide a user-defined module in which to store the customized type.
You can customize a synthesized type to change its name and move it to a user defined module.
To customize a synthesized type:
In the BPM Project Navigator, expand the Types predefined module.
Right-click the type you want to customize.
Select Customize Type.
The Create Business Object dialog appears.
In the Name field, enter a name for the customized type.
In the Destination Module field, enter the name of the module in where you want to store the customized type, or click the browse button to browse the available modules and select one.
Click OK.
The synthesized type in the Types predefined module disappears and a new business object appears in the module you selected for the customized type.
Oracle BPM Studio automatically replaces all the references to the synthesized type with references to the customized type.
If you delete the customized type, then the synthesized type appears back in the Types predefined module.