BPEL does not receive "return value" of MS SQL, stored procedure

Hello

We are facing this problem citing a MS SQL stored procedure the BPEL (jdbc 1.2 driver). We have created the wsdl for the stored procedure correctly using a command line utility tool provided with Oracle SOA Suite.
But the question is THAT BPEL is not able to get the data present in the statement of "return" of the procedure. We receive null output. But it is able to extract the data from the output variable, if any. Case 1 below is for the return statement. Case 2 is for the output variable


Case 1: in the following, the output is returned using the return statement. The BPEL that calls this procedure is to obtain a NULL value as an answer to this.


ALTER PROCEDURE [dbo]. [AddNumbersRet]
-Add the parameters for the procedure
@Number1 int,
@Number2 int
AS
BEGIN
-SET NOCOUNT ON added to avoid additional results sets from
-interfering with SELECT statements.
SET NOCOUNT ON;

-Controls insert for procedure here
Return (@Number1 + @Number2);
END

Case 2: in the following, the output is returned using the SumOfNums output variable. The BPEL that calls this procedure is to obtain a correct answer.


ALTER PROCEDURE [dbo]. [AddNumbers]
@Number1 int,
@Number2 int,
@SumOfNums int output
AS
BEGIN

-SET NOCOUNT ON added to avoid additional results sets from
-interfering with SELECT statements.
SET NOCOUNT ON;

Set @SumOfNums = (@Number1 + @Number2);

END



Case 1 is a failure and case 2 is successful. We cannot change our procedures similar to case 1 to use variables of output because of dependencies on other applications.

All the world is facing this problem? This looks like a bug in BPEL. Please, share your experiences.


Thanks and greetings

Mohan

Published by: user10980910 on December 8, 2009 05:16

There is a gap in the command line utility that was addressed in the adapter configuration (AS11gR1) Wizard. The API is a procedure, not a function, so does not return the query for the parameters that the utility made anything for the RETURN statement.

The adapter configuration wizard is unable to say if there is a RETURN statement either, but it provides the user with a check box that can be used to indicate the presence of the declaration. In the wizard, if you check the checkbox, a parameter is added to the XSD to the RETURN statement. In essence, the adapter will process the procedure as a function and you will get the value of the PERFORMANCE.

Usually, I wish to indicate that you certainly should NOT change the generated XSD. But you might be able to do it, by adding the necessary element to the OutputParameters for your RETURN statement. Add the following immediately AFTER the element of 'Lines', which occurs first in the XSD and BEFORE all items for the other none.

Use a value for the "" that is meaningful to you. The wizard uses the name of the stored procedure with the name of the element. We could call this "RETURN_VALUE" or else if is more to your liking. Add the item after you generate the XSD using the command line utility, and then use the XSD when you model your BPEL processes. The WSDL should already have the content for this element handling.

Tags: Fusion Middleware

