Invoking ALBPM (Oracle BPM) using Webservice calls

Hi,
I am trying to invoke Oracle BPM processes using webservice dynamically using events. I am presently not able to find any samples in this regard. Could somebody help me figure out a way to invoke Oracle BPM process dynamically using events ?
I would like to avoid the use of polling as an option.
TIA,
Sarat
Edited by: [email protected] on Jun 9, 2009 9:15 AM
Edited by: [email protected] on Jun 9, 2009 9:15 AM

I too have this question. It seems like you can no longer use BPEL with BPM 6.5/10GR3. Is this in fact the case? To use BPEL do you have to revert back to version 6.0?

Similar Messages

  • How to  Instantiate Oracle BPM Process Webservice from the OSB

    Hi,
    In our project we have one requirement i.e Instantiate Oracle BPM Process Webservice from the OSB.After register BPM service in to OSB I am creating one Message flow to instantiate BPM Process.
    first call to startSession Operation, then use response of startSession operation is used as reqest for BPM process operation.
    Can u tell me how do we use response of startSession operation to the request of BPM process.
    Thanks in Advance.

    An easier way of instantiating a BPM process via a WS call is to set the authentication type to 'Username Token Profile' on your web service operation in BPM studio and then redeploy it. If you use this type of security on your bpm process operations you can start the process in one call instead of having to get a session first and then starting the process.
    Once you've updating the process, re-register the new process WSDL and business service with OSB (or import it manually) and you can just call the start process operation in one request (passing a username and password using the WS-UsernameToken method) without having to get a session first.
    Hope this all make sense,
    Mike.

  • Instantiate Oracle BPM Process Webservice from the OSB.

    Hi,
    In our project we have one requirement i.e Instantiate Oracle BPM Process Webservice from the OSB.After register BPM service in to OSB I am creating one Message flow to instantiate BPM Process.
    first call to startSession Operation, then use response of startSession operation is used as reqest for BPM process operation.
    Can u tell me how do we use response of startSession operation to the request of BPM process.
    Thanks in Advance.

    An easier way of instantiating a BPM process via a WS call is to set the authentication type to 'Username Token Profile' on your web service operation in BPM studio and then redeploy it. If you use this type of security on your bpm process operations you can start the process in one call instead of having to get a session first and then starting the process.
    Once you've updating the process, re-register the new process WSDL and business service with OSB (or import it manually) and you can just call the start process operation in one request (passing a username and password using the WS-UsernameToken method) without having to get a session first.
    Hope this all make sense,
    Mike.

  • Invoke RIQQuery in OTM using webservice

    First of all, I can get the expected results from the Rate Inquiry page, only by setting the shipfrom and shipto location.
    But when I try to invoke the RIQQuery by using webservice, I cannot get the TransmissionBody back.
    I tracked the log for above operations and they are almost the same exception for some line difference at the end.
    Thanks in advance for any suggestions!
    From web page:
    2012-03-31 14:59:01.240     0     Debug     Workflow     Starting workflow Process Control (24809199) in response to 10s: 2012-03-31 06:59:01 Asia/Shanghai [timer - 1]
    2012-03-31 14:59:01.243     0     Debug     Workflow     Completing workflow Process Control (24809199) [timer - 1]
    From web service:
    2012-03-31 15:00:11.691     793084     Debug     Workflow     Completing workflow Simple Workflow (25806349) [publishWait - 4]
    2012-03-31 15:00:11.693     793084     Debug     Workflow     Publishing topic PostTransmission: user=GUEST.ADMIN, transmissionId=285 on queue integrationOutbound, group null [publishWait - 4]
    2012-03-31 15:00:11.695     793084     Debug     Workflow     Starting workflow Simple Workflow (24159432) in response to PostTransmission: user=GUEST.ADMIN, transmissionId=285 [integrationOutbound - 1]
    2012-03-31 15:00:11.785     793084     Debug     Workflow     Completing workflow Simple Workflow (24159432) [integrationOutbound - 1]

    Also below is my transmission code:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <m:Transmission xmlns:m="http://xmlns.oracle.com/apps/otm">
                   <m:TransmissionHeader>
                        <m:UserName>GUEST.ADMIN</m:UserName>
                        <m:Password>CHANGEME</m:Password>
                        <m:AckSpec>
                             <m:ComMethodGid>
                                  <m:Gid>
                                       <m:Xid>HTTPPOST</m:Xid>
                                  </m:Gid>
                             </m:ComMethodGid>
                             <m:ServletURL>http://10.182.206.128:7001/WebDemo/testservlet</m:ServletURL>
                             <m:AckOption>YES</m:AckOption>
                             <m:ContactGid>
                                  <m:Gid>
                                       <m:Xid>EBS.3540</m:Xid>
                                  </m:Gid>
                   </m:ContactGid>
                        </m:AckSpec>
                   </m:TransmissionHeader>
                   <m:TransmissionBody>
                        <m:GLogXMLElement>
                             <m:RemoteQuery>
                                  <m:RIQQuery>
                                       <m:SourceAddress>
                                            <m:MileageAddress>
                                                 <m:City>MELBOURNE</m:City>
                                                 <m:LocationGid>
                                                      <m:Gid>
                                                           <m:DomainName>GUEST</m:DomainName>
                                                           <m:Xid>MEL1</m:Xid>
                                                      </m:Gid>
                                                 </m:LocationGid>
                                                 <m:ProvinceCode>VI</m:ProvinceCode>
                                                 <m:CountryCode3Gid>
                                                      <m:Gid>
                                                           <m:Xid>AUS</m:Xid>
                                                      </m:Gid>
                                                 </m:CountryCode3Gid>
                                            </m:MileageAddress>
                                       </m:SourceAddress>
                                       <m:DestAddress>
                                            <m:MileageAddress>
                                                 <m:City>SYDNEY</m:City>
                                                 <m:LocationGid>
                                                      <m:Gid>
                                                           <m:DomainName>GUEST</m:DomainName>
                                                           <m:Xid>SYD1</m:Xid>
                                                      </m:Gid>
                                                 </m:LocationGid>
                                                 <m:ProvinceCode>NS</m:ProvinceCode>
                                                 <m:CountryCode3Gid>
                                                      <m:Gid>
                                                           <m:Xid>AUS</m:Xid>
                                                      </m:Gid>
                                                 </m:CountryCode3Gid>
                                            </m:MileageAddress>
                                       </m:DestAddress>
                                       <m:ShipUnit>
                                            <m:WeightVolume>
                                                 <m:Weight>
                                                      <m:WeightValue>0</m:WeightValue>
                                                      <m:WeightUOMGid>
                                                           <m:Gid>
                                                                <m:Xid>LB</m:Xid>
                                                           </m:Gid>
                                                      </m:WeightUOMGid>
                                                 </m:Weight>
                                                 <m:Volume>
                                                      <m:VolumeValue>0</m:VolumeValue>
                                                      <m:VolumeUOMGid>
                                                           <m:Gid>
                                                                <m:Xid>CUFT</m:Xid>
                                                           </m:Gid>
                                                      </m:VolumeUOMGid>
                                                 </m:Volume>
                                            </m:WeightVolume>
                                       </m:ShipUnit>
                                  </m:RIQQuery>
                             </m:RemoteQuery>
                        </m:GLogXMLElement>
                   </m:TransmissionBody>
              </m:Transmission>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

  • Oracle BPM Papi WebServices

    Hi,
    When I am trying to Launch PAPI Webservices in Oracle BPM Studio 10.3.1 and in Oracle BPM Enterprise Standalone Server, I am getting the error: "HTTP Status 404 - Servlet PapiWebServiceServlet is not available".
    Please help me in sorting out the issue.
    Thanks,
    Abhishek

    To see how to invoke PAPI-WS when using Oracle BPM Studio, go to this thread: PAPI Web Service (PAPI-WS) Example for Oracle BPM Studio
    Just a guess, but I'd suspect that the "Start PAPI Web Services" Studio Engine checkbox has not been checked (right mouse click the Project in your Project Navigator tab -> Engine Preferences -> click the "Advanced" tab on the right -> check the "Start PAPI Web Services" checkbox).
    Here is the location of a step-by-step explanation on how to use PAPI Web Service (PAPI-WS) to create a work item instance and then run the instance inside an activity in a process running on Oracle BPM Enterprise Standalone.
    http://www.4shared.com/file/128249957/9bd6ef61/PAPI-WS_for_Oracle_BPM_Standalone.html
    Be sure to use the project that is in the zip file for this example.
    Dan

  • Invoking a bpel process using webservice client

    I am not able to run the sample webservice client from
    102.InvokingProcesses/ws.
    When I try my own program for 132.UserTasks(very similar to the example program),
    The correct input looks like
    <inputVariable>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    - <ns1:stockReviewSheet xmlns:ns1="http://samples.otn.com">
    <ns1:symbol>ORCL</ns1:symbol>
    <ns1:targetPrice>100.0</ns1:targetPrice>
    <ns1:currentPrice>100.0</ns1:currentPrice>
    <ns1:action>200</ns1:action>
    <ns1:quantity>122</ns1:quantity>
    </ns1:stockReviewSheet>
    </part>
    </inputVariable>
    While from the invoking process whatever I give comes as
    <ns0:stockReviewSheet>
    <action>buy</action>
    <currentPrice>122.23</currentPrice>
    <quantity>100</quantity>
    <symbol>ORCL</symbol>
    <targetPrice>10.23</targetPrice>
    </ns0:stockReviewSheet>
    I am using the version 10.1.3 and the error I get on the application side is
    07/08/27 17:42:20.757 UserTaskSampleUI: Servlet error
    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
         at java.util.ArrayList.get(ArrayList.java:321)
         at java.util.Collections$UnmodifiableList.get(Collections.java:1155)
         at displayTask.jspService(_displayTask.java:105)
         at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Can anybody point me to invocation of bpel process via web service for complex object types like User for 10.1.3??
    Any input would be highly useful!!!
    Message was edited by:
    user576399
    Message was edited by:
    user576399

    Sancho,
    Thanks for the prompt reply. We trying to automate the following process:-
    1. The user select multiple documents from a folder in a library that contains all released documents.
    2. He then locks the documents.
    3. Selects the locked documents and copies it to a folder in the personal library.
    We are trying to lock and copy the documents as a 1 step process, because its difficult for the users to select all of the documents locked earlier and then copy it the personal library.
    We are trying to take the folder name as the user parameter, when the files are locked, so that the process and create the lock the files, create the folder and copy the files in this folder.
    Thanks again for your time and help.
    Hetal

  • To format an Excel worksheet invoked by oracle form using DDE functions

    I'm exporting data from oracle form6 into excel sheet using DDE functions.
    Is there any DDE functions to format the excel sheet.

    Maybe you can use format commands through DDE (if the DDE server suports them) but I personally don't know.
    My approach is to record an excel macro which formats your sheet and then invoke the macro through DDE. You can fill cells with control numbers (like number of rows, number of cells) so you can make your macro even smarter by reading these numbers.

  • How to print a report on crystal report server using webservice call

    Hi,
    I'm looking for web service api calls that help print a report on the crystal report server. Can someone post a snippet of how this is done.
    Thanks,

    Below is a snippet that uses the BusinessObjects Enterprise XI Release 2 version of the BIPlatform Web Services Java Consumer API:
    Sincerely,
    Ted Ueda
    /* Printer name */
    String printerName = "\\\\van-s-prt01\\VAN-P-BEAVERCREEK";
    /* URL to Enterprise Web Services */
    String servicesURL = "http://localhost:8080/dswsbobje/services";
    Session ceSession = null;
    Connection ceConnection = new Connection(new URL(servicesURL + "/session"));
    EnterpriseCredential ceCredential = new EnterpriseCredential();
    ceCredential.setDomain(cmsname);
    ceCredential.setAuthType(authType);
    ceCredential.setLogin(username);
    ceCredential.setPassword(password);
    try {
         ceSession = new Session(ceConnection);
         ceSession.login(ceCredential);
         ceConnection.setURL(new URL(servicesURL + "/biplatform"));
         BIPlatform bip = new BIPlatform(ceConnection, ceSession.getConnectionState());
         GetOptions getOpts =new GetOptions();
         getOpts.setIncludeSecurity(Boolean.FALSE);
         ResponseHolder rh = bip.get(reportPath, getOpts);
         InfoObjects infoObjects = rh.getInfoObjects();
         CrystalReport report = (CrystalReport) infoObjects.getInfoObject(0);
         ReportProcessingInfo processing = report.getPluginProcessingInterface();
        CrystalReportPrinterOptions printerOptions = processing.getReportPrinterOptions();
        printerOptions.setEnabled(Boolean.TRUE);
        printerOptions.setPrinterName(printerName);
         report.setSchedulingInfo(new SchedulingInfo());
         report.getSchedulingInfo().setRightNow(Boolean.TRUE);
         bip.schedule(infoObjects);
    } finally {
         if(ceSession != null)
              ceSession.logout();

  • Invoking ALBPM Process from ALSB

    Hi,
    I am presently trying to invoke ALBPM(Oracle BPM) process by registering my process as webservice to ALSB (OSB). I am however not able to trigger my processes from ALSB. I have posted the steps followed. Please help me in figuring out the missing piece
    a) Registered the ALBPM Process WSDL in ALSB by importing manually
    b) Created a Business Service based on the WSDL
    c) Created a Proxy Service based on the WSDL.
    Invoked the "startSession" operation to generate the sessionID using ALSB test browser. ALSB receives an error response.
    I was however able to generate my sessionID and also invoke my processes successfully by using any generic Soap client.
    Please do help me in figuring out my missing steps.
    Thanks in Advance,
    Rudraksh

    Hi,
    Thanks for your response. I am getting an echo of the request as the response. I am just trying to invoke my "startSession" from test browser . I am presently using the default proxy services to trigger the ALBPM webservices. I haven't configured any message flows.I have posted the invocation trace response below.
    Invocation trace ::
    Routed Service
    No Service has been invoked, the request is echoed.
    I also happened to try out the option of registering the endpoint to connect to OSB from with OBPM. I am presently getting this stack trace everytime I try to register.
    fuego.lang.exception.ProgramException: Couldn't invoke method 'publish' on fuego.alsb.deployment.ProcessesDeploymentModel@7846a9
         at fuego.lang.exception.ProgramException.wrap(ProgramException.java:55)
         at fuego.lang.reflect.MethodUtils.invokeMethod(MethodUtils.java:50)
         at fuego.ui.wizards.ui.InvokeMethodActionListener.actionPerformed(InvokeMethodActionListener.java:49)
         at fuego.ui.peer.swt.SwtButton$1.widgetSelected(SwtButton.java:63)
         at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
         at fuego.ui.peer.swt.SwtWindow.setVisible(SwtWindow.java:179)
         at fuego.ui.UiComponent.setVisible(UiComponent.java:832)
         at fuego.ui.Dialog.setVisible(Dialog.java:218)
         at fuego.designer.action.OpenAlsbProcessDeploymentDialogAction.run(OpenAlsbProcessDeploymentDialogAction.java:61)
         at fuego.eclipse.ui.EclipseAction.run(EclipseAction.java:180)
         at fuego.eclipse.ui.EclipseAction.run(EclipseAction.java:199)
         at fuego.eclipse.studio.actions.EclipseActionDelegate.run(EclipseActionDelegate.java:39)
         at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:256)
         at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
         at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:546)
         at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
         at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:443)
         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
         at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
         at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
         at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
         at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
         at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
    Caused by: java.lang.reflect.InvocationTargetException
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
         at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:198)
         at fuego.lang.reflect.MethodUtils.invokeMethod(MethodUtils.java:40)
         ... 43 more
    Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(Unknown Source)
         at java.security.SecureClassLoader.defineClass(Unknown Source)
         at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:338)
         at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:210)
         at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:128)
         at weblogic.rmi.utils.Utilities.loadClass(Utilities.java:308)
         at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:400)
         at weblogic.utils.io.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:255)
         at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
         at java.io.ObjectInputStream.readClassDesc(Unknown Source)
         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
         at java.io.ObjectInputStream.readObject0(Unknown Source)
         at java.io.ObjectInputStream.readObject(Unknown Source)
         at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:195)
         at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:565)
         at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:191)
         at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
         at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:201)
         at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:224)
         at javax.management.remote.rmi.RMIConnectionImpl_1030_WLStub.invoke(Unknown Source)
         at weblogic.management.remote.common.RMIConnectionWrapper$15.run(ClientProviderBase.java:606)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at weblogic.security.Security.runAs(Security.java:61)
         at weblogic.management.remote.common.RMIConnectionWrapper.invoke(ClientProviderBase.java:604)
         at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(Unknown Source)
         at javax.management.MBeanServerInvocationHandler.invoke(Unknown Source)
         at $Proxy23.importUploaded(Unknown Source)
         at fuego.alsb.dao.impl.AlsbManagerImpl.importJar(AlsbManagerImpl.java:404)
         at fuego.alsb.process.ProjectHelper.publishProcess(ProjectHelper.java:534)
         at fuego.alsb.process.ProjectHelper.publish(ProjectHelper.java:139)
         at fuego.alsb.deployment.ProcessesDeploymentModel.publish(ProcessesDeploymentModel.java:138)
         ... 50 more
    I am stuck.I really appreciate any help in this regard.
    Rudraksh
    Edited by: rudraksh on Jul 17, 2009 1:59 PM

  • Triggering a published webservice using Webservice

    Hi All,
    I am presently trying to invoke an Oracle BPM webservice published on the Enterprise Server. I however, always get hit with "Process Access Denied" Soap Fault. I happened to create an participant in the enterprise with the same Role as the defined in my published process. I also added "Global Creation Activity" hoping that it would help me figure out the issue. None of which seems to help me resolve my issue.
    The same process seems to work fine while executing from Studio.
    The response message is posted below:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server.userException</faultcode>
    <faultstring/>
    <detail>
    <message>Process access denied.</message>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    Thanks in Advance,
    Rudraksh
    Edited by: rudraksh on Jun 25, 2009 3:09 PM
    Edited by: rudraksh on Jun 25, 2009 4:18 PM

    I figured this out myself.
    Rudraksh

  • Oracle BPM Suite : Oracle BPM vs Oracle BPEL PM

    Hi All,
    I am new in Oracle BPM and how some experience learning how to use Oracle BPM. Now when reading about the components products inside "Oracle BPM Suite" in detail , I am some what confuse about :
    1) In What situation that we should use "Oracle BPM" rather than "Oracle BPEL PM" ?
    2) In What situation that we should use "Oracle BPEL PM" rather than "Oracle BPM" ?
    I am confuse about these issue since both of the products come together when we order "Oracle BPM Suite" and both of the products can be used for "HUman Workflow Applications" as well
    Could you please help clarify these issues ? Thank you very much in advance.
    Best Regards
    Pearapon S.

    Hi Pearapon,
    You’ve raised a good point.
    Every once in a while, I see an article written by a BPM pundit that attempts to make the case that the BPMN approach (Oracle BPM uses this) is superior to the BPEL approach or vice versa. Here's one example on InfoQ - http://www.infoq.com/articles/bpelbpm. Its title "Why BPEL is not the holy grail for BPM" is very misleading. This is a typical example of an author sitting in either the BPMN or BPEL camp criticizing the other camp's standard. In this article, the author attempts to indict all BPMN to BPEL conversion attempts based on the author's poorly drawn process.
    Although I know that controversy boosts readership of these types of articles, in my opinion it’s not a “vs.”. Both the BPMN and BPEL standards have strengths when used with certain use cases.
    Here’s one scenario where Oracle BPM and Oracle BPEL PM are synergistic. My background is with Oracle BPM, but I’ve used Oracle BPEL PM on a project for the orchestration of composite services. I used Oracle BPM to model the business processes understood by executives, managers, subject matter experts, business analysts and developers. Using the same simple role based activity flow process diagram, everyone understands what the business problem is and how the process will work solve the problem. The Oracle BPM Automatic activities in the process hit Oracle BPEL processes. Here we used the BPEL processes to hit and orchestrate the underlying IT components . We exposed the BPEL processes using the customer’s service bus and we invoked it from the Oracle BPM process’s Automatic activity (Oracle BPM -> OSB -> Oracle BPEL). Alternatively, If the customer had not had a service bus, I could have invoked the BPEL process directly from the Oracle BPM process via a cataloged web service in Oracle BPM.
    Hope this helps,
    Dan

  • Oracle BPM to Replace a System

    Greetings,
    I am considering replacing an existing mission critical back office system with Oracle BPM. I've talked with references provided by Oracle, and in all cases these co's used BPM to improve processes and orchestrate workflow across systems, NOT replace a system.
    Where would our business logic reside??? Would the system be a collection of components running inside BPM?
    Although this could be done, to me, this doesn't seem like the intended purpose of a BPM tool. It just doesn't sit well with me that we'd use a business modeling and process tool to replace a mission critical solution.
    Thanks

    Regarding your question about where the logic in a BPM process would reside, rather than rip and replace, you might want to first consider reusing assets from your existing applications inside an Oracle BPM process.
    If you have a service bus, the components would be exposed to and invoked by Oracle BPM via as a web service. If you don't have a service bus, you could expose components directly inside of Oracle BPM if they are Java POJOs, web services, .NET assemblies, or databases. If you go this path, you'll lose the loose coupling SOA provides but you'll get your project going.
    If you don't have component assets available for reuse, you can build logic inside automatic activities in a process. Again, if your developers would prefer to develop the components in Java or .NET, these could be exposed to the process and invoked when needed from inside the process.
    Consider also exposing business rules in a rules engine if you have one. You can invoke these rules from inside a process. If you don't already have a rules engine, Oracle BPM has a simple business rules editor and rules engine that comes with it now. The benefit of this is that you are not hard coding rules inside a process. Instead you expose the business rules to the business people. This makes your processes more agile and easier to change. You won't have to wait for IT to change the process and redeploy the process into production. Business rules take effect immediately after the business person changes the rule.
    hth,
    Dan

  • How to call Apache CXF webservice/Spring/jms from Oracle BPM 10g

    Hi , I am new to Oracle BPM and trying to develop simple POC. Can anybody give me some pointers on how to call a webservice whcich is based on Apache CXF/Spring/WSDL/jms as transport from oracle bpm 10g

    You should ask this question in the JDeveloper or BI Publisher forum.

  • Calling Oracle BPM Process Web Service from Oracle Service Bus

    Hi
    I am using Oracle Service Bus 10gR3.
    I have developed simple BPM process through Oracle BPM studio 10.3.1.0.I then followed steps below
    1. Create a Process.
    2. Expose the Process as a Web Service.
    3. Run the project. This starts the Process Execution Engine.
    4. Create an ALSB External Resource of type Management Host.
    5. Create a second ALSB External Resource for registration.
    6. Register the End Point
    Until this point everything is fine. Then I created one project through Oracle Service Bus console. Under that created WSDL, Proxy Service and Business Service Folders. I am using the web service created through BPM studio as teh Business Service in SB . I then created one proxy service to route the request to the Business Service.
    Finally when I try to test the Proxy Service by launching test console, I get the
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-380001</con:errorCode>
    <con:reason>INTERNAL SERVER ERROR</con:reason>
    <con:location>
    <con:node>RouteNode1</con:node>
    <con:path>response-pipeline</con:path>
    </con:location>
    </con:fault>
    I also tried to debug through "Oracle Workshop for WebLogic Version 10.3 " . But I am not getting enough details as to why this is failing.
    Please help me . Thanks In advance.
    Thanks
    Nilay
    Edited by: user8950019 on Feb 1, 2010 4:11 AM

    Hi,
    When im calling wsdl created when BPM exposed as webservice in SOAP-ui, i first hit the startSession
    Request is:-
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exp="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
    <soapenv:Header/>
    <soapenv:Body>
    <exp:startSession>
    <password>Employee</password>
    <user>Employee</user>
    </exp:startSession>
    </soapenv:Body>
    </soapenv:Envelope>
    Response i Get is:-
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns1:startSessionResponse xmlns:ns1="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
    <return>3782hecq1s85h</return>
    </ns1:startSessionResponse>
    </soapenv:Body>
    </soapenv:Envelope
    but when i put this sessionId in main request:-
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exp="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
    <soapenv:Header/>
    <soapenv:Body>
    <exp:expenseReport>
    <sessionId>3782hecq1s85h</sessionId>
    <reportArg>
    <!--Optional:-->
    <comments>yes</comments>
    <!--Optional:-->
    <costCenter>jaa</costCenter>
    <!--Optional:-->
    <description>aa</description>
    <!--Optional:-->
    <isApproved>y</isApproved>
    <!--Zero or more repetitions:-->
    <items>
    <!--Optional:-->
    <elements>
    <!--Optional:-->
    <amount>700</amount>
    <!--Optional:-->
    <date>?</date>
    <!--Optional:-->
    <description>?</description>
    <!--Optional:-->
    <receiptChecked>?</receiptChecked>
    </elements>
    </items>
    <!--Optional:-->
    <reviewedBy>?</reviewedBy>
    <!--Optional:-->
    <submitDate>?</submitDate>
    <!--Optional:-->
    <submittedBy>?</submittedBy>
    <!--Optional:-->
    <total>?</total>
    </reportArg>
    </exp:expenseReport>
    </soapenv:Body>
    </soapenv:Envelope>
    Response coming is :-
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server.userException</faultcode>
    <faultstring>fuego.lang.ComponentExecutionException: The method 'expenseReport' from class 'xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl' could not be successfully executed.</faultstring>
    <detail>
    <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">fuego.lang.ComponentExecutionException: The method 'expenseReport' from class 'xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl' could not be successfully executed.
         at fuego.lang.Invokeable.invokeImpl(Invokeable.java:244)
         at fuego.lang.Invokeable.invokeDynamic(Invokeable.java:188)
         at fuego.lang.Invokeable.invoke(Invokeable.java:160)
         at fuego.soaptype.SoapListener.invokeDynamic(SoapListener.java:104)
         at fuego.lang.Invokeable.invoke(Invokeable.java:160)
         at fuego.fengine.FEngineWebServiceExecutor$2.execute(FEngineWebServiceExecutor.java:133)
         at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
         at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
         at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
         at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
         at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
         at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
         at fuego.fengine.FEngineWebServiceExecutor$1.run(FEngineWebServiceExecutor.java:65)
         at fuego.component.Message.process(Message.java:576)
         at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
         at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
         at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
         at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
         at fuego.fengine.FEngineWebServiceExecutor$WebServiceExecutorPrincipal.processBatch(FEngineWebServiceExecutor.java:168)
         at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
         at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
    Caused by: java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "jaa"
         at xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl.expenseReport(ExpenseReportServiceInternalAlbpmListenerImpl.xcdl:36)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
         at fuego.lang.JavaObject.invoke(JavaObject.java:227)
         at fuego.lang.Invokeable.invokeImpl(Invokeable.java:234)
         ... 21 more
    Caused by: java.lang.NumberFormatException: For input string: "jaa"
         at java.lang.NumberFormatException.forInputString(Unknown Source)
         at java.lang.Integer.parseInt(Unknown Source)
         at java.lang.Integer.valueOf(Unknown Source)
         at fuego.util.Conversion.tojava_lang_Integer(Conversion.java:934)
         at fuego.xobject.runtime.ConversionUtilities.fromString(ConversionUtilities.java:56)
         at fuegoblock.xml.XmlElementDeserializer.deserializeElement(XmlElementDeserializer.java:175)
         at fuegoblock.xml.XmlElementDeserializer.deserialize(XmlElementDeserializer.java:81)
         at fuegoblock.xml.DynamicXml.createObjectFrom(DynamicXml.java:160)
         at fuegoblock.xml.DynamicXml.createObjectFrom(DynamicXml.java:119)
         at xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl.expenseReport(ExpenseReportServiceInternalAlbpmListenerImpl.xcdl:17)
         ... 28 more</ns1:stackTrace>
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">D-113014550</ns2:hostname>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    can anyone explain why this error is coming.?
    Edited by: user8937128 on May 19, 2010 6:58 AM

  • Oracle 10gR2 WebService Call-In & Call-Out via PL/SQL (Step-by-Step Guide)

    Hi Everyone,
    This guide is for those of you who tried to Call-In and Call-Out WebService via Oracle 10gR2 using PL/SQL but failed a couple of times, re-installed a couple of times and retry, got it to work but don't know what made it work scenarios.
    Hope this helps ;-)
    Thanks,
    Henry Wu
    Instructions on how to use Oracle10gR2 Webservice Call-Out feature (Oracle JAX-RPC DII - Dynamic Invocation (DII) APIs)
    PREREQUISITE
    =================================================================
    1. Download Oracle Database 10g Release 2 (10.2.0.1.0) (ZIP, ~655MB)
    http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html
    http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip
    1.1 Choose Enterprise Edition
    2. Download 10.1.3.1 Callout Utility for 10g (R1 +R2) RDBMS (ZIP, ~13MB)
    http://download.oracle.com/technology/sample_code/tech/java/jsp/dbws-callout-utility-10131.zip
    2.1 Extract to C:\oracle\product\10.2.0\db_1\dbws_callout_utility_10131
    3. Download OC4J Standalone - Oracle Containers for J2EE (OC4J) 10g Release 3 (10.1.3.3) (ZIP, ~93MB; Pure Java—runs on all certified platforms)
    http://www.oracle.com/technology/software/products/ias/index.html (Download Site)
    http://download.oracle.com/otn/java/oc4j/101330/oc4j_extended_101330.zip
    3.1 Extract to C:\oracle\product\10.2.0\db_1\oc4j_extended_101330
    STEP-BY-STEP PROCEDURES
    =================================================================
    1. Prepare the database
    1.1 Connect to SYS account (or any account that can connect as SYSDBA)
    1.2 alter system set shared_pool_size=96M scope=both
    1.3 alter system set java_pool_size=80M scope=both
    1.4 ALTER USER SCOTT ACCOUNT UNLOCK;
    1.5 ALTER USER SCOTT IDENTIFIED BY "tiger";
    1.6 ALTER USER SCOTT QUOTA UNLIMITED ON USERS;
    1.7 GRANT PUBLIC TO SCOTT;
    1.8 GRANT Create Public Synonym TO SCOTT;
    2. Load Oracle SOAP client to SCOTT (for Oracle 10g Release 2 Database)
    2.1 Commands
    2.1.1 Open command prompt (cmd.exe)
    2.1.2 loadjava -u scott/tiger -r -v -f -genmissing -s -grant public C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\webservices\lib\soap.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\lib\dms.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\jlib\javax-ssl-1_1.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\lib\servlet.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\lib\mail.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\lib\activation.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\lib\http_client.jar C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\lib\ejb.jar
    2.1.3 It will take around 3 minutes and you will see "something" like the following when it completes (count may not be exact) :
    Classes Loaded: 909
    Resources Loaded: 75
    Sources Loaded: 0
    Published Interfaces: 0
    Classes generated: 0
    Classes skipped: 0
    Synonyms Created: 984
    Errors: 0
    2.1.3 Close this command prompt
    3. Load Oracle JAX-RPC client to SYS (for Oracle 10g Release 2 Database)
    3.1 Commands
    3.1.1 Open command prompt (cmd.exe)
    3.1.2 loadjava -u sys/oracle -r -v -f -genmissing -s -grant public C:\oracle\product\10.2.0\db_1\dbws_callout_utility_10131\sqlj\lib\dbwsclientws.jar C:\oracle\product\10.2.0\db_1\dbws_callout_utility_10131\sqlj\lib\dbwsclientdb102.jar
    3.1.2.1 It will take around 15 minutes and you will see "something" like following when it completes (count may not be exact) :
    Classes Loaded: 4027
    Resources Loaded: 81
    Sources Loaded: 0
    Published Interfaces: 0
    Classes generated: 61
    Classes skipped: 0
    Synonyms Created: 4108
    Errors: 0
    3.1.3 Close this command prompt
    4. Execute UTL_DBWS packages to SYS (for Oracle 10g Release 2 Database)
    4.1 Commands
    4.1.1 Connect to SYS account only
    4.1.2 Execute the following (in TOAD you should execute them as Script, press the "thunder" button)
    4.2.1 @"C:\oracle\product\10.2.0\db_1\dbws_callout_utility_10131\sqlj\lib\utl_dbws_decl.sql"
    4.2.2 @"C:\oracle\product\10.2.0\db_1\dbws_callout_utility_10131\sqlj\lib\utl_dbws_body.sql"
    4.2.3 CREATE PUBLIC SYNONYM utl_dbws FOR sys.utl_dbws;
    5. Call-out a free Web Service using SCOTT
    5.1 Commands
    5.1.1 Connect to user SCOTT with password of TIGER
    5.1.2 Copy and Paste the following "Anonymous Block" (sample #1) and execute it :
    5.1.2.1 It sould return "PL/SQL DII client return ===> Redwood City"
    declare
    service_ utl_dbws.SERVICE;
    call_ utl_dbws.CALL;
    service_qname utl_dbws.QNAME;
    port_qname utl_dbws.QNAME;
    operation_qname utl_dbws.QNAME;
    string_type_qname utl_dbws.QNAME;
    retx ANYDATA;
    retx_string VARCHAR2(1000);
    retx_double number;
    retx_len number;
    params utl_dbws.ANYDATA_LIST;
    l_input_params utl_dbws.anydata_list;
    l_result ANYDATA;
    l_namespace VARCHAR2(1000);
    begin
    -- open internet explorer and navigate to http://webservices.imacination.com/distance/Distance.jws?wsdl
    -- search for 'targetNamespace' in the wsdl
    l_namespace := 'http://webservices.imacination.com/distance/Distance.jws';
    -- search for 'service name' in the wsdl
    service_qname := utl_dbws.to_qname(l_namespace, 'DistanceService');
    -- this is just the actual wsdl url
    service_ := utl_dbws.create_service(HTTPURITYPE('http://webservices.imacination.com/distance/Distance.jws?wsdl'), service_qname);
    -- search for 'portType name' in the wsdl
    port_qname := utl_dbws.to_qname(l_namespace, 'Distance');
    -- search for 'operation name' in the wsdl
    -- there will be a lot, we will choose 'getCity'
    operation_qname := utl_dbws.to_qname(l_namespace, 'getCity');
    -- bind things together
    call_ := utl_dbws.create_call(service_, port_qname, operation_qname);
    -- default is 'FALSE', so we make it 'TRUE'
    utl_dbws.set_property(call_, 'SOAPACTION_USE', 'TRUE');
    -- search for 'operation soapAction' under <wsdl:operation name="getCity">
    -- it is blank, so we make it ''
    utl_dbws.set_property(call_, 'SOAPACTION_URI', '');
    -- search for 'encodingstyle' under <wsdl:operation name="getCity">
    utl_dbws.set_property(call_, 'ENCODINGSTYLE_URI', 'http://schemas.xmlsoap.org/soap/encoding/');
    -- search for 'binding style'
    utl_dbws.set_property(call_, 'OPERATION_STYLE', 'rpc');
    -- search for 'xmlns:xs' to know the value of the first parameter
    -- under <wsdl:message name="getCityResponse"> you will see the line <wsdl:part name="getCityReturn" type="xsd:string" />
    -- thus the return type is 'string", removing 'xsd:'
    string_type_qname := utl_dbws.to_qname('http://www.w3.org/2001/XMLSchema', 'string');
    -- in the line <wsdl:operation name="getCity" parameterOrder="zip">
    -- the parameterOrder is 'zip', thus we put in 'zip'
    -- the 'ParameterMode.IN' is used to specify that we will be passing an "In Parameter" to the web service
    -- the 'ParameterMode.IN' is a constant variable in the sys.utl_dbws package
    utl_dbws.add_parameter(call_, 'zip', string_type_qname, 'ParameterMode.IN');
    utl_dbws.set_return_type(call_, string_type_qname);
    -- supply the In Parameter for the web service
    params(0) := ANYDATA.convertvarchar('94065');
    -- invoke the web service
    retx := utl_dbws.invoke(call_, params);
    -- access the returned value and output it to the screen
    retx_string := retx.accessvarchar2;
    dbms_output.put_line('PL/SQL DII client return ===> ' || retx_string);
    -- release the web service call
    utl_dbws.release_service(service_);
    end;
    5.1.3 Copy and Paste the following "Anonymous Block" (sample #2) and execute it :
    5.1.3.1 It should return "PL/SQL DII client return ===> twelve thousand three hundred and forty five"
    declare
    service_ utl_dbws.SERVICE;
    call_ utl_dbws.CALL;
    service_qname utl_dbws.QNAME;
    port_qname utl_dbws.QNAME;
    operation_qname utl_dbws.QNAME;
    string_type_qname utl_dbws.QNAME;
    retx ANYDATA;
    retx_string VARCHAR2(1000);
    retx_double number;
    retx_len number;
    params utl_dbws.ANYDATA_LIST;
    l_input_params utl_dbws.anydata_list;
    l_result ANYDATA;
    l_namespace VARCHAR2(1000);
    begin
    -- open internet explorer and navigate to http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL
    -- search for 'targetNamespace' in the wsdl
    l_namespace := 'http://www.dataaccess.com/webservicesserver/';
    -- search for 'service name' in the wsdl
    service_qname := utl_dbws.to_qname(l_namespace, 'NumberConversion');
    -- this is just the actual wsdl url
    service_ := utl_dbws.create_service(HTTPURITYPE('http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL'), service_qname);
    -- search for 'portType name' in the wsdl
    port_qname := utl_dbws.to_qname(l_namespace, 'NumberConversionSoap');
    -- search for 'operation name' in the wsdl
    -- there will be a lot, we will choose 'NumberToWords'
    operation_qname := utl_dbws.to_qname(l_namespace, 'NumberToWords');
    -- bind things together
    call_ := utl_dbws.create_call(service_, port_qname, operation_qname);
    -- default is 'FALSE', so we make it 'TRUE'
    utl_dbws.set_property(call_, 'SOAPACTION_USE', 'TRUE');
    -- search for 'operation soapAction' under <operation name="NumberToWords">
    -- it is blank, so we make it ''
    utl_dbws.set_property(call_, 'SOAPACTION_URI', '');
    -- search for 'encodingstyle'
    -- cannot find xml tag 'encodingstyle', so we just use the following as the generic encoding style
    utl_dbws.set_property(call_, 'ENCODINGSTYLE_URI', 'http://schemas.xmlsoap.org/soap/encoding/');
    -- search for 'binding style'
    -- although 'document' was used, it produced an error, thus we will use 'rpc'
    -- this value is generally only 'document' or 'rpc'
    utl_dbws.set_property(call_, 'OPERATION_STYLE', 'rpc');
    -- search for 'xmlns:xs' to know the value of the first parameter
    -- under <xs:element name="NumberToWords"> you will see the line <xs:element name="ubiNum" type="xs:unsignedLong" />
    -- thus the return type is 'unsignedlong', removing 'xs:'
    -- however, upon testing, using 'unsignedlong' produced an error, while 'string' did not, so we will use 'string'
    string_type_qname := utl_dbws.to_qname('http://www.w3.org/2001/XMLSchema', 'string');
    -- under <xs:element name="NumberToWords"> you will see the line <xs:element name="ubiNum" type="xs:unsignedLong" />
    -- the element name is 'ubiNum', thus we put in 'ubiNum'
    -- the 'ParameterMode.IN' is used to specify that we will be passing an "In Parameter" to the web service
    -- the 'ParameterMode.IN' is a constant variable in the utl_dbws package
    utl_dbws.add_parameter(call_, 'ubiNum', string_type_qname, 'ParameterMode.IN');
    utl_dbws.set_return_type(call_, string_type_qname);
    -- supply the In Parameter for the web service
    params(0) := ANYDATA.convertvarchar('12345');
    -- invoke the web service
    retx := utl_dbws.invoke(call_, params);
    -- access the returned value and output it to the screen
    retx_string := retx.accessvarchar2;
    dbms_output.put_line('PL/SQL DII client return ===> ' || retx_string);
    -- release the web service call
    utl_dbws.release_service(service_);
    end;
    NOTES AND REFERENCES
    =================================================================
    This detailed step-by-step guide was produced with the following guide http://www.oracle.com/technology/sample_code/tech/java/jsp/callout_users_guide.htm
    I could still not load Oracle JAX-RPC client to SCOTT (step 4) as it produces an error. See the following for more details :
    http://forums.oracle.com/forums/thread.jspa?threadID=633219&tstart=0
    Also, I could not consume some of the other free Web Services out there for reasons I don't know, hope someone can help clarify. See the following for more details :
    http://forums.oracle.com/forums/thread.jspa?threadID=630733&tstart=0
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Instructions on how to use Oracle10gR2 Webservice Call-In feature
    PREREQUISITE
    =================================================================
    1. Download Oracle Database 10g Release 2 (10.2.0.1.0) (ZIP, ~655MB)
    http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html
    http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip
    1.1 Choose Enterprise Edition
    2. Download OC4J Standalone - Oracle Containers for J2EE (OC4J) 10g Release 3 (10.1.3.3) (ZIP, ~93MB; Pure Java—runs on all certified platforms)
    http://www.oracle.com/technology/software/products/ias/index.html (Download Site)
    http://download.oracle.com/otn/java/oc4j/101330/oc4j_extended_101330.zip
    2.1 Extract to C:\oracle\product\10.2.0\db_1\oc4j_extended_101330
    STEP-BY-STEP PROCEDURES
    =================================================================
    1. Connect to SYS account and create user STORE
    CREATE USER store IDENTIFIED BY store;
    GRANT connect, resource TO store;
    2. Connect to Oracle using the user STORE and password STORE
    CONNECT store/store;
    3. Execute the following objects for this excercise
    CREATE SEQUENCE order_sq;
    CREATE TABLE product_types (
    product_type_id INTEGER
    CONSTRAINT product_types_pk PRIMARY KEY,
    name VARCHAR2(10) NOT NULL
    CREATE TABLE products (
    product_id INTEGER
    CONSTRAINT products_pk PRIMARY KEY,
    product_type_id INTEGER
    CONSTRAINT products_fk_product_types
    REFERENCES product_types(product_type_id),
    name VARCHAR2(30) NOT NULL,
    description VARCHAR2(50),
    price NUMBER(5, 2)
    CREATE TABLE customers (
    customer_id INTEGER
    CONSTRAINT customers_pk PRIMARY KEY,
    first_name VARCHAR2(10) NOT NULL,
    last_name VARCHAR2(10) NOT NULL,
    dob DATE,
    phone VARCHAR2(12)
    CREATE TABLE orders (
    order_id INTEGER
    CONSTRAINT orders_pk PRIMARY KEY,
    product_id INTEGER
    CONSTRAINT purchases_fk_products
    REFERENCES products(product_id),
    customer_id INTEGER
    CONSTRAINT purchases_fk_customers
    REFERENCES customers(customer_id),
    quantity INTEGER NOT NULL
    INSERT INTO customers (
    customer_id, first_name, last_name, dob, phone
    ) VALUES (
    1, 'John', 'Brown', '01-JAN-1965', '800-555-1211'
    INSERT INTO product_types (
    product_type_id, name
    ) VALUES (
    1, 'Book'
    INSERT INTO products (
    product_id, product_type_id, name, description, price
    ) VALUES (
    1, 1, 'Modern Science', 'A description of modern science', 19.95
    COMMIT;
    CREATE OR REPLACE PACKAGE dbfunc AS
    FUNCTION place_order (
    p_product_id INTEGER,
    p_customer_id INTEGER,
    p_quantity INTEGER
    RETURN VARCHAR2;
    END dbfunc;
    CREATE OR REPLACE PACKAGE BODY dbfunc AS
    FUNCTION place_order (
    p_product_id INTEGER,
    p_customer_id INTEGER,
    p_quantity INTEGER
    RETURN VARCHAR2 IS
    v_customer_count INTEGER;
    v_product_count INTEGER;
    v_order_id INTEGER;
    BEGIN
    -- count the number of products with the
    -- supplied p_product_id (should be 1 if the product exists)
    SELECT COUNT(*)
    INTO v_product_count
    FROM products
    WHERE product_id = p_product_id;
    IF v_product_count = 0 THEN
    RETURN 'No such product';
    END IF;
    -- count the number of customers with the
    -- supplied p_customer_id (should be 1)
    SELECT COUNT(*)
    INTO v_customer_count
    FROM customers
    WHERE customer_id = p_customer_id;
    IF v_customer_count = 0 THEN
    RETURN 'No such customer';
    END IF;
    -- get the next value from orders_sq
    SELECT order_sq.nextval
    INTO v_order_id
    FROM dual;
    -- place the order
    INSERT INTO orders (
    order_id, product_id, customer_id, quantity
    ) VALUES (
    v_order_id, p_product_id, p_customer_id, p_quantity
    COMMIT;
    RETURN 'Order placed with id of ' || v_order_id;
    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;
    RETURN 'Order not placed';
    END place_order;
    END dbfunc;
    4. Install and Configure OC4J
    4.1 Change Directory
    4.1.1 Open command prompt (cmd.exe)
    4.1.2 CD C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\bin
    4.2 Configure Environment variables (type in command prompt)
    4.2.1 set JAVA_HOME=C:\oracle\product\10.2.0\db_1\jdk
    4.2.2 set ORACLE_HOME=C:\oracle\product\10.2.0\db_1\oc4j_extended_101330
    4.3 Starting OC4J for the first time
    4.3.1 oc4j -start
    4.3.2 If this is not your first time to "start" oc4j, go to step 4.3.4
    4.3.3 Set oc4jadmin password (use the password "oracle" w/o the quotation marks)
    08/03/21 17:13:54 Set OC4J administrator's password (password text will not be displayed as it is entered)
    Enter password:
    Confirm password:
    Confirm password: The password for OC4J administrator "oc4jadmin" has been set.
    08/03/21 17:14:01 The OC4J administrator "oc4jadmin" account is activated.
    4.3.4 OC4J has started if you see the message :
    08/03/21 17:14:16 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized
    4.3.5 Leave this command prompt open
    4.4 Configure Data Source
    4.4.1 Open a new command prompt via the cmd.exe command
    4.4.2 type "hostname" and then press enter
    4.4.3 Keep this command prompt open for later use
    4.4.4 Open Windows Explorer and navigate to the folder C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\config
    4.4.5 Open the file data-sources.xml
    4.4.6 Modify and Save the file so that it will look something like the following :
    4.4.6.1 Note that "hpv2710us" is my hostname found in step 4.4.2
    4.4.6.2 Note that "ORCLDEV" is the name of my Oracle Instance. (Default installation uses ORCL only)
    <connection-pool name="Example Connection Pool">
    <connection-factory factory-class="oracle.jdbc.pool.OracleDataSource"
    user="store"
    password="store"
    url="jdbc:oracle:thin:@//hpv2710us:1521/ORCLDEV">
    </connection-factory>
    </connection-pool>
    4.4.7 Close the text editor
    4.4.8 Close the Windows Explorer
    4.4.9 Close this command prompt (type exit)
    5. Publishing a PL/SQL Package as a Database Web Service
    5.1 Create the config.xml file
    5.1.1 Open Notepad.exe
    5.1.2 Copy and Paste the following :
    5.1.2.1 Note that "hpv2710us" is my hostname found in step 4.4.2
    5.1.2.2 Note that "ORCLDEV" is the name of my Oracle Instance. (Default installation uses ORCL only)
    <web-service>
    <display-name>PLSQL Web Service</display-name>
    <description>PLSQL Sample</description>
    <destination-path>./dbfunc.ear</destination-path>
    <temporary-directory>/tmp</temporary-directory>
    <context>/plsqlsample</context>
    <stateless-stored-procedure-java-service>
    <jar-generation>
    <schema>store/store</schema>
    <db-url>jdbc:oracle:thin:@hpv2710us:1521:ORCLDEV</db-url>
    <prefix>db.func.place.order</prefix>
    <db-pkg-name>dbfunc</db-pkg-name>
    </jar-generation>
    <uri>/dbfunc</uri>
    <database-JNDI-name>jdbc/OracleDS</database-JNDI-name>
    </stateless-stored-procedure-java-service>
    <wsdl-gen>
    <wsdl-dir>wsdl</wsdl-dir>
    <option name="force">true</option>
    <option name="httpServerURL">http://localhost:8888</option>
    </wsdl-gen>
    <proxy-gen>
    <proxy-dir>proxy</proxy-dir>
    <option name="include-source">true</option>
    </proxy-gen>
    </web-service>
    5.1.3 Save file as config.xml in the directory C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\config
    5.1.3.1 Note it should be config.xml and not config.txt
    5.1.4 Close the text editor
    5.2 Publish dbfunc Oracle Package as a Web Service
    5.2.1 Open a new command prompt via the cmd.exe command
    5.2.2 CD C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home
    5.2.3 mkdir ear
    5.2.4 CD ear
    5.2.5 set ORACLE_HOME=C:\oracle\product\10.2.0\db_1\oc4j_extended_101330
    5.2.6 set CLASSPATH=.;%ORACLE_HOME%\webservices\lib\wsdl.jar;%ORACLE_HOME%\lib\xmlparserv2.jar;%ORACLE_HOME%\soap\lib\soap.jar
    5.2.7 java -jar %ORACLE_HOME%\webservices\lib\WebServicesAssembler.jar -config C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\config\config.xml
    Please wait ...
    STORE.DBFUNC
    5.2.8 java -jar %ORACLE_HOME%\j2ee\home\admin_client.jar deployer:oc4j:localhost:23791 oc4jadmin oracle -deploy -file C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home\ear\dbfunc.ear -deploymentName dbfunc
    08/03/21 17:46:23 Notification ==>Application Deployer for dbfunc COMPLETES. Operation time: 296 msecs
    5.2.9 java -jar %ORACLE_HOME%\j2ee\home\admin_client.jar deployer:oc4j:localhost:23791 oc4jadmin oracle -bindWebApp -appname dbfunc -webModuleName dbfunc_web
    5.2.10 java -jar %ORACLE_HOME%\j2ee\home\admin_client.jar deployer:oc4j:localhost:23791 oc4jadmin oracle -bindAllWebApps -appname dbfunc
    5.2.11 Close this command prompt (type exit)
    6. Test dbfunc Web Service
    6.1 Restart OC4J
    6.1.1 Open the command prompt you used to start OC4J in step 4.1.1/4.3.1
    6.1.2 In the keyboard, hit Ctrl+C
    6.1.2.1 Type "Y" and then hit Enter
    08/03/21 18:02:51 Shutting down OC4J...
    Terminate batch job (Y/N)? Y
    6.1.2.2 Note that the command prompt should still be open
    6.1.2.2.1 If you accidentally closed the command prompt just do the following
    6.1.2.2.1.1 Do 4.1.1 to 4.2.2 and then proceed to 6.1.3
    6.1.3 oc4j -start
    Starting OC4J from C:\oracle\product\10.2.0\db_1\oc4j_extended_101330\j2ee\home...
    08/03/21 18:07:57 Oracle Containers for J2EE 10g (10.1.3.3.0) initialized
    6.1.4 Leave this command prompt open
    6.2 Use the Web Service to "Order an Item"
    6.2.1 Connect to Oracle using the user STORE and password STORE
    6.2.2 select * from orders
    6.2.2.1 Zero row should return
    6.2.3 Open Internet Explorer
    6.2.4 Navigate to http://localhost:8888/plsqlsample/dbfunc
    6.2.5 Input the following :
    6.2.5.1 param0 value: 1
    6.2.5.2 param1 value: 1
    6.2.5.3 param2 value: 10
    6.2.6 Click the Invoke button
    6.2.7 A pop-up window will appear having the following contents :
    <?xml version="1.0" encoding="UTF-8" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <SOAP-ENV:Body>
    - <ns1:placeOrderResponse xmlns:ns1="http://db.func.place.order/dbfunc.wsdl" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <return xsi:type="xsd:string">Order placed with id of 1</return>
    </ns1:placeOrderResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    6.2.8 Go back to SQLPLUS or Toad and execute "select * from orders" again
    6.2.8.1 There should be one row
    ORDER_ID, PRODUCT_ID, CUSTOMER_ID, QUANTITY
    1, 1, 1, 10
    NOTES AND REFERENCES
    =================================================================
    This detailed step-by-step guide was produced with the following article by Jason Price http://www.oracle.com/technology/pub/articles/price_10gws.html

    Success!!!
    I had to grant this permissions:
    call dbms_java.grant_permission( 'WS_TEST', 'SYS:java.lang.RuntimePermission', 'getClassLoader', '' );
    call dbms_java.grant_permission( 'WS_TEST', 'SYS:java.lang.RuntimePermission', 'accessClassInPackage.sun.util.calendar', '' );
    call dbms_java.grant_permission( 'WS_TEST', 'SYS:java.lang.RuntimePermission', 'setFactory', '' )
    call dbms_java.grant_permission( 'WS_TEST', 'SYS:java.util.PropertyPermission', 'HTTPClient.socket.idleTimeout', 'write' );
    call dbms_java.grant_permission( 'WS_TEST', 'SYS:java.net.SocketPermission', 'localhost', 'resolve' );
    call dbms_java.grant_permission( 'WS_TEST', 'SYS:java.net.SocketPermission', '127.0.0.1:8084', 'connect,resolve' );
    As I wrote earlier, WS_TEST is my user into which I load JAX-RPC client. Note that, if you load JAX-RPC client into user another than SYS, you have NOT to use -s -grant public option (wassam wrote about this too). Another thing is that I (finally) didn't load OC4J. To consume WebService I use utl_dbws.invoke(call_Handle CALL, request SYS.XMLTYPE) function.
    voytec001

Maybe you are looking for

  • Trying to create logical page numbers

    I'm working in Acrobat XI 12.0.02 (Architecture: i386, Build: 11.0.01.36, AGM: 4.28.131, CoolType: 5.11.131, JP2K: 2.0.0.26752.) I'm on a top-of-the-line iMac under OS X 10.7.5. I'm trying to set up logical page numbers in an existing PDF file from a

  • Dvd drive wont eject - using windows 7 - G50-70 i5

    Im having problems with my dvd drive.  Have seen a few similar posts on here but I cant get anything to work.  The drive did initially work, but now I have installed windows 7, it wont eject.  The drive can read discs.  When I press the eject button,

  • Configure Monitoring of a MSMQ private queue Messages in Queue counter

    Hi I have a workgroup server that is not part of my local domain. I have contented the server to my local SCOM 2012 R2 server and it is working fine. My SCOM server has MSMQ 6.0 & 6.3  MP's installed. On the remote servers I have some MSMQ 6.0 privat

  • What is the button to change the variant in alv?

    Hi guys,           can u tell me  is there any button to change the variant in alv?. what is tanscation varient in report , hw it will used.

  • Computer shut down

    My IMAC G5 has started shutting down randomly after several minutes use. I have tried Apple support twice but they have not been able to help. Any suggestions?