Raise business events from BPEL

How to raise business events from BPEL process?
Related questions -
1. Is it possible or good to address this by embedding Java code in BPEL process that raises the business event? If so, what additional jar files should be included?
2. Any links on API to raise the business events from Java code?
3. Any links that describe how to raise the business events from BPEL process?

Hi Guillaume,
Thanks for your reply.
Please find below environment details.
EBS 11.5.10,
Stand alone SOA Suite v10.1.3.1
Oracle Apps Adapter
I am trying to capture PO approval event ('oracle.apps.po.event.xmlpo') raised by BES in BPEL PM.
I see in the BPEL PM logs that there is a handshake happening between EBS-BES and BPEL PM. But after the handshake, some XML DOM parser errors are thrown.
I have pasted the error seen in BPEL PM log below
<2007-08-01 11:33:18,000> <INFO> <default.collaxa.cube.engine> <CubeEngine::loadAllProcesses>
26 processes have been loaded for BPEL domain "default".
<2007-08-01 11:34:18,750> <ERROR> <default.collaxa.cube.activation> <AQ Adapter::Inbound> MessageReader_readMessage: Received TranslationException
<2007-08-01 11:34:18,750> <ERROR> <default.collaxa.cube.activation> <AQ Adapter::Inbound>
ORABPEL-11211
DOM Parsing Exception in translator.
DOM parsing exception in inbound XSD translator while parsing InputStream.
Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
     at oracle.tip.pc.services.translation.xlators.xsd.XSDTranslator.translateFromNative(XSDTranslator.java:139)
     at oracle.tip.adapter.aq.database.MessageReader.translateFromNative(MessageReader.java:1179)
     at oracle.tip.adapter.aq.database.MessageReader.readMessage(MessageReader.java:533)
     at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.run(AQActivationSpecDequeuer.java:189)
     at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
     at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:272)
     at java.lang.Thread.run(Thread.java:595)
Caused by: oracle.xml.parser.v2.XMLParseException: Start of root element expected.
     at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:320)
     at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:341)
     at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
     at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:291)
     at oracle.tip.pc.services.translation.xlators.xsd.XSDTranslator.translateFromNative(XSDTranslator.java:134)
     ... 6 more
<2007-08-01 11:34:18,750> <ERROR> <default.collaxa.cube.activation> <AQ Adapter::Inbound> MessageReader_readMessage: Received TranslationException
<2007-08-01 11:34:18,750> <ERROR> <default.collaxa.cube.activation> <AQ Adapter::Inbound>
ORABPEL-11211
DOM Parsing Exception in translator.
DOM parsing exception in inbound XSD translator while parsing InputStream.
Check the error stack and fix the cause of the error. Contact oracle support if error is not fixable.
     at oracle.tip.pc.services.translation.xlators.xsd.XSDTranslator.translateFromNative(XSDTranslator.java:139)
     at oracle.tip.adapter.aq.database.MessageReader.translateFromNative(MessageReader.java:1179)
     at oracle.tip.adapter.aq.database.MessageReader.readMessage(MessageReader.java:533)
     at oracle.tip.adapter.aq.inbound.AQActivationSpecDequeuer.run(AQActivationSpecDequeuer.java:189)
     at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
     at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:272)
     at java.lang.Thread.run(Thread.java:595)
Caused by: oracle.xml.parser.v2.XMLParseException: Start of root element expected.
     at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:320)
     at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:341)
     at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
     at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:291)
     at oracle.tip.pc.services.translation.xlators.xsd.XSDTranslator.translateFromNative(XSDTranslator.java:134)
     ... 6 more
From the initial assessment, it looks like the event schema defined in BPEL PM and BES event schema mismatch. But I do not know, how to correct it.
Please let me know, if you have any suggestions in overcoming this issue.

