Read Custom Escalation in Oracle BPM @ -
Understanding BPM Event
Collaboration is the message exchange between processes while conversation is for grouping message exchange between processes and it also defines the state of collaboration between participants and the message exchange will follow the message exchange patterns. BPEL process, BPMN process, Human tasks, Business rules and references are termed as participants in this context. Oracle BPM offers send and receive task, message events, signal events, service tasks, call activities etc. to communicate with other processes, service and events. This chapter you will expose the scenario where we have assumed that the loan origination processes gets started from the bank’s back office (customer case/ back office center). There are other ways too to initiate loan like web, branch etc. Backoffice process interacts with loan origination process and once the loan origination process gets completed, Backoffice process initiates customer feedback process. While implementing the sample due care is taken to demonstrate most of the BPM features which provisions interprocess and collaborative communications.
Oracle BPM offers four kinds of events -
- Start event
- Throw event
- Catch event and
- End event
Start Event- Message Start, Signal Start and Timer Start are used to start a new process instance. Start event can be defined for a BPM process or can be a trigger type for the event Subprocess. Event Subprocess are used to handle a event and are referred as event Subprocess. They can either interrupt normal process flow or they can be non-interrupting. Event Subprocess can have message start, signal start, timer start and error start as the start trigger type. It’s only error trigger type for the event Subprocess which is interrupting in nature however all other trigger type can be both – interrupting and non- interrupting.
Intermediate events – Catch event and throw event are also termed as intermediate events as they establish interaction of a process with other process and services. Start events can only catch any triggers and end events which can throw triggers however intermediate events can throw and catch events. As you will check in above table – intermediate events are of throw type and catch type to throw and catch events.
Catch event can used in many variants in Oracle BPM. Catch event can be configured as wait activities which happen to wait for message, signal or timer event to take place. OR catch events can be configured as a boundary event on various activities and sub processes. These boundary catch event can be of interrupting or non-interrupting type , depends on the way they deal with the normal process flow. You can implement timer as boundary event to introduce a delay, SLA or a wait on an activity or a embedded Subprocess. You can use a receive activity in place of a catch event however they have there on use case which we have discussed in this chapter. Catch intermediate events are also used as boundary events to a Subprocess or activities of certain type. When any associated boundary event executes then the process flows to exception path. A boundary event can of interrupting or non-interrupting type. In non-interrupting boundary event, process flows to normal process flow and exception flow as both are mutually exclusive however in interrupting boundary event case, process flow moves to only exception flow.
Throw message intermediate event are, of asynchronous nature and can be turned into synchronous nature , used to send messages to external processes and services and a catch message intermediate event to receive callback message from other process or service. Throw signal intermediate event is used to publish a signal while catch signal intermediate event is to subscribe and catch a broadcasted signal. When you publish and subscribe to events you are dealing with Oracle SOA’s EDN.
Timer boundary events are use to handle timeout exceptions and they can be of interrupting and non-interrupting types. Interrupting timer boundary event drags the process flow to exception path as it interrupts the normal process flow while the non-interrupting boundary timer event will allow the process to continue on normal path and in parallel also executes the exception flow. You can use non-interrupting boundary timer in cases like notification or escalation etc. Throw event are use to send a message or a signal in the process. They are similar to send task.
End event – They introduces normal process end if the process ends with a message or a signal. However if the process ends with a terminate or an error it;s termed as abnormal process ending.
Note – N is specified for None start event as you cannot start a process instance by just having a none start event. You would need a receive task with create instance property or a initiator human task to create a process instance.
Changing JCA Adapter properties using Configuration Plans
While moving from one environment to another (DEV à TEST àPRD), you typically must modify several environment-specific values like –JDBC connection strings,
- Host names of various servers,
- Port details etc.
Composite.xml – Here you can replace following –
- Any composite,
- Service component,
- Service and
- Binding properties.
Bindings – bindings.ws
- Attribute values for bindings
- Schema Location attribute of an import in a WSDL file
- Location attribute of an include in a WSDL fi
- Schema Location attribute of an include, import, and redefine in an XSD file
- Any properties in JCA adapter files
- Modify and add policy references for the following
- Service component
- Service and reference binding components
Solution is to use configuration plan. Configuration plans enable you to modify these values using a single text (XML) file called a configuration plan. The configuration plan is created in either Oracle J-Developer or from the command line. During process deployment, the configuration plan is used to search the SOA project for values that must be replaced to adapt the project to the next target environment.
This blog we will check how to replace properties in JCA adapter files –
Use Case – Changing the Physical path for File Adapter from which it will read/write the contents.
While developing the Application; you design the adapter to have following path
The .jca file in this case will look like
<connection-factory location=”eis/file/R12Fileadapter” adapterRef=””/>
<endpoint-interaction portType=”Write_ptt” operation=”Write”>
<property name=”PhysicalDirectory” value=”/u01/fs/dev/filelocation “/>
<property name=”Append” value=”false”/>
<property name=”NumberMessages” value=”1″/>
- Generate a configuration for your composite
- Use the following code in configuration file to change the file location (Physical directory property of File Adapter ) -
<jca:property name=”PhysicalDirectory”><replace>/u01/fs/crp/filelocation</replace> </jca:property> </wsdlAndSchema>
- You will get the Physical Directory path replaced to – u01/fs/crp/filelocation
Similarly; you can replace the Topic/Queue name for the JMS adapter using following
<!– replace jms destination for jms adapter –>
Business finds that BPM is unavoidable and needs a reasonable explanation to – “What value organizations currently derive from BPM?”
What’s triggers BPM – Business triggers are: growth & innovation, standardization, compliance & safety, mergers & acquisitions, cost reduction, risk management, emerging competition, major business or IT transformations, major systems implementations (e.g. ERP), next generation process automation, or the decision to establish a BPM capability.
BPM is a thing of past, with CEP+BPM; vendors are offering ‘iBPM (Intelligent BPMs)’. Still no surprise that value addition is a primary concern for many. So let’s talk about the values BPM offers –
- Transparency – The approach supports a better understanding of processes, and enables organizations to consider them during managerial decision-making.
- Streamline operations – They allow organizations to streamline operations (efficiency) and can contribute to increased quality of products, services and processes.
- Improved internal integration (for example, by driving the creation of employee centered processes) and external networking via tighter supply chains and an increased focus on the environmental implications of corporate operations.
- Agility and Predictability – BPM initiatives are essential in ensuring predictability and consistency (Compliance) as much as facilitating increased organizational agility.
- Visibility – BPM gives visibility of what is going on inside business processes in real-time. This means better visibility of business environment metrics and the integrated value chain, which includes forecast, supply, production, distribution, sales, invoicing, and customer service. This visibility enables us to monitor the KPIs and SLAs, and answer a wide range of questions, such as: - How many new accounts were opened during this particular time?Are we performing above or below the KPI?Which region is selling more?Which process is causing a bottleneck, how many transactions are blocked in and how much money do they represent?How many claims were received and how many have been resolved? How many loans are waiting for approval and how many were rejected?
- KPI and SLA driven business – BPM also allows managers to drive the business based on KPIs and SLAs. For example, in loan processing there are usually a lot of manual and paper-based activities. BPM replaces paper with electronic forms or scanned images that are automatically routed through the process. So if the marketing department launches a campaign promising loan approval in one day, BPM can automate that process and ensure adherence with SLAs.
- Optimizing business performance – BPM helps companies to drive their business according to specific objectives. BPM would enable the loan company to follow and manage each loan application in real-time through the whole approval process. Managers would be able to identify the products and the business units which are performing well, helping them to take better and faster decisions in order to increase business performance according to KPIs and SLAs.
Who don’t want its business to –
- Identify high-impact opportunities
- Define the best approach to exploit these opportunities (business + technology)
- Implement solutions and continuous improvement
- Implement change management and self-sufficiency.
Who can offer this? - BPM
BPM can be used to create and automate processes across applications, modify these processes with ease and structure collaborative processes and tasks. In addition BPM can be used to orchestrate across multi-channel customer interactions and give insight into key performance metrics. The applications can continue to be upgraded and maintained independent of the BPM layer.
BPM and its process accelerators offer –
- Designed for end-user customization
- Upgrade safe
- Deployed on-premise or in cloud
- Embedded Business Intelligence, collaboration and managed content
- Collaborative, intuitive multi-channel interface
- Adaptive platform to protect against technology shifts
- Standards-based, hot-pluggable architecture
An intelligent Business Process Management Suite (iBPMS) provides the foundation to achieve operational excellence and accelerate business innovation.
Now the paradigm has shifted and Business needs to respond pro-actively rather than re-actively. Brain have the predictive ability i.e. humans have an ability to predict based on the occurrence of events in real-time.
We need business’s decision making system to have such predictive analysis and decision making capability based on the occurrence of events in real-time.
Today’s existing decision making systems are using historical data to analyze and identify patterns and have algorithm based or statistical forecasting techniques to drive planning. To make those decisions they have rules i.e. business rules to make appropriate business decisions however these rules cannot evolve automatically.
One can change rules at runtime in an application; it’s an offering of a tool however the rules cannot evolve themselves automatically and cannot predict the future based on real-time business events. Example – using BI and Analytics software, enterprises can plan promotions, can optimize inventories however if business tap into the business events they can predict the behavior of the customers and if they found a customer likely to churn they can start engaging with them pro-actively.
An iBPMS expands the traditional BPMS by adding the new functionality needed to support Intelligent Business Operations (IBO), such as real-time business analytics, deep complex-event processing (CEP), social media to support social behavior and collaboration, and expanded technologies to support growing requirements for mobility.
Put BPM and CEP together and get a responsive enterprise. BPM and CEP together gives you intelligent business processes that react to changing business conditions in real time, providing continuous visibility—in short, an instantly responsive enterprise.
- 1. Discover information contained in the events
- 2. Understand the information at macro level
- 3. Determining the impact and then act accordingly.
- 1. Ensures business processes are optimally defined, managed and monitored.
iBPM = BPM + CEP + Social Media + Mobile Devices
When you grind – BPM, CEP with Social Media and Mobile Device technologies and when you are spicing things with more analytics you get an iBPM.
When you include analytics and iBPM into process orchestration, you are offering process participants with real time situation awareness and hence they can tailor their response most appropriately to emerging business threats and opportunities.
- 1. It allows organizations to have more intelligent processes that can be aimed at better operations minimally and innovative processes easily.
- 2. iBPMS enhance a business’s situational awareness by seeking patterns of interest, enabling quicker / more effective decisions through poly-analytics and rapid adaptation for appropriate actions through flexible processes
BPM vs iBPM –
- Social media to incorporate more external data sources, external perspectives (such as experts and customer voices) and context data into the entire life cycle (not just the design-time experience). Social media can enhance and provide more information about the situational context. Social media will also support additional analytical techniques, such as social network analysis, to support decisions regarding the best next actions. This also allows for better collaboration and crowdsourcing.
- Mobile device support to give individual contributors and supervisors 24/7 access to work to sustain responsiveness, and to allow for mobile interactions within the process context, especially in global operations.
- Expanded active analytic capabilities in such areas as business activity monitoring (BAM) and CEP technologies to provide broader, better and predictive analytics; deeper and interactive business dashboards; better real-time visibility into process performance; more timely alerts for exception conditions; improved process intelligence; and better context awareness.
- Integration with on-demand analytic tools, such as statistical (predictive) analytics and simulation. When applied in an IBO context, these tools are aimed at repeatable, operational decisions, rather than ad hoc tactical or strategic kinds of decisions. The same analytics can play a role in active analytics (for example, when invoked by a BAM or CEP platform).
- An expanding set of decision management tools leveraging “poly-analytics,” including more powerful support for rule management, optimization and simulation technologies, as well as constraint-based optimization engines that use advanced mathematical techniques to weigh trade-offs and generate the most effective available decision.
- Access to new forms of unstructured and external information sources, including video, audio and social streams.
- Role-based user access, user experience and interaction pattern support.
Endorsing BPM as a discipline, rather than a miraculous system in the organization is the key to a process-centric enterprise. A paradigm shift is needed for BPM to be successful in an organization. BPM should be embedded in the organization’s culture.
Oracle Fusion Applications Integration using Oracle SOA Suite
1. Obtain the WSDL from the Oracle Enterprise Repository for Fusion Applications cloud hosted instance (http://fusionappsoer.oracle.com ) – This requires a free Oracle login. Search for Asset Type = “ADF Service” and enter the name of the service, such as Account. From the results list, pick the desired service, such as Trading Community Account. Clicking on the Details tab will provide a link to the Abstract WSDL as well as the URL pattern for finding the Concrete WSDL in your Fusion Applications environment. Simply replace the hostname and port and download the WSDL.
Note that not all the services are available in SaaS mode since some services
are “internal” and not exposed on the external virtual host; that is, they are inside the “firewall”. To ensure that the service you have selected can be invoked from external clients, click on the Taxonomy tab of the service definition and ensure that Keyword=External is present.
2. In Oracle JDeveloper, create a SOA project with a BPEL process that needs to integrate with Oracle Fusion Applications. Create a partner link based on the WSDL obtained in step 1.
3. Apply a compatible security policy to this partner link. If your environment has an SSL enabled environment, you can use the out-of-the-box oracle/wss_username_token_over_ssl_client_policy. You can also choose the
equivalent SAML policies (for identity propagation) or WS-Security message protection enabled policies if these have been enabled in your environment.
To get invoked via outbound services from Oracle Fusion Applications, you would follow these steps:
4. Set up a Receive activity in a BPEL process with a SOAP endpoint and implement the process based on the WSDL and XSD documented by Oracle Fusion Applications in the Application Composer Object Workflow Outbound Message page. This can be considered as an intermediary web service that understands the Fusion objects and mediates the requests to other on-premise or cloud applications as needed—for example, to synchronize new customers created with the on-premise Master Data Management system or to create them as Contacts in the Oracle RightNow CX cloud service.
5. Deploy the composite and obtain the endpoint URL.
6. In Oracle Fusion Applications, register the endpoint URL in the Application Composer Object Workflow page in the Outbound Message page activity for the object. You can now receive this outbound message in your SOA composite and process it as per your required business process.
Granularity of service
The most important aspect in determining granularity is probably re usability if a piece of software is (or will be) used by more than one consumer, this piece of software should be a separate service. If not, we can incorporate this piece of software in a larger composite to hide it.
More specifically, for SOA composites this would mean:
- If a component (e.g., a business rule, a BPEL component, etc.) is reusable, create a dedicated SOA composite to contain it.
- If not, embed the non-reusable component in an existing SOA composite or merge it with another SOA composite to create something that is (re)usable.
Other than reusability, you should also take into account organizational and administrative considerations like -
- Rate of change: fast changing components should be separated from more stable ones.
- Availability: it makes sense to create a separate SOA composite for something that needs to be available 24/7 in order to keep it separate from other components that are less critical and not in constant use.
- Ownership: ideally, a service or process should have a single (business) owner. If more than one owner is identified, the composite might be too big.
It also depends on the approach you are following for SOA design and architecture. If it’s top-down means – defining problem, designing architecture and developing solutions then this means that the business unit (user) drives the requirements and essentially (but, not directly) the service granularity.
By definition a coarse-grained service operation has broader scope than a fine-grained service.
Coarse-grained service requires increased design complexity but can reduce the number of calls required to complete a task.
The four key factors to consider when designing for optimal granularity are performance, message size, transaction and business function:
Performance – Web services are accessed remotely and calls to web service operation create more networks overhead. Reducing the number of service requests reduces that overhead. This means Business Process layer services should be coarse-grained and while fixing a naming convention to them – use a NOUN. Examples like – Insurance Quote Service and Inventory Service and not process quote, add employee etc.
Message size – Coarse-grained services may pass more data than fine-grained services, including data that is not specifically required for the task. Reducing message size may require adding a more fine-grained operation.
Transaction – For conceptual clarity each service operation should perform a single transaction. This also simplifies error recovery, and typically eases design.
Business Function – Ideally, each service operation maps to a single business function, although if a single operation can provide multiple functions without adding design complexity or increasing message sizes, this generality can reduce implementation and usage costs.
Conclusion - Focusing on the actions (verbs) rather than the service (nouns) creates fine grained services. Hence use verbs for Business Service and Nouns for Business Process services.