BPM processes,receiving signals (events) & correlation to existing instance

Hi,
BPM 11g/SOA Suite 11g (R1 PS2)
I am wondering whether it is possible to receive signals (EDN events) into a running process instance. The documentation describes how a process can be started by an event. I would like to be able to feed an event (signal) into a running process (just like we do with correlation in BPEL processes). Is that possible - and if so, how?
Along the same lines, can BPM processes receive messages through externally exposed WebService operations - into correlated process instances? For example: I have started the process to create a new employee in the organization and I want to inform the process instances taking care of this employee that she will start on a later date than originally assumed (or not at all because she has accepted another job). I know the unique employee id for this new hire. How can I configure the BPM process such that this incoming call after the instance has started is fed into a Receive activity in the process instance working on this employee?
Maybe a similar is question would be: can a message catch event be used without a corresponding message throw event - to catch incoming messages asynchronously and not related to a message sent by the process instance.
thanks very much for your insights,
Lucas

I also tried DB Adapters and it is not working for my scenario. Needed help/pointers from a BPM Guru \.
As per my business scenario, If there any update in the database (offline approval. not using worklist) then i should complete the running BPM process for approval.
1. To achieve this, I created a adapter to poll and it is working in polling. What is not working is picking the update in process and mark is closed/complete.
2. I tried using Catch Event with continuation mode (but it needs throw event to begin with).
3. I also tried ‘Receive event’, which also needs start event for continuation.
4. If i use Initiate mode for catch event then it initiate a new process and mark it close and does not do anything with original process (having this catch event). This catch event is still waiting.
5. If i use “receive” event with Initiate mode then jdeveloper is giving compilation time error saying that some service is not referenced in composite.
6. I have also tried other options of using “Sub-process” or another process and invoking it but nothing seems to work.
Any help/pointers? Thanks a lot.