Similar Messages

  • How do I raise a Business Event from a OAF page?

    Hello,
    I am developing a custom system using the OAF and need to raise a custom Business Event, which in turn will have a subscription to launch a workflow process.
    How do I raise a Business Event from a OAF page ?
    Can I use the classes in oracle.apps.fnd.wf.bes.* ?
    Any help would be highly appreciated.
    Best Regards,
    Andries Hanekom

    Hi,
    When I try to compile just the basic part of my class I receive the following error:
    Error(21,36): cannot access class javax.jms.TextMessage; file javax\jms\TextMessage.class not found
    Class Code:
    import oracle.apps.fnd.wf.bes.BusinessEvent;
    public class VscmsEvents
    public VscmsEvents()
    public static void main(String[] args)
    VscmsEvents vscmsEvents = new VscmsEvents();
    //Initialize BusinessEvent, Payload objects
    public void initEvent(String eventName, String eventKey, String eventData)
    //Create BusinessEvent Object
    BusinessEvent mEvent = new BusinessEvent(eventName, eventKey);
    Furthermore, when using the BusinessEvent object to raise the event I will need to provide the raise method with a java.sql.Connection parameter. In the context of a OAF page how will I perform this?
    Thanks for the help.
    Best Regards,
    Andries Hanekom

  • Call business event from oracle workflow

    Hi,
    how to call business event from oracle workflow ?
    if possible, could you give any sample code.
    Thanks.

    In short terms: assign values to the attributes that compose the payload of the event. Then raise it. Here a simple example of raising the Flex Field compilation event:
    declare
    l_application_id fnd_application.application_id%TYPE := &1;
    l_descriptive_flexfield_name varchar2(200) := '&2';
    l_application_short_name fnd_application.application_short_name%TYPE;
    l_parameters wf_parameter_list_t := wf_parameter_list_t();
    begin
    SELECT application_short_name
    INTO l_application_short_name
    FROM fnd_application
    WHERE application_id = l_application_id;
    wf_event.addparametertolist(p_name => 'APPLICATION_SHORT_NAME',
    p_value => l_application_short_name,
    p_parameterlist => l_parameters);
    wf_event.addparametertolist(p_name => 'APPLICATION_ID',
    p_value => l_application_id,
    p_parameterlist => l_parameters);
    wf_event.addparametertolist(p_name => 'DESCRIPTIVE_FLEXFIELD_NAME',
    p_value => l_descriptive_flexfield_name,
    p_parameterlist => l_parameters);
    wf_event.raise(p_event_name => 'oracle.apps.fnd.flex.dff.compiled',
    p_event_key => (l_application_short_name || '.' ||l_descriptive_flexfield_name),
    p_event_data => NULL,
    p_parameters => l_parameters,
    p_send_date => Sysdate);
    end;
    Regards.

  • Object does not match target type when raising an event from c# to VB6

    I have a c# .net DLL that I use from a VB6 app. It exposes an event,
    and the VB6 app is sinking it.
    The VB6 app is receiving the event, as long as it is raised from the
    main thread of the .net DLL.
    I have an aync task being handled inside the DLL (delegate BeginInvoke). Any
    attempt to raise the event from within that thread casuses the reported
    error, even from within the AsyncCallback function, when the thread is ending.
    I noticed that the delegate for the event is not declared inside the
    interface. It's in that module, but above the interface definition:
        [ComVisible(false)]
        public delegate void LoggingEventHandler( string logData );
    The event is declared in the class itself as:
        public class Processor : _Processor
            public event LoggingEventHandler        LogNotification;
    Finally, to raise the event:
    if ( this.Completed != null )
        this.Completed( true );
    If I open the tlb with OLEVIEW, I can see the public event just fine. Of course, I expected to, as it's working up until the helper thread kicks in.
    Now for the REAL WIERD PART! This DOES work on several servers that have
    been in production for months. It's just this one server that it won't work
    on. Same code. Resinstalled/registered it 1,000 times. It took me a while to
    find that an error was even occuring, since it was being raised in the
    seperate thread. In other words, I'm receiving the event just fine on a series of servers. This is a new machine we're trying to bring online. I suspect it's environmental, but I can't figure it out.
    I don't understand why the publisher would be expecting a certain type of
    subscriber in the first place... unless the error is really triggered by the client when the event reaches it. I've put logging into the client, though, and the first line of code inside the event is not being executed.
    For the VB6 app, I reference the tlb file that is automatically created when
    I compile (Interop is checked). I unregistered and re-registered the tlb on
    the server. I regasm'd the dll itself. All dlls are in the same folder - not
    in the GAC.
    The stack trace is as follows:
       at System.RuntimeType.InvokeDispMethod(String name, BindingFlags
    invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32
    culture, String[] namedParameters)
       at System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr,
    Binder binder, Object target, Object[] args, ParameterModifier[] modifiers,
    CultureInfo culture, String[] namedParameters)
       at System.RuntimeType.ForwardCallToInvokeMember(String memberName,
    BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData&
    msgData)
       at HPFS.Queue.IProcessorEvents.LogNotification(String logData))

    This is driving me nuts!
    I sure would appreciate any suggestions.
    I got this working on one of the two machines. The other machine had some other issues, so I had it re-imaged. It's been so long since I fixed the first one, that I can't remember exactly how I did it. Plus, I did so many things to it over two weeks, that I never really felt confident, anyway. But ... I could *swear* that the last thing I did back then to get this event to flow was to re-register the DLL's TLB.
    So ... This is win 2k with FW 1.1 + SP1.
    Completed is the delagate I'm trying to invoke.
    this.Completed.Target.GetType().Name = "__comobject"
    I've tried everything. Unregistered the .tlb. Unregistered the .net DLL. Verified that the app completely failed while unregistered. Created the TLB using RegAsm /tlb syntax.
    I tried using CLR SPY. It registers nothing. It only lets me pick an EXE. This is a DLL tring to raise to an EXE.
    I've looked at the TLB in OLE VIEW and I just don't know what I'm looking at.
    Is there any other tool or technique I can use to audit/monitor/trap this? .net is giving me *** for details about what's failing. I wish I could somehow debug into exactly what it's trying to do and get more details on the failure.
    Here's the error I'm getting:
    (Code -1) Object does not match target type.<Source:mscorlib>(Stack:    at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
       at System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters)
       at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
       at HPFS.Queue.IProcessorEvents.Completed(Boolean success)
       at HPFS.Queue.Processor.RequestDone())
    Processor = the DLL I'm trying to raise the event from.
    IProcessor = the event interface that's exposed through COM.

  • How to raise an event from a program

    Hi,
    I am creating a workflow for HR, the person will request a basic pay change than, this will start the workflow. For this i am making a screen from where i need to triger the event for the workflow.
    Does anybody has any idea? of how to raise an event from a program. or has anybody worked on a scenario like this
    Khusro Habib

    You can also use the FM SAP_WAPI_CREATE_EVENT which is a little newer I think. (I don't have access to a system today so that may not be the exact name of the FM but if you search SE37 under SAPWAPIEVENT* you should find it.
    the parameters will be the event name, and the object key.  The object key will be the key field of the workflow object you are using. 
    For example if you were using the saled document object then the object key would be the sales document number.  Carefull how you enter the object key, it can be a little tricky on whether or not you need the leading zeros in the input parameter. 
    Hope this helps.
    Brent

  • Programatically raise Contextual Event from a ClientEvent

    Hi,
    JDev v11.1.2.0.0.
    Earlier I had a event raised on the value change of my inputText component. But due to certain requirement, I had to discard the valueChange and had to do that same logic using clientListener and serverListener. But the problem now is, the contextual event is not getting raised and I'm looking for a way to raise the specific event on the ClientEvent method that is bound to the serverListener on my fragment.
    I've checked lot of blogs but most of it are talking about raising the event programatically on ValueChange or ActionEvent. Any thoughts? Appreciate any help on this. Thanks !
    Edited by: 119413 on Mar 14, 2013 10:29 AM

    Ok. Finally, I ended up invoking a hidden button click action in my client listener and raised the event from the ActionEvent bound to that button. Let me know if anyone could think of better options.. Thanks !
    Edited by: 119413 on Mar 15, 2013 10:40 AM
    Edited by: 119413 on Mar 15, 2013 10:41 AM

  • Accessing Business rules from BPEL, OESB and OSB

    How to aceess Business rules from BPEL, OESB and OSB ?

    Hey you can use Decision Service in BPEL process. You have "Decide" activity for this. However, no idea about ESB or OSB.

  • Error while raising business event

    Hi all,
    While trying to raise my business event throw "Raise in JAVA" button i get the following error.*Exception occured in Java Raise - Exception when Invoking Web Service -> oracle.apps.fnd.wf.bes.InvokerException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: For input string: ""*
    What could be the reason for this error?
    Thanks and regards,
    Pradeep

    Hi,
    Please see
    Unable To Call Web Service From A Deployed OA Framework Page [ID 848795.1]     
    javax.xml.soap.SOAPException Error While Invoking SOA Webservice From R12 Server [ID 1467361.1]     
    Thanks

  • Autocreate task raise business event oracle.apps.jtf.cac.task.createTask?

    Hi All!
    How can I check if event oracle.apps.jtf.cac.task.createTask was raised when a task was created?
    This event will raise every time a task is created independent of which process created the task? I mean if the task was automatically created when SR is created or if the task is manually created?
    How can I test this business event manually?
    In our environment (EBS 11.5.10.2) there are following subscriptions to this business event:
    CS_SR_SECURITY_UTIL.SECURE_SR_TASK_OWNER
    jtf_task_wf_subscribe_pvt.create_task_notif_subs
    CS_SR_CHILD_AUDIT_PKG.CS_SR_Audit_ChildEntities
    I have added subscription xxcsf_002_wf_subscribe_pkg.create_task, which calls to function (create_task) in a DB package (xxcsf_002_wf_subscribe_pkg). The first thing I do, before anything else, is logg to a custom table the event of entering the package function but then when task is created in "Enter Request Service" form nothing is logged in the custom table.
    What am I doing worng? Thanks in advance for the help!
    Patricia

    Hello again and thanks Nagamohan,
    The sql returned 0 so that means the event is not fired. How do I make it fire. Isn't it standard? Is there some setup I have to do or enabled somewhere? I have this requierement to create automatically an assignment for tasks automatically created when SR is created in Field Service Technician Portal. I thought I could create the assignment when this business event is raised, which means a task is being created and validating where it is originated from (WEB). I need to set scheduled dates for the task as well. I appreciate the help in this. I would like to use the business event to call on a package function but it is not being fired.
    Thanks in advance and regards,
    Patricia
    Edited by: Patricia Paredes on Feb 2, 2009 9:50 AM
    Edited by: Patricia Paredes on Feb 2, 2009 9:51 AM

  • Enqueue JMS message to JMS advanced queue and raise business event.

    Hi,
    I am needing guidance on how to raise a business event with a JMS message type and enqueue it to an outbound queue WF_JMS_OUT from a PL/SQL stored procedure. I'm on version 11.5.10.2.
    I found an Oracle tutorial "Oracle Workflow and Java Messaging Service (JMS) Tutorial" which describes some of this but it mentions scripts to create the queues, listen for events, etc. and I can not find these (they are not included in the document).
    Any guidance, links or sample code, greatly appreciated!
    Cheers
    Graham

    I tried in the same way. But i got error in OSB.
    The error message is "Failed to lookup connection factory CustomConnectionFactory"
    CustomConnectionFactory -- This is my connection factory name.
    Do i need to make any jndi configurations in weblogic?
    Thank you.

  • Raise an event from do_prepare_output

    Hi All,
    I have a requirement where I need to raise an event after having defaulted a value in a dropdownlist field.
    I'm working on component BT120H_CPL/NewComplEF.
    Here I have to default a value in the field REFOBJECTTYPE (context node NEWCOMPL). This is not a problem, I actually managed to write my logic in the do_prepare_output.
    My problem is that upon selecting a value for this field the event ONREFOBJECTTYPE is executed, unfortunately if I default a value the server_event 'select' is not triggered and the sub-screen ExtRefItemEL is not called.
    Do you know how to push/simulate an event from do_prepare_output in order to call the sub-screen immediately?
    Thanks in advance
    Paolo

    Hi Paolo,
    You can call the event handler ONREFOBJECTTYPE
    from do_prepare-output by calling
       CALL METHOD me->eh_ONREFOBJECTTYPE
    *  EXPORTING
    *    htmlb_event    =
    *    htmlb_event_ex =   .
    please try and tel me know.
    Regards,
    Taity

  • Raise Business Events based on condition.

    Hi,
    Is there a way to raise a Seeded Business event(oracle.apps.jtf.cac.task.updateTask) based on a condition. I want to raise the business event only if there is a update on a certain type of records( if attribute1 is not null or something like that).
    Is that posiible?? I DO NOT want to use triggers because that will defeat the purpose of using Business Events.
    Also what are the various parameters used for some of the seeded Business Events.
    Thanks
    SB

    It works like this:
    Raising an event is nothing but sending a message to "some one". A message should have content. Parameters are like content of the message. Also the parameters contain who and when they sent it.
    "someone" in this phrase is event subscription (subscriber). This someone, while consuming this message, perform the duty you asked them to do (like executing pl/sql code or start workflow so on). To perform this duty they also need to some information which is in the 'content' of your message.
    Hence the parameters are very specific to the person who raised the event and who is consuming it.
    Every task update will raise an event (like sending a letter) provided the event and subscriptions are enabled. Everyone of these letters will contain task number you just updated.
    task1 updated ---event raised --parameter will have task1
    task2 update -- event raised--parameter will have task2 and so on.
    If you want specific logic raising conditionally, you need to create your own event and raise that event either using trigger or user hooks.
    Thanks
    Nagamohan

  • Need to raise Business Event after insert or updates on a table

    Hi All,
    Requirement : I have a Custom table in Oracle E-biz (R12 using 11g database), Whenever any row is inserted or updated on this Custom table, I need to log this changes in an audit table and then raise a Business event.
    Please suggest which are the best possible options.
    I could sense few options like
    1. Using Oracle Alerts (Event)
    2. Using Triggers
    Thanks,
    Santhosh

    Thanks for the response.
    Let me look into the links which you have sent.
    Meanwhile i have few clarifications as given below:
    1. If i use triggers, the trigger fires before the transaction is committed.
    2. If i use event alerts, i see some delay in the alert firing. I tried creating a separate concurrent program for "Check event alert". But still i dont see any improvement.
    Any suggestions on this ..?
    Thanks,
    Santhosh

  • U00BFHow can I raise an event from visual basic to BW?

    Im looking for simple vb code that will raise and event that will trigger some process chains I have in bw.
    something similar to
    Set R3 = CreateObject("SAP.Functions")
    R3.RaiseEvent("myEvent")
    I'm sure I saw the code before, but I have looked for hours and couldnt find it again.
    Thanks!
    David G

    Hello, this is how I finally did it and it is working pretty well.
    In SAP
    1. In SM62 Create new Event: ZGDREV01
    2. In RSPC (Process Chain Maintenance)
    - Start Variant after Event : ZGDREV01
    Periodic Job: Checked (other wise it wil just trigger once)   
    3. In SE37 Created a new function module:
    Attributes: Remote-Enabled Module
    Import:  EVENTID (char string)
    Source Code:
    FUNCTION ZGDRFM08.
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(EVENTID) TYPE  ZTXTSH
      CALL FUNCTION 'BP_EVENT_RAISE'
      exporting
      eventid = EVENTID.
    ENDFUNCTION.
    4. In Visual Basic
    Public Const TRANDATA_EVENTID = "ZGDREV01" ' EventId to be Raised
    Private Sub cmdStartLoad_Click()
       Dim R3 as object
       Set R3 = CreateObject("SAP.Functions")
       Call TriggerLoadEvent(R3, TRANDATA_EVENTID)
    End Sub
    Public Function TriggerLoadEvent(ByRef R3 As Object, ByVal event_id As String) As Boolean
        Dim FuncVal As Object
        Dim param_event As Object
        On Error GoTo errHandler
        Set FuncVal = R3.Add("ZGDRFM08")
        Set param_event = FuncVal.Exports("EVENTID")
        param_event.value = event_id
        TriggerLoadEvent = FuncVal.call
        Exit Function
    errHandler:
        MsgBox Err.description
    End Function
    Edited by: David Guerra Farias on Feb 11, 2008 11:13 PM

  • PL/SQL API for Creating Sales Order in E Business Suite from BPEL

    Hi,
    I am new to Oracle SOA 11g.
    I have done the Deleting Sales Order using PL/SQL API ( Oracle Apps Adapter ) [ API Name: OE_ORDER_PUB.DELETE_ORDER ]. While executing the BPEL, it is correctly deleting Sales Order in E Business Suite which is created EBS User Interface. I don't face any problem while deleting the sales order.
    Now, in same way, I have to create a new Sales Order using PL/SQL API. I don't find any API's related to creating Sales Order in Order Management Suite (OM_PF) -->Order Management (ONT) --> Sales Order (ONT_SALES_ORDER) --> PL/SQL --> Process Order API (OE_ORDER_PUB) in Module Browser.
    Please tell me which PL/SQL API to use to create new Sales Order in BPEL.
    Thanks,
    -- Gowtham

    You may be on a different patch level. Can you ensure that you have applied all latest patches for your version?
    See sample code at http://jyotioraapps.blogspot.com/2009/08/use-of-oeorderpubprocessorder-to-create.html
    Hope this helps,
    Sandeep Gandhi

Maybe you are looking for

  • Problems with my account. How to setup a new one and copy all data in it?

    I've had this Admin account called 'Alex' since my TiBook days. It was on a freshly installed Panther, but for some reason it had a few problems. Just within my own account, that is. My 'Alex' account happened to be the only Admin account; all the ot

  • How do I add a cedilla to a 'c' in an e-mail?

    I can do most of the usual accents in French in T/bird but am stuck with the cedilla. Normally I can insert a symbol but I don't have this option on T/bird. Anybody know how to do this?

  • Java Web Services

    Hi I have using jdevleper 10.1.2. I have generated a WebService for my Login Java class. The Web Service has 2 method login and register. I have converted the Java into a Web Service. I have created stub and I am able to call these Web Service method

  • Firefox crashes upon opening, and randomly - Windows XP.

    What I'm experiencing is that FireFox crashes upon most start-ups. it also crashes randomly. Be it known, it has been doing this in safemode, too. It has been doing this before any plugins were installed, and it has been doing it since FireFox 12 or

  • Why does WebLogic hate me?

    Hello, I'm running WebLogic 5.1 SP11 locally on my Win2000 machine and I'm running into numerous problems trying to start this connection pool: weblogic.jdbc.connectionPool.SupportPool=\ url=jdbc:oracle:thin:@thisistough.com:1521:dbid:dbid,\ driver=o