Similar Questions

  • Receiving UDP does not receive messages

    Hello. I have problem with UDP receiver.

    I can receive messages from the same port you write.

    Stream: open vi--> vi--> read vi UDP UDP writing.  Transmitter and receiver usinf th test port.

    When I try to use vi UDP listen port to just read, I get all the data.

    Program flow. I use vi to send the command on the serial port to MCU. Answer MCU return by sending data to the network port using UDP.

    I start vi to listen to a port UDP (see attached), then I sent the order to MCU. I can see the response on Wireshark, but UDP vi does not receive anything.

    I checked the IP address. Lokks all the same. IP address of the PC and decice is the same as when I write and read at the same time. Any other port.

    Any help please.

    Is the port that you want to use to open? For safety that many IT services will be blocked in ports that don't think they are necessary, or don't want to use.

  • Possible error with module GWT.xml file. The value of time compilation agent user (ie6) does not match the value of user.agent (ie8) run time

    Hi there... How can I sort this problem as this message looks back constantly on google Account... ERROR POSSIBLE WITH GWT. The value of time compilation agent MODULE XML FILE user (ie6) does not match the value of user.agent (ie8) run time

    Hello nEve Adam,.

    Thanks for the return of the response.  Below, I've added some links Google support on this issue.  I hope this helps.

    ERROR: Problem Possible with your *. GWT.XML file module. The value of compile time user.agent (opera) does not match

    http://www.Google.com/support/forum/p/blogger/thread?TID=2d6d9bd1326a07c4&hl=en

    In addition,

    Message from Web page

    http://social.technet.Microsoft.com/forums/en-us/ieitprocurrentver/thread/53194559-306a-4ffc-a614-4bac817f178d

  • APEX_ITEMS does not store the value in the SESSION after the validation error

    Hello

    I'm build dynamically using APEX_ITEMS, but it does not keep the value when the page is submitted and the validation error occurs. Here are the following steps that I am following.

    When I enter SUE (more than 8 characters), SUBMIT, validation fails and the error is displayed on the page (which is fine)
    BUT it does not keep SUE value (which I got) and filled with the old value which is ABC.

    WHY it does not keep the value that the user entered (even as the normal Page items)

    Region PL\SQL
    declare
      v_value varchar2(20);
    begin
      v_value := 'ABC'; 
      htp.p(apex_item.text(7,v_value));
    end;
    Validation (function returning the error text)
    DECLARE
     v_count number;
     v_value varchar2(50);
     v_value1 number;
    BEGIN
      v_value := apex_application.g_f07(1);
      select length(v_value) into v_value1 from dual;
    
          if v_value1 > 8 then
              return 'Field must have less than 9 character';
          ELSE
             return null;
          END IF;
    END;

    You use collections if you want the State to show if, after a validation error. Unfortunately, this is the case if you do not use the normal tabular forms.

    Denes Kubicek
    -------------------------------------------------------------------
    http://deneskubicek.blogspot.com/
    http://www.Apress.com/9781430235125
    https://Apex.Oracle.com/pls/Apex/f?p=31517:1
    http://www.Amazon.de/Oracle-Apex-XE-Praxis/DP/3826655494
    -------------------------------------------------------------------

  • Contact does not receive messages

    Hello, I need emergency aid, like one of my Skype contacts does not receive any of my messages, but I can receive all their I tried to register another account, but it still does not work, I have no idea why

    Update: managed to fix Skype messages obtained through after about 500 of them sent

  • OME does not receive details of the inventory and the State for some devices

    OME does not receive the details of the inventory and the State for some servers.

    For example when looking at one of our PowerEdge R620s is all that presents itself:

    iDRAC firmware and LCC is updated (version 2.21.21.21 is installed.)

    I reset the iDRAC, and that did not help.  I have no problem with most of the other R620s in the same range of discovery.

    I deleted the object to OME and re-discovered twice over the past week it but did not help.

    Things seem ok when I use the troubleshooting tool:

    Anyone has any info on what may be going on here or how to fix this?

    Thank you

    Hello

    Thanks for the details in the post.

    Wanted to check what version of OME use you - OME 2.1?

    If so, this behavior with ws - man discovery could potentially due to expiry of certificate on this device. You can launch the iDRAC user interface and confirm the certificate information.

    2.1 the OME, the WS - Man communication component is updated. The most recent component does not communicate with the device if that device has been exceeded in the certificate.

    Sslresetcfg running via racadm will reset the certificate. For details and solution, see same threadhttp://en.community.dell.com/techcenter/systems-management/f/4494/t/19653767 .

    Let us know if that helps.

    Thank you
    Vijay

  • EX 60 does not receive the CUCM phonebook directory

    Cisco EX60 is registered on the CUCM, but it does not receive the phone book. IP phones receive the directory.

    Cisco Services for user data is active and running.

    CUCM system version: 9.1.1.20000 - 5

    EX60 software version: TC6.3.1.f768649

    You must mention the URL of the directory on your EX60 in order to extract the CUCM directory.

    EX60 login go to Configuration > server directory > URL and mention of the URL in this format:

    https://: 8443/cucm-uds/users

    First, you can test by opening this URL in a browser to verify if it is correct.

  • Ensuring that my dealer does not receive a ton of bounceback notifications

    The last email Eloqua I sent my seller has said that received hundreds of escalation notifications by e-mail. I'm 99% sure that this has happened, because I put the display address ('From') be his email address. Normally, we put the display address ('From') to be our generic Inbox that verifies the customer service.

    I want to just make sure my dealer does not receive hundreds of notifications bounceback on my next emails. I'm sure as long as I do not have his email the display address ('From') on the ground, on the right?

    If you are in E9 as indicated by the category selected for your post? If so, you must go details by e-mail and specify an e-mail address to respond to custom. There is a section called 'Headers of email sur-reponse' and this is where you can check a box to customize the address and make the change. See attached screenshot.

    If you are on the E10, you open the settings box in the menu of the machine and this is where you change e-mail rΘpondre α in E10.

  • The value entered does not match the value in the field

    I have a simple form on the page, a field callculates a percentage based on the values entered in 2 other fields, works very well, but then all the entries on the form generates this message "the entered value does not match the value in the field".

    Also, you can remove a tab stop of the fields?

    Just happened again.

  • Drop-down list does not appear selected value

    Hello

    I have a problem. The output of a query results page. There are 2 fields must be updated: scholarshipID and amount. I want to update my request at a time. My dynamic drop-down list does not appear selected value. The value is there, but it does not recognize in the drop-down list. I could not find the error. My code is below, so please help...

    < name cfquery = "getStudentsData" datasource = "#application. DSN #">"
    Select StudentID, fname, lname, GPA, Tbl_Students.ID, ScholarshipID, rise, Tbl_StudentsScholar.ID as the SSID, AwardStatus
    of Tbl_Students, Tbl_ApplyYear, Tbl_EduBckgrnd, Tbl_StudentsScholar
    where Tbl_Students.ApplyYr = Tbl_ApplyYear.id
    and Tbl_Students.id = Tbl_EduBckgrnd.SID
    and Tbl_Students.ID = Tbl_StudentsScholar.SID
    and ApplyYear = 1
    and steps = 7
    order by studentid
    < / cfquery >

    < name cfquery = "getScholarship" datasource = "#application. DSN #">"
    Select AcctNum, scholarship, Tbl_Scholarships.id, Code
    of Tbl_Scholarships, Tbl_DistCode
    where Tbl_Scholarships.DistCode = Tbl_DistCode.id
    AcctNum order
    < / cfquery >

    < cfparam name = 'X' default '0' = >
    < cfparam name = default "CounterX" = "0" >

    <!--get scholarship-->

    < cfif getStudentsDataRet.RecordCount eq 0 >
    < class p 'paragraph' = > No Records Found < /p >
    < class p = "pageheight" > < / p >
    < class p = "pageheight" > < / p >
    < cfelse >


    < class p = "submitmessage" > records found - < cfoutput > #getStudentsDataRet.Recordcount # < / cfoutput > < / p >
    < table width = "98%" border = "1" cellpadding = "3" cellspacing = "0" style = "" border-collapse: collapse "bordercolor ="#000000"align ="center">"
    < class tr = "steptext2" bgcolor = "#999999" align = "center" >
    < td width = "10%" > Student ID < table >
    < td width = "9%" > name < table >
    < td width = "9%" > name < table >
    < td width = "5%" > GPA Cum < table >
    < td width = "5%" > account # < table >
    < td width = "5%" > < table > amount
    < td width = "20%" > account # | Dist Code | Scholarship name < table >
    < /tr >

    < do action = "updateAward.cfm" method = "post" name = "AwardForm" > "
    < cfoutput query = "getStudentsDataRet" >
    < cfif eq x 0 and x neq getStudentsDataRet.recordcount >
    < cfset x = 1 >
    < cfelseif x neq (getStudentsDataRet.recordcount + 1) >
    < cfset x = x + 1 >
    < / cfif >
    < class = "paragraph" tr >
    < td > #StudentID # < table >
    < td > #lname # < table >
    < td > #fname # < table >
    < td > #GPA # < table >


    < cfif AwardStatus eq 2 >
    < name cfquery = "getStudentsScholar" datasource = "#application. DSN #">"
    Select Code, Tbl_Scholarships.id, AcctNum, scholarships
    of Tbl_Scholarships, Tbl_DistCode
    where Tbl_Scholarships.DistCode = Tbl_DistCode.id
    and Tbl_Scholarships.ID = #getStudentsDataRet.ScholarshipID #.
    < / cfquery >
    < / cfif >
    < td >
    < select name = "" scholarshipID_ #X # "onChange =" showMessage_ #X #(this.options[this.selectedIndex].value) ">"
    < option value = "" > < / option >
    < cfloop query = "getScholarshipRet" >
    < option value = "" #id # "selected < cfif getStudentsDataRet.ScholarshipID eq id > < / cfif > > #AcctNum # < / option >"
    < / cfloop >
    < / select >
    < table >
    < td > < input name = "" amount_ #X # "type ="text"size ="5"< cfif amount gt 0 > value = ' #NumberFormat (amount, 99.99) # ' < / cfif > / > < table >"
    < td > < cfif AwardStatus eq 2 > #getStudentsScholar.AcctNum # | #getStudentsScholar.Code # | #getStudentsScholar.Scholarship # | #getStudentsDataRet.ScholarshipID # < / cfif > < table >
    "< input name =" "IndexID_ #x #" type = "hidden" value = "#SSID #" / >
    < /tr >
    < / cfoutput >
    < cfoutput > < input name = "CounterX" type = "hidden" value = "" #getStudentsDataRet.RecordCount # "/ > < / cfoutput >"
    < b >
    < td align = "center" colspan = "11" height = "50" valign = "middle" > < input name = "Submit" type = "submit" value = "Submit" / > < table >
    < /tr >
    < / make >
    < /table >
    < / cfif >

    the syntax is: getStudentsDataRet.ScholarshipID [1]

    where '1' is the line number to specify

  • Does not restore the values of form for the restoration of the tab

    Part of my Web site uses a large number of forms on a single page. On the page, you can filter items (each item has its own form) and modify them. One entry looks like this: [name] [select status] [other Select]. Other important things are that the document has an expiration date in 1981 (to apply a page always up to date) and that change the value in the select results in the triggering of an AJAX function.

    It works perfectly, except for one thing. When filtering State id 1, you get back a little of the element. Let's say that the result of the filter are input 5. Change entry #2 status, which triggered an AJAX function. It works very well, but here's the problem: when close the tab and re-opening with Restore tab, select values become disheveled.

    Due to the execution of a fresh copy of the page, the browser will get a new copy of the page. Entry #2 is now gone (I'll keep calling it that, even if she disappeared because of the filter). Now, here's the problem: Firefox is attempting to restore the value to select it. Entry of the status #3 now has the same status of entry #2, #4 a #3 status and so on.

    I managed to solve this problem on other browsers (Chrome, IE) with this little piece of jQuery:
    {$(document) .ready (function ()}
    {$("form[class^='startingformname']").each (function ()}
    This.Reset ();
    })
    });
    It works perfectly, except for Firefox, which seems to ignore the call to reset...

    As this text is quite long, I'll keep my short question: How do you keep Firefox restore the values of the form (preferably: keep them on the selected item in the HTML)? Now, the user always gets a new copy of the page, and Firefox is trying to restore the old values on this page, even though the HTML code has changed.

    I think your two choices is:

    (1) prevent Firefox from page caching, or

    (2) use a different event to trigger your reset function

    As I understand it, the function $(document) .ready jQuery () raises the event DOMContentLoaded (or equivalent, if not supported by the browser). If the tab is cached in its ' cache fast back-forward ", Firefox can not fire this event when the user returns to the tab, just like Firefox does not always raise the load event in such cases.

    Discover the event more described in the following article and see if you can use it to trigger your reset function in Firefox: https://developer.mozilla.org/docs/Using_Firefox_1.5_caching

    Who is?

  • I have controls Pro does not receive the volume update on the evolution of the patch

    Hello

    An I-controls Pro connected USB sending volume updated MainStage;  but does not not not the volume update on the evolution of the patch

    What is the tric?

    I have a screen midday traffic, MainStage send nothing

    Thanks in advance

    Best

    Cyril

    P.S. I have controls Pro receive volume update logic in mode 'Logic control '.

    Hello

    Depending on how you have all put in place, it should simply be a case of select controls in Layout Mode and choosing the correct MIDI port in the box "Send value to ' in screen control inspector

    TDC

  • SPA112 does not receive incoming calls

    This a a new SPA112 set up for RingCentral in the USA (www.ringcentral.com)

    I can make outgoing calls. I can receive incoming calls if they are for a short period after an outgoing call - I care, but after a longer period, the phone does not ring on incoming calls. If I make an outgoing call then I can receive incoming calls again for a short period. So it seems that some timeout in game. I spent hours with the support of RingCentral and they can't figure it out - they said now they give me is no longer supported. They sell the SPA122 (which is essentially the same device) so I don't see why the SAP112 will not work.

    A log file is attached. There are 3 calls, 1 call is a call that didn't go off, call 2 is a call out, call 3 is a call that rang.

    SPA112 122 using the same firmware, so has the same functionality with regard to phones. The 122 has just an extra ethernet port you can connect between your modem and your router (or computer).

    It seems that you lose your registration to their servers. I say that because there is nothing in the paper to suggest even the first call made to you. In addition, when you try to make an outgoing call, you get a "407 Proxy authentication required" back, which means their servers doesn't know who you are. Once you authenticate, the call passes by and you are registered and can receive calls, until the registration expires.

    Under the "line 1" (or 2 as the case my be), under "Proxy and registration", make sure that 'Register' is set to 'Yes'. "." If it's already like that, check the value of "record expires. This is the number of seconds between records. I have mine has 180 (3 minutes). But you can try lower values, even 30 seconds and see if it makes a difference.

  • LocationListener does not receive updates when BrowserField 2 renders in 6.0

    I have an application that calls a mobile web site using BrowserField 2.  The application needs make the current GPS position to the mobile website with each request to the site.

    I used code MultipleFixDemo to get a LocationListener job.  Everything worked very well in the Simulator and all manual updates of location were received by the LocationListener in the application.

    I changed the display to include a component BrowserField 2 and the LocationListener does not update the location of the Simulator.

    Y at - it something I need to do something different when the user interface includes the BrowserField.  Can I have some kind of thread problem?  I only tested on OS 6.0 in the Simulator.  I don't have access to a real device.

    In the code below, I have two defined screens.

    If the pushScreen (new MultipleFixScreen() is uncommented and the pushScreen (new BrowserFieldScreen() is commented out, the LocationListener receives updates.)

    If the pushScreen (newMultpleFixScreen () is commented out and the pushScreen (new BrowserFieldScreen() is uncommented, the LocationListener gets no updates.)

    Here is my code:

    public class MultipleFixDemo extends UiApplication
    {
        private double longitude;
        private double latitude;
        BlackBerryLocationProvider myProvider;
    
        public static void main(String[] args)
        {
            new MultipleFixDemo().enterEventDispatcher();
        }
    
        public MultipleFixDemo()
        {
            startLocationUpdate();
    
            pushScreen(new BrowserFieldScreen());
            //pushScreen(new MultipleFixScreen());
        }
    
       private void startLocationUpdate()
        {
            try
            {
                BlackBerryCriteria myCriteria = new BlackBerryCriteria();
                myCriteria.enableGeolocationWithGPS(BlackBerryCriteria.FASTEST_FIX_PREFERRED);
                try
                {
                    myProvider = (BlackBerryLocationProvider)LocationProvider.getInstance(myCriteria);
    
                    if ( myProvider == null )
                    {
                        Runnable showUnsupportedDialog = new Runnable()
                        {
                            public void run() {
                                Dialog.alert("Location service unsupported, exiting...");
                                System.exit( 1 );
                            }
                        };
                        invokeLater( showUnsupportedDialog );
                    }
                    else
                    {
                        myProvider.setLocationListener(new LocationListenerImpl(), 2, -1, -1);
    
                    }
                }
                catch (LocationException le)
                {
                    System.err.println("Failed to retrieve a location provider");
                    System.err.println(le);
                    System.exit(0);
                }
            }
            catch (UnsupportedOperationException ue)
            {
                System.err.println("Require mode is unavailable");
                System.err.println(ue);
                System.exit(0);
            }
            return;
        }
    
        private class LocationListenerImpl implements LocationListener
        {
            public void locationUpdated(LocationProvider provider, Location location)
            {
                System.out.println("update location called");
                if(location.isValid())
                {
                    longitude = location.getQualifiedCoordinates().getLongitude();
                    latitude = location.getQualifiedCoordinates().getLatitude();
                    float altitude = location.getQualifiedCoordinates().getAltitude();
    
                    StringBuffer sb = new StringBuffer();
                    sb.append("Longitude: ");
                    sb.append(longitude);
                    sb.append("\n");
                    sb.append("Latitude: ");
                    sb.append(latitude);
                    sb.append("\n");
                    sb.append("Altitude: ");
                    sb.append(altitude);
                    sb.append(" m");
                    System.out.println("!!!!!!!Location update: " + sb.toString());
                    //MultipleFixDemo.this.updateLocationScreen(sb.toString());
                }
            }
    
            public void providerStateChanged(LocationProvider provider, int newState)
            {
                System.out.println("providerStateChanged called");
                // Not implemented
            }
        }
    
        class BrowserFieldScreen extends MainScreen
        {
            private BrowserField _browserField;
            private boolean _documentLoaded = false;
            private BrowserFieldRequest _request;
    
            /**
             * Creates a new BrowserFieldScreen object
             * @param request The URI of the content to display in this BrowserFieldScreen
             * @param enableScriptMenu True if a context menu is to be created for this BrowserFieldScreen instance, false otherwise
             */
            public BrowserFieldScreen()
            {
                super(Screen.HORIZONTAL_SCROLL | DEFAULT_CLOSE | DEFAULT_MENU);
                BrowserFieldRequest request = new BrowserFieldRequest("http://www.google.com");
    
                BrowserFieldConfig config = new BrowserFieldConfig();
                _browserField = new BrowserField(config);
                _browserField.addListener(new DemoBrowserListener());
                add(_browserField);
                _request = request;
            }    
    
            /**
             * @see Screen#onUiEngineAttached(boolean)
             */
            protected void onUiEngineAttached(boolean attached)
            {
                if(attached)
                {
                    try
                    {
                        _browserField.requestContent(_request);
                    }
                    catch(Exception e)
                    {
                        deleteAll();
                        add(new LabelField("ERROR:\n\n"));
                        add(new LabelField(e.getMessage()));
                    }
                }
            }
    
            /**
             * Returns this screen's BrowserField object
             * @return This screen's BrowserField object
             */
            public BrowserField getBrowserField()
            {
                return _browserField;
            }
    
            /**
             * A class to listen for BrowserField events
             */
            private class DemoBrowserListener extends BrowserFieldListener
            {
                /**
                 * @see BrowserFieldListener#documentCreated(BrowserField, ScriptEngine, Document)
                 */
                public void documentLoaded(BrowserField browserField, Document document)
                {
                    _documentLoaded = true;
                }
            }
        }
        private final static class MultipleFixScreen extends MainScreen
        {
            MultipleFixScreen()
            {
                super(DEFAULT_CLOSE | DEFAULT_MENU);
    
                RichTextField instructions = new RichTextField("Waiting for location update...",Field.NON_FOCUSABLE);
                this.add(instructions);
            }
        }
    }
    

    Any suggestions would be greatly appreciated.

    Thank you

    Jackie

    This is a limitation of the BrowserField.  The BrowserField also recorded a LocationListener that is use to power the GPS updates via JavaScript to pages it restores.  This LocationListener / that your application has already registered (given that the application can only record 1).

    There are two ways you can work around this problem.  You can save your LocationListener again after posting the BrowserField.  Note that if you take this approach methods JavaScript GPS won't within your BrowserField.

    The second approach is to poll for updates location, instead of using a LocationListener.  It should continue to work after posting a BrowserField.

  • New line of view object does not receive committed to DB

    Hi guys,.

    I have a form to enter a new record on a view object entity based on a taskflow with a new transaction.

    Before the page is called I call the CreateInsert operation to create the new record on this view object.

    There is a certain attributes with default values that I determine in the create ViewRowImpl, method (using populateAttributeAsChanged to set the values).

    Now, if none of the inputValues in the form is filled manually and I want to record the data (the default values are sufficient to back up the folder) return taskflow commit action does not commit data from the db. As soon as I manually enter a value in any field the same return valid action recording correctly in the db. There is no error message and the new record is visible in the application because it is inserted in the iterator to view...

    Is there a way to mark the new line as changed / insert if only the default values are filled? Or I do something wrong?

    With the help of JDev 11.1.1.5

    Achim

    Add the following method in your class RowImpl:

    {} public void setNewRowState (byte b)
         If (b! = Row.STATUS_INITIALIZED |)
             getNewRowState()! = Row.STATUS_NEW) {}
             super.setNewRowState (b);
         }
    }

Maybe you are looking for