Similar Messages

  • Oracle BPM - process correlation

    Hi,
    I need to model a process in BPM which:
    checks if other process with certain correlation id exists
    if yes then send message to that process
    if not start new process
    Can anyone tell me how should I check if the process with certain correlation id exists/is running?
    thanks for any help,
    Kamil Warcaba

    Hi,
    You can achieve this behavior using BPMN, BPEL and Mediator components within a composite. We use this approach in a recent project. I wrote a new post in my blog explaining how to do that: http://blog.andrade.inf.br/2011/01/implementing-correlation-in-bpm-11gr1.html
    I hope this can help.
    Regards,
    Rafael Andrade

  • Mid-process Receive (onEvent) is not picking up published event

    We have a composite (CompositeA), which has 2 BPEL processes (bpelprocess1 and bpelprocess2). bpelprocess1 is synchronous and bpelprocess2 is a one-way. bpelprocess1 receives a message from the client - then sends the message using a one-way Invoke action to bpelprocess2 - bpelprocess2 transforms the message and assigns some values - then sends the message to Event1 through an Invoke action - bpelprocess1 has a Receive activity waiting for an event from Event1 - then it will send the message back to the client as the Reply. Everything works up to the point where the bpelprocess1 Receive(onEvent) activity is waiting for an event, it sits in this "Pending" state until the SyncMaxWaitTime value has expired and then we get a timeout error (see below).
    "Waiting for response has timed out. The conversation id is null. Please check the process instance for detail."
    So our question is, why does the Receive(onEvent) in bpelprocess1 never pick up the published event? We've run some additional tests to ensure the event is being published, and that has been confirmed.
    Is it possible to receive an event that was published during the current instance of the process (i.e., since bpelprocess1 invoked bpelprocess2 which invoked the Event1 publish, can bpelprocess1 perform a mid-process Receive of the event that was just published?
    Please let us know if this makes sense or if you have any additional questions.
    On a side note, if we create an independent mediator component in the same composite and have it subscribe to Event1 as well, then just write the message out to a file. It would not pick up the message from the EDN in the scenario described above, if we set the property nonBlockingInvoke=true or bpel.config.transaction=requiresNew on the bpelprocess2 partnerlink from bpelprocess1, the Mediator would get the message from the EDN, but bpelprocess1 still timed out waiting for the event. If we setup another BPEL process (bpelprocess3) in the same composite (though not linked to bpelprocess1 and bpelprocess2) and it has a mid-process receive onEvent listening for Event1, it does not pick up the published event either, so seems to be an issue with the mid-process receive onEvent in the synchronous BPEL process.
    Any help is appreciated.

    Thanks for the reply, but there is no issue with the one-way from bpel1 to bpel2, we do not expect nor want a response from bpel2, it should just publish the event and complete. The bpel1 should continue it's flow (which it does) and the next action is a Receive action listening for an event (that was published by bpel2), but the Receive never finds the event.
    Here's a less complex use case:
    1. bpelprocess1 is a synchronous process which publishes to Event1 (this completes successful and returns a success message to the client)
    2. bpelprocess2 is an asynchronous process which has a mid-process Receive action that is listening for Event1
    3. bpelprocess3 is a process which is initiated by Event 1
    If we execute bpelprocess2 it will set at the mid-process Receive action in a PENDING state, waiting for Event1 to occur.
    If we then execute bpelprocess1 the Event1 is published and we receive a "SUCCESS" response back.
    At this point bpelprocess3 is initiated (b/c it's initial Receive is triggered by Event1)
    We would also expect the mid-process Receive in bpelprocess2, which is in a PENDING state to trigger, but it never does.
    Hopefully this use case makes more sense.

  • Synchronous start event for a BPM process??

    Hi,
    If I trigger a BPM Process from say a BSP Application(Shld be able to do this as all I need is a Service Interface (Start Event) related to the BPM), If for some reason the process fails to start -- Is there a way of  having a response that would let the triggering application know that the BPM process instantiation has failed...
    What I am trying to understand is :
    1)would the Service Interface for the BPM start Event, provide a response ?...??
    2)Is it possible to have some kind of logic implementation for this Service Interface(that starts a BPM Process) ??
    Eventhough there was a similar message in the forum, I wanted to have a clear picture ....
    A detailed reply would be highly appreciated ..Thanks !
    Best Regards,
    Arun

    Hi Arun,
    I guess you need to distinguish 2 to 3 cases here:
    In case you used a snychronous call in the service interface definition assigned to the process start event it will result in a SOAP fault, which says that the process started successfully. Reason for that is explained here: Starting a BPM Process - Where is the Service?
    Problems within your process would also not be reflected in the SOAP message (e.g. if there is some issue within the first step after the process has been started). I guess that is somehow obvious as the process has been started after all, but I wanted to state it anyways.
    Finally and that's possibly the most important point for you: If there are any problems during the instantiation and in the end no process has been started then this should be reflected in the SOAP result. If not I would consider it as an issue in the implementation and would like to ask you to open a ticket for it on http://service.sap.com/message
    More details could be found in the documentation:
    Starting a Process
    https://help.sap.com/saphelp_nwce711/helpdata/en/62/a6d7ac03994e0796c6b949c8952547/frameset.htm
    Creating Service Interface Definitions
    https://help.sap.com/saphelp_nwce711/helpdata/en/47/62632a3c304359e10000000a42189c/frameset.htm
    Hope that helps,
    Martin

  • Invoking existing instance from a process without correlation

    Hi,
    I want to find out if I can do this.
    Suppose that instance A was created by others. Instance B of different process wants to invoke instance A. But they do not have a correlation.
    This is a part of problem that we want to solve to fix issues in deployed process. Instance A is waiting for user response and we have been invoking this instance A from Java code.
    But we want to have a intermediate bpel process B to call instance A. Java code is going to call process B. Because process A is deployed without correlation and active in production, we cannot use correlation to find instance.
    I may be able to use programmatic approach using InstanceHandle. But I want to find a way to invoke this in bpel.
    Can you give me some hint?
    Thanks,
    Imju

    If my method is now defined as so;
    public <T extends GenericDaoImpl> T getDao( Class<T> daoClazz )
    return daoClazz.newInstance();
    The IDE flags up an error "This method must return a result of type T"
    So I think I'm missing something. I have defined an abstract generic DAO helper class to be extended by child DAOs;
    public abstract class GenericDaoImpl<T, PK extends Serializable>
    CRUD methods
    findBy(...) methods
    where T is the class type & PK the primary key.
    So presumably my getDao(...) method should be defined as;
    public <T extends GenericDaoImpl<T, PK>> T getDao( Class<T> daoClazz )
    return daoClazz.newInstance();
    But it then cannot resolve PK to a type. I think I'm either trying to impose a type on the signature when
    it should (obviously?) be generic, or presuming that it will evaluate my generic type which I have somehow
    not exposed to the method / signature.
    Am I missing something subtle or just being stupid.

  • Cannot deploy BPM process from JDev into remote weblogic server

    Hi all,
    I have in a trouble!
    I've built a simple BPM process but when i deploy it from JDeveloper to a remote weblogic server it have following error, pls give me solution
    [02:16:27 PM] ---- Deployment started. ----
    [02:16:27 PM] Target platform is (Weblogic 10.3).
    [02:16:27 PM] Running dependency analysis...
    [02:16:27 PM] Building...
    [02:16:31 PM] Deploying profile...
    [02:16:31 PM] Updating revision id for the SOA Project 'Project1.jpr' to '1.0'..
    [02:16:31 PM] Wrote Archive Module to C:\JDeveloper\mywork\TestDeploy\Project1\deploy\sca_Project1_rev1.0.jar
    [02:16:31 PM] Running dependency analysis...
    [02:16:31 PM] Building...
    [02:16:33 PM] Deploying 2 profiles...
    [02:16:33 PM] Wrote Web Application Module to C:\JDeveloper\mywork\TestDeploy\Project2_UI\deploy\Project2_UI.war
    [02:16:33 PM] Wrote Enterprise Application Module to C:\JDeveloper\mywork\TestDeploy\deploy\TestDeploy.ear
    [02:16:33 PM] Deploying sca_Project1_rev1.0.jar to partition "default" on server AdminServer [http://HP:7001]
    [02:16:33 PM] Processing sar=/C:/JDeveloper/mywork/TestDeploy/Project1/deploy/sca_Project1_rev1.0.jar
    [02:16:33 PM] Adding sar file - C:\JDeveloper\mywork\TestDeploy\Project1\deploy\sca_Project1_rev1.0.jar
    [02:16:33 PM] Preparing to send HTTP request for deployment
    [02:16:33 PM] Creating HTTP connection to host:HP, port:7001
    [02:16:33 PM] Sending internal deployment descriptor
    [02:16:33 PM] Sending archive - sca_Project1_rev1.0.jar
    [02:16:33 PM] Received HTTP response from the server, response code=503
    [02:16:33 PM] Invalid logging line: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    [02:16:33 PM] Invalid logging line: <html><head>
    [02:16:33 PM] Invalid logging level on line: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    [02:16:33 PM] Invalid logging line: <title>ERROR: The requested URL could not be retrieved</title>
    [02:16:33 PM] Invalid logging line: <style type="text/css"><!--
    [02:16:33 PM] Invalid logging line: /*
    [02:16:33 PM] Invalid logging line: Stylesheet for Squid Error pages
    [02:16:33 PM] Invalid logging line: Adapted from design by Free CSS Templates
    [02:16:33 PM] Invalid logging line: http://www.freecsstemplates.org
    [02:16:33 PM] Invalid logging line: Released for free under a Creative Commons Attribution 2.5 License
    [02:16:33 PM] Invalid logging line: */
    [02:16:33 PM] Invalid logging line: /* Page basics */
    [02:16:33 PM] Invalid logging line: * {
    [02:16:33 PM] Invalid logging level on line:      font-family: verdana, sans-serif;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: html body {
    [02:16:33 PM] Invalid logging level on line:      margin: 0;
    [02:16:33 PM] Invalid logging level on line:      padding: 0;
    [02:16:33 PM] Invalid logging level on line:      background: #efefef;
    [02:16:33 PM] Invalid logging level on line:      font-size: 12px;
    [02:16:33 PM] Invalid logging level on line:      color: #1e1e1e;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* Page displayed title area */
    [02:16:33 PM] Invalid logging line: #titles {
    [02:16:33 PM] Invalid logging level on line:      margin-left: 15px;
    [02:16:33 PM] Invalid logging level on line:      padding: 10px;
    [02:16:33 PM] Invalid logging level on line:      padding-left: 100px;
    [02:16:33 PM] Invalid logging level on line:      background: url('http://www.squid-cache.org/Artwork/SN.png') no-repeat left;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* initial title */
    [02:16:33 PM] Invalid logging line: #titles h1 {
    [02:16:33 PM] Invalid logging level on line:      color: #000000;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: #titles h2 {
    [02:16:33 PM] Invalid logging level on line:      color: #000000;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* special event: FTP success page titles */
    [02:16:33 PM] Invalid logging line: #titles ftpsuccess {
    [02:16:33 PM] Invalid logging level on line:      background-color:#00ff00;
    [02:16:33 PM] Invalid logging level on line:      width:100%;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* Page displayed body content area */
    [02:16:33 PM] Invalid logging line: #content {
    [02:16:33 PM] Invalid logging level on line:      padding: 10px;
    [02:16:33 PM] Invalid logging level on line:      background: #ffffff;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* General text */
    [02:16:33 PM] Invalid logging line: p {
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* error brief description */
    [02:16:33 PM] Invalid logging line: #error p {
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* some data which may have caused the problem */
    [02:16:33 PM] Invalid logging line: #data {
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* the error message received from the system or other software */
    [02:16:33 PM] Invalid logging line: #sysmsg {
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: pre {
    [02:16:33 PM] Invalid logging level on line: font-family:sans-serif;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* special event: FTP / Gopher directory listing */
    [02:16:33 PM] Invalid logging line: #dirlisting tr.entry td.icon,td.filename,td.size,td.date {
    [02:16:33 PM] Invalid logging level on line: border-bottom: groove;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: #dirlisting td.size {
    [02:16:33 PM] Invalid logging level on line: width: 50px;
    [02:16:33 PM] Invalid logging level on line: text-align: right;
    [02:16:33 PM] Invalid logging level on line: padding-right: 5px;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* horizontal lines */
    [02:16:33 PM] Invalid logging line: hr {
    [02:16:33 PM] Invalid logging level on line:      margin: 0;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: /* page displayed footer area */
    [02:16:33 PM] Invalid logging line: #footer {
    [02:16:33 PM] Invalid logging level on line:      font-size: 9px;
    [02:16:33 PM] Invalid logging level on line:      padding-left: 10px;
    [02:16:33 PM] Invalid logging line: }
    [02:16:33 PM] Invalid logging line: body
    [02:16:33 PM] Invalid logging level on line: :lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; }
    [02:16:33 PM] Invalid logging level on line: :lang(he) { direction: rtl; float: right; }
    [02:16:33 PM] Invalid logging line: --></style>
    [02:16:33 PM] Invalid logging line: </head><body>
    [02:16:33 PM] Invalid logging line: <div id="titles">
    [02:16:33 PM] Invalid logging line: <h1>ERROR</h1>
    [02:16:33 PM] Invalid logging line: <h2>The requested URL could not be retrieved</h2>
    [02:16:33 PM] Invalid logging line: </div>
    [02:16:33 PM] Invalid logging line: <hr>
    [02:16:33 PM] Invalid logging line: <div id="content">
    [02:16:33 PM] Invalid logging line: <p>The following error was encountered while trying to retrieve the URL: http://hp:7001/soa-infra/deployer</p>
    [02:16:33 PM] Invalid logging line: <blockquote id="error">
    [02:16:33 PM] Invalid logging line: <p><b>Unable to determine IP address from host name <q>hp</q></b></p>
    [02:16:33 PM] Invalid logging line: </blockquote>
    [02:16:33 PM] Invalid logging line: <p>The DNS server returned:</p>
    [02:16:33 PM] Invalid logging line: <blockquote id="data">
    [02:16:33 PM] Invalid logging line: <pre>Name Error: The domain name does not exist.</pre>
    [02:16:33 PM] Invalid logging line: </blockquote>
    [02:16:33 PM] Invalid logging line: <p>This means that the cache was not able to resolve the hostname presented in the URL. Check if the address is correct.</p>
    [02:16:33 PM] Invalid logging level on line: <p>Your cache administrator is [email protected].</p>
    [02:16:33 PM] Invalid logging line: <br>
    [02:16:33 PM] Invalid logging line: </div>
    [02:16:33 PM] Invalid logging line: <hr>
    [02:16:33 PM] Invalid logging line: <div id="footer">
    [02:16:33 PM] Invalid logging line: <p>Generated Tue, 20 Dec 2011 07:18:27 GMT by proxy.hipt.com.vn (squid/3.1.4)</p>
    [02:16:33 PM] Invalid logging line: <!-- ERR_DNS_FAIL -->
    [02:16:33 PM] Invalid logging line: </div>
    [02:16:33 PM] Invalid logging line: </body></html>
    [02:16:33 PM] Error deploying archive sca_Project1_rev1.0.jar to partition "default" on server AdminServer [http://HP:7001]
    [02:16:33 PM] HTTP error code returned [503]
    [02:16:33 PM] No error message is returned from the server.
    [02:16:33 PM] Error deploying archive sca_Project1_rev1.0.jar to partition "default" on server AdminServer [http://HP:7001]
    [02:16:33 PM] #### Deployment incomplete. ####
    [02:16:33 PM] Error deploying archive file:/C:/JDeveloper/mywork/TestDeploy/Project1/deploy/sca_Project1_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)
    Thanks a lot!

    Hi, thanks for your reply,
    I just check but soa-infra is up
    Result:
    Welcome to the Oracle SOA Platform on WebLogic
    SOA Version: v11.1.1.5.0 - 11.1.1.5.0_110418.1550.0174 built on Mon Apr 18 18:05:14 PDT 2011
    WebLogic Server 10.3.5.0 Fri Apr 1 20:20:06 PDT 2011 1398638 (10.3.5.0)
    I've deployed my process in local computer that good! but from remote JDev i've wrong
    Help me pls!

  • Wait for a message to proceed to the next activity in BPM Process??

    Hi,
    1. After a BPM process is initiated, is it possible to have a "Wait step" in the process ?...That is, I would like to continue to the next activity in the BPM process ONLY after I have received a certain message...
    We do have a "Wait" step in ccBPM(PI) wherein , we could wait until a certain message is received(based on correlation) and then proceed to the next step....
    Is this possible in BPM ???
    There was a query similar to this in the forum :
    Inter-Process Asynchronous Event
    (or search for "Inter-Process Asynchronous Event "  - Ingo Taraske)
    and a suggestion was provided by David Conil which I didn't quite get...
    Would be great if some one could throw more light on if this is possible in EhP1...Thanks.
    Best Regards
    Arun

    Hi Arun,
    In a nutshell, wait steps are not supported in EhP1. The workaround consists of splitting the process in two processes. In BPMN 1.1, wait steps are modeled using "Intermediate Message Events". The idea is to consider the intermediate message event as start event of the second process. The asynchronous aspect would be covered using PI.
    Best regards,
    David

  • BPM process to manage business data vs Business Data in RDBMS

    Hi all,
    I have so far seen BPM as a pure business process tool rather than a data management one even thought BPM provides for managing data. If in case, we have a nice Business Process, which also collects plenty of related business data, what would be the suggestion?
    1. To store Business Data in RDBMS and provide BPM with just enough info. for the process.
    (or)
    2. To store Business Data in BPM Business Catalog & do away with RDBMS (ofcourse BPM uses RDBMS for dehydration )
    In our project, we are discussing this and some points in favour of approach (1) are:
    i. For web based applications with multiple UI forms to collect data, storing data in RDBMS is way better on performance than accessing/storing in BPM business catalog
    ii. Data Retention of Business Data in BPM needs special consideration which may lead to dumping data eventually in RDBMS
    iii. UI frameworks help build UIs quick with a known data model rather than over APIs exposed by BPM
    iv. Reporting over an RDBMS data model is easier than over a Business Catalog in BPM
    Are these points valid or is approach (2) having other advantages to consdier?

    I think I'm just backing up what you had on your original post, but here's what we typically tell customers when this comes up.
    This has long been a best practice recommended by Oracle.  In Oracle’s Performance Tuning for Oracle Business Process Management Suite 11g document ,  on page 17 it states:
    "Minimize the amount of data stored in the process instance. Obviously, there is a tradeoff between the cost of storing data locally compared to storing keys and retrieving data for use within the process, which needs to be considered.
    A reasonable starting point would be to model the process state to hold only values that are needed to control the process flow and keys to get any other (external) data on an ‘as needed’ basis. If retrieval is too frequent/slow, or the systems holding that data are not always available, then move more data into the process."
    You touched on this, but decoupling the process payload and the underlying data for these reasons:
    1. The underlying data and the processes typically have different lifecycles and need to be independent of one another
    There is a need to maintain each at different times
    They are typically modified by different groups of people with differing skills
    The data stored in a database is typically the “source of truth” that sometimes must be able to be accessed and easily manipulated by applications outside of Oracle BPM; if stored as process instance data, instead of SQL extracting data from a database, the outside applications would need to access it through Oracle BPM APIs they are not necessarily familiar with
    2. Lightweight process data persistence improves performance
    The underlying message contract between the process instance and the engine that persists the payload should leverage key values where possible (think primary keys / relational keys from classic DBMS design patterns), rather than defining instance variables for every data element.  The performance of the Oracle BPM engine is improved and the data for the instances are rendered faster.
    The process instance is carrying the necessary process payload, rather than a bloated payload.  Only the information germane to the current activity should be retrieved and rendered.  This allows the application server to run more efficiently.
    At each step in the process, the process payload is hydrated and then dehydrated (read from the engine’s underlying database tables and then written back to the tables).  If this information is stored in an external database, there is no need for the overhead of this hydration and dehydration of large amounts of data to occur.
    At each step in the process, if stored externally in a separate database outside of Oracle BPM, only the data required is read and / or updated when it is required to do so.
    3. Decoupling helps speed development
    Oracle BPM was built with the Decoupled Model View Controller (MVC) pattern in mind
    One of its strengths is the architecture‘s business services layer that can make the source of the data transparent.  Given a single key value stored in the process instance payload, services can be invoked from the process and the human steps in the process that represent the “real source of truth” that the business needs.
    The MVC pattern’s model layer assumes that given the process’s key value, it is then possible to easily access underlying business data from a variety of sources including databases, EJBs and web services.   Although storing all of the information inside the process payload can be considered one of the model’s business service sources, the overhead of using this in production systems is not recommended.
    Once exposed, the business services can be  reused by any business process needing the information.
    User interfaces created with Oracle’s Application Development Framework (ADF) have out-of-the-box components and operations that take advantage of this MVC pattern.  Some examples of these out-of-the-box patterns that do not have to be programmed include:
    Database table information can easily displayed using Next and Previous that automatically retrieve the next or previous sets of rows
    Similarly, scrolling in a table with many rows up and down renders data automatically
    Both server and client side validations and rules
    Database dropdowns and cascading dropdowns 
    Forms automatically created with Master / Detail patterns
    4. Decoupling reduces the complexities arising from data synchronization
    When orchestrating various external systems into a process, care must be given to account for “Systems of Record” and the purview these systems have over data values
    Decoupling process instance data so that only key values are in the payload allow the Systems of Record to continually update the subservient element values without fear of stagnant data in the process
    Participants in the process receive the most current data values when dealing with process instances
    When data objects span several process instances, finding and updating data is easier if stored in a databaseExample: Process instance based on Orders. Several process instances may involve orders for a single customer. When the order changed, no problem, just find the process instance using correlations and updated it. When customer info changed, you need to synchronize any number of process instances. Placing the data in an RDBS made the solution simple. Simply updated the customer tables and all orders now have the latest info. No need to find related process instances and update them.
    Some BPM events don’t carry sufficient information and need enrichment to process events. With data stored in the payload, there is no easy way to enrich the event data. This is especially true with ACM events. Events in ACM do not have instance information. Storing data in the database will prevent a costly work around using a dedicated process and correlations to get the info needed.
    5. Decoupling facilitates the data capture for reporting and archiving
    Keeping data in the BPM payload takes away the option to do custom reporting (outside of BAM) and archiving of business data.
    Storing data in the RDBMS makes possible to create custom reports (outside of BAM) which would be not be possible or hard to do if all data lived in the BPM payload. Also, if you wanted to capture custom data changes or progressions thru a BPM and/or BPEL instance, RDBMS tables have a clear advantage over payload information. Payload (in most cases) would not have the data progression captured, and also reading data progression from the logs is not a recommended option.
    Many organizations have data retention policy, which requires data to be archived and be accessible. Archiving and data accessibility is very limited if data is stored in the BPM payload.
    6. The need for process Intelligence goes beyond the instance life cycle
    Instances get cleaned up from process database and many organizations are interested in not only keeping the business data but also all the BPM related intelligence related to audit trail, KPIs etc.  BAM data getting to  BI cubes is one of the ways to ensure that intelligence lives on, but viewing process audit maps, audit trails and knowing what attachments were part of the process is a very common use-case. For the latter, the common patterns used are the use of UCM or other ECM products to store the correlated set of documentation that can be brought together in a Webcenter like content portal for historical research and auditability purposes. That, couple with an application database strategy to keep correlated application data would paint the full picture for the business users.
    Hope this helps,
    Dan

  • RunModalForDirector crashes with Program received signal:  "EXC_BAD_ACCESS"

    I am new to objective-c programming and I am trying to fix a bug in some existing code. So apologies if the solution to my problem is simple.
    The following section of code crashes with a Program received signal: “EXCBADACCESS” error message when trying to open a window and I don't know why.
    [oPanel runModalForDirectory:nil file:nil types:fileTypes]
    in the following function:
    NSString * SelectDirectory()
    NSString* fname;
    fname = nil;
    // printf("loading files\n");
    NSArray *fileTypes = [NSArray arrayWithObjects:@"asc", nil];
    // Create the File Open Panel class.
    NSOpenPanel* oPanel = [NSOpenPanel openPanel];
    [oPanel setCanChooseDirectories:YES];
    [oPanel setCanChooseFiles:NO];
    [oPanel setCanCreateDirectories:YES];
    [oPanel setAllowsMultipleSelection:NO];
    [oPanel setAlphaValue:0.95];
    [oPanel setTitle:@"Select a directory to open"];
    // Display the dialog. If the OK button was pressed, process the files.
    if ( [oPanel runModalForDirectory:nil file:nil types:fileTypes] == NSOKButton )
    NSLog(@"fname before assignment: %@",fname);
    // Get an array containing the full filenames of all files and directories selected.
    fname = [oPanel filename];
    NSLog(@"fname after assignment: %@",fname);
    else
    fname = nil;
    // printf("No directory Selected");
    return (fname);
    And the output from backtrace is:
    gdb) backtrace
    #0 0x005f7733 in gleRunVertexSubmitImmediate ()
    #1 0x005f554a in gleLLVMArrayFunc ()
    #2 0x005f554a in gleLLVMArrayFunc ()
    #3 0x005f54d7 in gleSetVertexArrayFunc ()
    #4 0x005d079a in gleDrawArraysOrElements_ExecCore ()
    #5 0x005d2c8d in gleDrawArraysOrElementsVBOExec ()
    #6 0x95609aa4 in glDrawElements ()
    #7 0x00019521 in -[MyFooGLView drawRect:] (self=0x1ab740, _cmd=0x962df5d0, rect={origin = {x = 406, y = 0}, size = {width = 275, height = 5}}) at /Users/kinglab/Desktop/C3.3.5/MyFooGLView.m:2443
    #8 0x97779bf8 in -[NSView _drawRect:clip:] ()
    #9 0x97777469 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectFor View:topView:] ()
    #10 0x97777e9f in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectFor View:topView:] ()
    #11 0x97777e9f in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectFor View:topView:] ()
    #12 0x97776987 in -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectFor View:topView:] ()
    #13 0x977734ab in -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] ()
    #14 0x976b3e7b in -[NSView displayIfNeeded] ()
    #15 0x976b3a29 in -[NSWindow displayIfNeeded] ()
    #16 0x976b384c in _handleWindowNeedsDisplay ()
    #17 0x95c31772 in __CFRunLoopDoObservers ()
    #18 0x95c32acc in CFRunLoopRunSpecific ()
    #19 0x95c33aa8 in CFRunLoopRunInMode ()
    #20 0x96f2a2ac in RunCurrentEventLoopInMode ()
    #21 0x96f29ffe in ReceiveNextEventCommon ()
    #22 0x96f29f39 in BlockUntilNextEventMatchingListInMode ()
    #23 0x976b16d5 in _DPSNextEvent ()
    #24 0x976b0f88 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
    #25 0x978ee38d in -[NSApplication _realDoModalLoop:peek:] ()
    #26 0x978e8acb in -[NSApplication runModalForWindow:] ()
    #27 0x978d9bb6 in -[NSSavePanel(NSSavePanelRuntime) runModalForDirectory:file:types:] ()
    #28 0x00004794 in SelectDirectory () at /Users/kinglab/Desktop/C3.3.5/FracController.m:42
    #29 0x0000ecb5 in -[MyFooGLView LoadSurfBut:] (self=0x1ab740, _cmd=0x2db85, sender=0x12a130) at /Users/kinglab/Desktop/C3.3.5/MyFooGLView.m:633
    #30 0x97782e8f in -[NSApplication sendAction:to:from:] ()
    #31 0x97782dcc in -[NSControl sendAction:to:] ()
    #32 0x97782c52 in -[NSCell _sendActionFrom:] ()
    #33 0x977822ab in -[NSCell trackMouse:inRect:ofView:untilMouseUp:] ()
    #34 0x97781afe in -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] ()
    #35 0x977813b8 in -[NSControl mouseDown:] ()
    #36 0x9777faf7 in -[NSWindow sendEvent:] ()
    #37 0x9774c6a5 in -[NSApplication sendEvent:] ()
    #38 0x976a9fe7 in -[NSApplication run] ()
    #39 0x976771d8 in NSApplicationMain ()
    #40 0x0000202c in main (argc=1, argv=0xbfffe7cc) at /Users/kinglab/Desktop/C3.3.5/main.m:15

    The problem doesn't seem to be with SelectDirectory(), it is with MyFooGLView. Perhaps that view is trying to do something that requires the event loop but you have it locked up in your modal dialog. Try using callbacks in a modeless dialog instead.

  • Call Enterprise service in BPM Process

    Hi,
    I define a BPM process for PO creation
    In the first Lane : Purchase requestor
    In the second Lane: Approve Process
    In the third Lane: Create PO(Enterprise Service)
    Here in the first lane iam giving the below attributes
    Requestor Name
    Requestor Country
    Product ID
    Product Descrption
    This will be send to second lane i.e Approver Process
    Once he approved it should create a PO in Hu2 if he reject it should goto first stage
    I consumed Enterprise Service from HU2 and i published in service registry
    Now i created automated activity and imported PO create service in BPM flow seccussfully.
    Now my problem is to write code in webdynpro.
    How to write code for below process?
    In the second lane i.e Approver Process i should write a code that if it approve goto third process i.e call webservice which which creates a PO .If it rejects goto first process??How to write this code?Plz can u help Iam new to coding moreover to webdynpro...
    Regards
    Shwetha.
    Edited by: Shwetha-Capita on May 1, 2009 1:28 PM

    Hi Shwetha,
    The following part of the documentation explains how to prepare your Web Dynpro DC so that it can be used in SAP NetWeaver BPM:
    https://help.sap.com/saphelp_nwce711/helpdata/en/48/cae1791e774da5e10000000a421937/frameset.htm
    The important thing to know is that SAP NetWeaver BPM is waiting for a complete event to be triggered in your application. Once this is received the process flow continues.
    So in your case you would simply create two Web Dynpro user interfaces. The first one for entering the data and the second one for reviewing / approving / rejecting the data.
    In the first case you would have some sort of "submit" button, which triggers the before mentioned 'complete' event. SAP NetWeaver BPM will then take the data that is visible in the Web Dynpro context of the interface controller and continue the processing.
    The second case basically works the same with one little difference: Here you would have two buttons -  one for the approval and one for rejection. Both will trigger the 'complete' event, but should set a field in the Web Dynpro context (e.g. "isApproved") differently. While the "approve" button should set it to "true" the "reject" button would set it to "false".
    So once this step is also completed you could make use of gateways and conditions (https://help.sap.com/saphelp_nwce711/helpdata/en/47/635cb242bf6831e10000000a421937/frameset.htm) in your proces model to determine if the data should be passed to the service for PO creaton or if it should handle a different situation in case of a rejection.
    If you're new to SAP NetWeaver BPM it might help having a look at the documentation first and also browse through some sample models as they are provided here:
    https://www.sdn.sap.com/irj/sdn/nw-bpm?rid=/webcontent/uuid/006a16ad-a3ad-2b10-4e9a-af2ee5820848 [original link is broken]
    Hope that helps,
    Martin

  • Calling BPM Sub Process from another BPM Process - Stuck at Sub Process

    Hi
    JDeveloper 11.1.1.6, BPM 11.1.1.6, WLS 10.3.6
    I am trying to Call a BPM Process from another BPM Process. Both the processes are defined in the same BPM Project.
    Both the Processes have 'None' Start and End activities.
    The 'Parent Process' has a 'Call Activity' which calls the 'Sub Process'.
    The Sub process takes a parameter of payload object as input and returns output (also same payload object)
    I have passed the payload object from parent to sub process in the 'Data Associations'.
    The Start and End activities in the sub process also have the data associations set where I am passing the payload object from parent process to child process.
    When I run the process and see the Enterprise Manager console - Audit Trail / Flow tabs,
    Flow Tab - The progress of the process is showing only till the Calling of the sub process in the Parent Process. It does not show the Sub Process.
    Audit Trail Tab - Shows that the Sub Process is called but has not reached to the End of the Sub process.
    The audit trail does not have links to the sub process activities.
    I cannot see any exceptions as well in the audit trail.
    How can I find out why the process is stuck? Or what is going on in the process?
    Please let me know if my explanation is not clear?
    Thanks for any help
    Regards
    Sameer

    Thanks for replying.
    I have another Sub Process with Start and End events as Message Events and used Send Task and Receive Task (Implementation : Process Call) in the Main process to invoke the sub process asynchronously.
    Then, the Sub Process is shown in the 'Flow Trace' as child of the main process.
    In this particular one, I used 'Call Activity' to call the sub process.
    So the Audit trail is showing the sub process as a child.
    But what I was trying to say is that the audit trail did not have links to the entries in the 'Event' column (in Enterprice manager - instance window). (like Instance entered activity, Instance left activity etc).
    I was intending to use these links to see the payload information and try to debug if there is any problem with the code.
    The actual problem I was trying to say in the post is that, even after the user responds to the activity (User Task - Approval) in the Sub process,
    the audit trail is not proceeding further.
    In the Sub process definition, after the user task, there is End with none implementation.
    Hope it is clear now.
    Thanks and Regards
    Sameer

  • Initiating BPM Process Instances from External Web Service Call

    I'm attempting to update the HelloWorld example so that I can create an instance of the process from an External Web Services Call rather than via the Workspace. Our current SOA Architecture is configured so that all BPM instances are managed through a .NET SmartClient via the Service Bus and the use of PAPI W/S and so I'm wishing to recreate this capability in the new BPM.
    I understand the replacement for PAPI W/S is Human Workflow so I've therefore updated and republished the HelloWorld Example with an Exposed 'TaskService' Service for the Human Task within the BPM Process.
    I've then attempted to reference the TaskService through our existing BPM, and have been able to import a number of generic WSDL's as follows:
    Task Service
    http://vmaquatestapp2:7001/integration/services/TaskService/TaskServicePort?WSDL
    Task Metadata Service
    http://vmaquatestapp2:7001/integration/services/TaskMetadataService/TaskMetadataServicePort?WSDL
    Task Query Service
    http://vmaquatestapp2:7001/integration/services/TaskQueryService/TaskQueryService?WSDL
    When I examine the available operations for these generic services, there are quite a lot, each of which have a fairly complex schema. I believe I should be using the TaskService: InitiateTask Operation to create an instance of my BPM Process but my questions are:
    - Is the above the correct method of interacting with BPM Instances from an external system such as the Service Bus?
    - Does anyone have any examples of a basic XML payload that would initiate a process instance?

    I created an process with a message start event and can call it from an external web service call. I can also pass input arguments and map those to process data objects. However I can not find how to return data as response to the external web service call as e.g. the process instance id.
    Is it possible to this?
    Gr,
    Gert Jan Kersten

  • Java Class Mapping Program in BPM process

    I have a scenario where I'm receiving an IDOC I then use a JAVA mapping program in my first transformation step.  Immediately following I have a switch step but there is not data in from the mapping program.
    1) Receive Step
    2) Transformation IDOC to Table using Java class
    3) Switch step based on Table field value
    Problem is there is no values in the table. 
    This java class was not developed within NetWeaver but was used in our old process. We simply imported the jar file for accessing our existing java classes.  Is there something else we need to do to utilize our java modules within the BPM process?

    Hi,
    You must to have in the java class:
    - You java have to be like:
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import java.util.HashMap;
    import com.sap.aii.mapping.api. AbstractTrace;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    public class JavaMapping implements StreamTransformation {
       private Map           param = null;
       private AbstractTrace  trace = null;
       public void setParameter (Map param) {
          this.param = param;
          if (param == null) {
             this.param = new HashMap();
       public void execute(InputStream in, OutputStream out) {
    try {
             trace = (AbstractTrace)param.get(
                       StreamTransformationConstants.MAPPING_TRACE );
             trace.addInfo(‘...’);
             String receiverName = (String)param.get(
                       StreamTransformationConstants.RECEIVER_NAME);
    The method execute take the InputStream with the XML source. The out (OutputStream) have to be an XML like the IDOC structure.
    Regards.

  • Xmanager acces from remote causes Xerrors dtlogin received signal 11

    I am running Solaris 2.8 on a Ultra 10 ( 512MB)
    Xwindows /CDE on the console is running fine,
    when attempting to log on to the system from an external x-windows ( pc)
    via dtlogin the login screen does not appear.
    /var/dt/Xerrors containts:
    dtlogin: received signal 11
    Any clues what configuration could cause the process to abort.
    Kind regards,
    Gerd.

    Thanks for the replies, folks. The statistics I have posted ARE from the Test connection, it's been in the Test socket since the last time I had this malarkey ... I had forgotten that was the case, I don't know if it's the wrong thing.
    I understand about the profile banding, which is why last time the wet weather cleared away I was asking BT for a profile reset to get me back to speed promptly but it never happened, everyone ignored my request and just checked their part of the system and so it took over two weeks to come back up to 11Mb/s. Which was not the 14 I had been enjoying. 
    Anyway, those were the TEST stats then. Today's TEST stats are :
    Line state: Connected
    Connection time: 0 days, 04:41:34
    Downstream: 2.216 Mbps
    Upstream: 643.4 Kbps
    VPI/VCI: 0/38
    Type: PPPoA
    Modulation: G.992.5 Annex A
    Latency type: Interleaved
    Noise margin (Down/Up): 25.3 dB / 5.0 dB
    Line attenuation (Down/Up): 21.3 dB / 11.5 dB
    Output power (Down/Up): 18.2 dBm / 10.3 dBm
    FEC Events (Down/Up): 0 / 5666
    CRC Events (Down/Up): 0 / 62
    Loss of Framing (Local/Remote): 0 / 0
    Loss of Signal (Local/Remote): 0 / 0
    Loss of Power (Local/Remote): 0 / 0
    HEC Events (Down/Up): 0 / 216
    Error Seconds (Local/Remote): 55 / 39
    It's running only a little light surfing on BT and a torrent stream limited to 40kB/s because that's stable. 
    An incoming voice call broke the connection earlier today, it had become stable about 23:30 last night.
    I shall have to call them back to ensure an engineer is coming, I was not happy to accept a charge like
    that but if I'm running off the Test socket they've had their test access ok, yes? I hate rules that I am not
    aware of ...

  • Invoking A BPM Process

    Hi All,
    1. What is general architectural practice of exposing a BPM Process? We are into development and currently calling BPM processes directly using WSDL URLs generated by EM.
    2. In how many ways can we expose a BPM process? For e.g. a) Web Service b) EJB Service ???
    3. What is most widely used method/architecture of calling a BPM Process?
    4. What is most widely used tool/API to call BPM process?
    Thanks.
    Edited by: TripleA on Sep 4, 2012 1:03 AM

    A BPM process 'start' activity can have many implementations, only one of them is 'Message' (i.e. a web service interface).
    A process can also be instantiated using a 'signal' / event if you're adopting a loosely coupled, event driven architecture (read about Oracle Event delivery network).
    To see all your options, right click on your 'Start' -> Properties -> Implementation -> Implementation type
    JV

Maybe you are looking for