How to return error from subscription function of an event
I am creating a subscription function for an oracle shipped event, oracle.apps.eng.cm.changeObject.submit. The event fires fine, i can do my custom validations in this function. In case the validations fail, I need to return an error message.
As per the guides and metalink documents, the way to do this is by returning 'ERROR' . But even though I return an ERROR, it does not error out. Whether I return SUCCESS or ERROR , the behaviour is the same.
While creating the subscription function, for On Error , I selected, "Stop And Rollback ".
Is it possible to return errors from the subscription functions.
thanks
Satya
You shouldn't be passing ResultSet objects across the EJB layer.
Instead you should be passing data back and forth.
All of the data access code should be in one place in one class.
That class should open the connection, run the query, process/store the results of the query and then close the connection.
In this case you probably want to return a list of something to your jsp.
So your EJB call should be more like
public List<resultBean> check(String id){
ResultSet rs = Statement.("select * from table1 where id=123");
List resultList = new ArrayList();
while (rs.next()){
Bean myBean = new Bean();
myBean.setProperty1(rs.getString("field1"));
myBean.setProperty2(rs.getString("field2"));
resultList.add(myBean);
return resultList;
}
Similar Messages
-
How to return ResultSet from one function to another?
Hi friends,
Greetings.
How do we pass the query Results from one function to another function?
Actually i have a database in the server and i am the client.
Client sends the id to the server as an argument. From HTML file this goes to the JSP file(which i am using as a link between HTML and EJB) and then this goes to the RemoteInterface and then to the Bean itself. The functions are written in the bean. Bean connects to the database using jdbc:odbc driver and then a query is written and executed as follows:
In the Stateless Session Bean, there is one function with the following query.
public ResultSet check(String id)
//other code
ResultSet rs = Statement.("select * from table1 where id=123");
if(!rs.next)
// print no such id exists. other ids are
rs=Statement.("select * from table1");
return rs;
I have written it approximately only because the problem is not with the query :(
Now, in rs there's a resultset. Now how do i display it in a tabular format in HTML? This should obviously be done using JSP. How can we do it?
In JSP file if i write
ResultSet rs1=Remote.check(12);
i get NullPointerException
Thank you in anticipation to your reply!
RegardsCrossposted over all places:
[http://forums.sun.com/thread.jspa?threadID=5336533]
[http://forums.sun.com/thread.jspa?threadID=5336534]
[http://forums.sun.com/thread.jspa?threadID=5336532]
[http://forums.sun.com/thread.jspa?threadID=5336519]
[http://forums.sun.com/thread.jspa?threadID=5336510]
Stop crossposting. It's very rude. -
How do I unsubscribe from subscription VIP in the game StarMaker? every week, I removed 66 rubles, while I'm there not even sit, and how do I unsubscribe don't know, please help
Contact the maker of the app. Apple has nothing to do with subscriptions to third party apps.
-
How to capture errors when a Function module is called as BACKGROUND TASK
How to capture errors when a Function module is called as BACKGROUND TASK?.Please advise.
FUNCTION ZRPM_DELETE_PROJECT_DATA_API.
""Local interface:
*" IMPORTING
*" VALUE(IV_EXTERNAL_ID) TYPE RPM_TV_EXTID OPTIONAL
*" VALUE(IV_PROJECT_GUID) TYPE RPM_TV_GUID OPTIONAL
*" VALUE(FLAG) TYPE BOOLEAN OPTIONAL
*" EXPORTING
*" VALUE(EV_RC) TYPE I
*" VALUE(EV_MSG) TYPE STRING
*" VALUE(ET_MSG) TYPE RPM_TT_MESSAGES
IF flag = cl_rpm_co=>sc_true.
Call function 'RPM_DELETE_PROJECT_DATA' IN BACKGROUND TASK
EXPORTING
IV_EXTERNAL_ID = IV_EXTERNAL_ID
IV_PROJECT_GUID = IV_PROJECT_GUID
IMPORTING
EV_RC = EV_RC
EV_MSG = EV_RC
ET_MSG = ET_MSG.
COMMIT WORK.
ELSE.
CALL FUNCTION 'RPM_DELETE_PROJECT_DATA'
EXPORTING
IV_EXTERNAL_ID = IV_EXTERNAL_ID
IV_PROJECT_GUID = IV_PROJECT_GUID
IMPORTING
EV_RC = EV_RC
EV_MSG = EV_MSG
ET_MSG = ET_MSG.
ENDIF.
ENDFUNCTION.
In above code how to capture 'EV_RC' when FM is called as background task.Prakash,
CALL FUNCTION IN BACKGROUND TASK allows no IMPORTING parameters, so that your code will produce a syntax error.
The calling program can only handle errors of remote function calls (RFC) if these are either
- synchronous RFC (that is CALL FUNCTION ... DESTINATION ...) or
- asynchronous RFC (that is CALL FUNCTION STARTING NEW TASK ... DESTINATION ...).
Both synchronous and asynchronous RFC allow the capturing of errors by means of exceptions. But that is a different topic. -
HT4906 how to import photos from photo stream into an event?
How to import photos from photo stream into an event?
How to import photos from photo stream into an event?
In iPhoto 9.4.3 the following works:
If you have not auto imported the photos from the Photo Stream, as Larry suugests, select the photos that you want to import in the Photo Stream, and drag them to the "Events" view in the Source List. They will be imported as new events, auto split with respect to your preferences.
Regards
Léonie -
How to return rows from tmp table created inside function??
Hi,
I'm trying to return rows from a cursor or table (created within
the function). How do I specify the return type?Hi,
Here is the code that examples to create a function that can
return data from table.This is achieved using REFCURSOR concept.
Hope this helps you.I'm giving all stuff in single PL/SQL
block.You can break it and create a package and declare
refcursor type and function in that as well.
DECLARE
-- Declare generic cursor type
TYPE gencur_type IS REF CURSOR ;
-- Declare generic cursor varaible
gencur gencur_type;
-- Declare record type
TYPE rec_type IS RECORD(descr emp.ename%type) ;
-- Declare record type variable
rec rec_type;
--This how you declare a local function that returns gencrtype
data set
--This function is called in main block
FUNCTION call_refcur return gencur_type
AS
rr gencur_type;
BEGIN
OPEN rr FOR SELECT descr FROM emp;
RETURN rr;
END;-- end of local function
-- Main block begins here
BEGIN
-- Call the local function so that gencur will have
-- the data set returned by select statement
gencur:= call_refcur;
-- Open a loop to test the stuff
LOOP
FETCH gencur INTO rec;
EXIT WHEN gencur%NOTFOUND;
null;
dbms_output.put_line(rec.ename);
END LOOP;
END;
Regards,
Sridhar -
How do I get multiple return results from a function
IDBASKET IDSTAGE DTSTAGE
3 1 24-JAN-03
3 5 25-JAN-03
4 1 13-FEB-03
4 5 13-FEB-03
5 3 21-FEB-03
I input is a single IDBASKET number from this table and this function works fine only if it has one IDSTAGE per idbasket. (idbasket#5)
But how do I get it to return a result for an IDBASKET when it has multiple IDSTAGE? (idbasket#3 & 4)
THANKS MUCH,
MAT
SQL> CREATE OR REPLACE FUNCTION status_desc_sf
2 (p_code NUMBER)
3 RETURN VARCHAR2
4 IS
5 lv_output_txt VARCHAR2(30);
6 BEGIN
7 IF p_code = 1 THEN lv_output_txt := 'Order submitted';
8 ELSIF p_code = 2 THEN lv_output_txt := 'Accepted, sent to shipping';
9 ELSIF p_code = 3 THEN lv_output_txt := 'Backordered';
10 ELSIF p_code = 4 THEN lv_output_txt := 'Cancelled';
11 ELSIF p_code = 5 THEN lv_output_txt := 'Shipped';
12 ELSE lv_output_txt := 'No information';
13 END IF;
14 RETURN lv_output_txt;
15 END;
16 /Duplicate thread:
How do I get multiple return results from a function -
How to get BOOLEAN from STORED FUNCTION
We are calling legacy PLSQL stored procedures and functions via named queries. This has worked fine so far, but there are some functions which return the type 'BOOLEAN'. e.g.
FUNCTION some_function( some_argument IN NUMBER) RETURN BOOLEAN;
Where the return type is BOOLEAN calling the named query fails with
Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Error Code: 6550
A couple of threads have hinted that what we are trying to do is not possible:
How to get BOOLEAN from STORED PROCEDURES
Re: Creating Named Query: from OracleCallableStatement
This would possibly be due to 'restriction in the OCI layer'. Can anyone help? Is there really now way to call a valid PLSQL stored function via a named query when the return type is BOOLEAN?
thanksI can't comment on possible issues you might have with the driver, but if it can be done in JDBC, it should be possible in TopLink.
TopLink has the StoredFunctionCall which extends the StoredProcedureCall but adds an unnamed ouput parameter in the first spot of its parameter list. You will need to get the databasefield and set its type to BOOLEAN ie:
DatabaseField returnField = (DatabaseField)yourStoredFunctionCall.getParameters().firstElement();
returnField.setName(name);
returnField.setSqlType(Type.BOOLEAN);Be sure not to use the setType() method, as I believe TopLink will try to use the Type.BIT when a boolean class is used as the classtype.
Best Regards,
Chris -
Returning Errors from a webservice using XMLBeans
I have a webservice that accepts XML as input and output parameters, and I'm using XMLBeans to handle this. I'm trying to work out how I can return error information from the webservice, so I created an Exception.xsd schema and 'include' it in the output XML Schema, so an exception xml element is valid in the output schema. The problem is, the XMLBean class generated from the output XML schema has no methods that allow me to create an Exception element. Is there some other way of handling the return of exceptions from webservices using XML?
The answer is just throw a SoapFaultException and put the exception.xsd XMLBean in the FaultDetail section of the SoapFaultException.
-
Hi ,
I use Oracle 10g and forms10g.
I have written a db packaged function such as:
function fnc_ipologismos_xiliometron(code_poleis_apo_var in varchar2,code_poleis_pros_var in varchar2)
return number
is
apostasi_var ref_apostaseis_poleon.apostasi%type;
onomasia_pol_apo_var ref_poleis.onomasia%type;
onomasia_pol_pros_var ref_poleis.onomasia%type;
begin
begin
select onomasia into onomasia_pol_apo_var
from ref_poleis
where code_poleis=code_poleis_apo_var;
end;
begin
select onomasia into onomasia_pol_pros_var
from ref_poleis
where code_poleis=code_poleis_pros_var;
end;
begin
select apostasi into apostasi_var
from ref_apostaseis_poleon
where code_poleis_apo=code_poleis_apo_var and code_poleis_pros=code_poleis_pros_var;
exception
when no_data_found
then
apostasi_var:=0;
return apostasi_var;
raise_application_error(-20015,'a message');
--return apostasi_var;
end; return apostasi_var;
end;The problem is that when the exception written above (in bold) returns 0 and exits the function.... whereas i want this value to be returned as well as the message in the raise_application_error....
I call this function in WHEN-VALIDATE-ITEM of a block item... such as:
if pkg_mod3_general.fnc_ipologismos_xiliometron
(:mod3_entoli_metakinisis.code_poleis_apo_type_id,:mod3_entoli_metakinisis.code_poleis_type_id)=0
and :mod3_entoli_metakinisis.seq_code_meso_metakin_type_id=2
then
raise form_trigger_failure;
end if; When the above condition is true then no message is displayed and the cursor sticks to the item(as the raise_application_error in the db packaged function is after the exit of the function) and when the condition is false then no message is displayed again ... as expected.....
How is it get the desired result.....- get the message from the raise_application_error and the function returns 0.....?????
Many thanks,
Simonyou cannot RETURN and RAISE a function.
RETURN ends the function immediately
RAISE ends the program unit and jumps in the EXCEPTION-Handler, if it exists. Else the function ends -
Getting Return values from RFC function call with visual basic
Hi,
I am creating a sample app to connect to a SAP system which call its RFC functions created with ABAP. It was known that the function will return more than 1 return values.
SAP Function name ==> "ZFMTP_RFC_GET_RESULT"
Export parameters (to SAP):
- Student Name [char 10] ==> "STUNAME"
- Student ID [char 20] ==> "STUID"
Return values (From SAP):
- Results [char 10] ==> "RESULT"
- Remarks [char 200] ==> "REMARKS"
i have managed to get sample codes for connecting and call a RFC function with vb but they only get a return value. How do i retrieve multiple return values like the above function "RESULT" and "REMARKS"?
Here's my vb code to accessing the function
Dim R3 As Object
Dim FBFunc As Object
Dim returnFunc As Boolean
Dim connected As Boolean
R3 = CreateObject("SAP.Functions")
R3.Connection.Client = "000"
R3.Connection.User = "BCUSER"
R3.Connection.Password = "minisap"
R3.Connection.Language = "DE"
R3.Connection.System = "dtsystem"
R3.Connection.Applicationserver = "xxx.xxx.xxx.xxx"
connected = R3.Connection.Logon(0, True)
If connected <> True Then
MsgBox("Unable to connect to SAP")
End If
FBFunc = R3.add("ZFMTP_RFC_GET_RESULT")
FBFunc.exports("STUNAME") = "Jonny"
FBFunc.exports("STUID") = "12345"
returnFunc = FBFunc.Call() <<== How do i get the return value? or RESULT and REMARKS of the RFC Function?
thanks alot.
Edited by: Eugene Tan on Mar 4, 2008 7:17 AMHi Gregor,
Thanks for the link....i am having some doubts with the codes, hope you can clarify them for me if you know the codes..
Below is the code snippet.
Set impReturn = CHPASS_FN.Imports("RETURN") <<=== is RETURN the standard keyword to get a return object?
expPassword.Value = currpass
expNewPass.Value = newpass
expFillRet.Value = "1"
''' Call change password function
If CHPASS_FN.Call = True Then
outFile.Write (", Called Function")
Message = impReturn("MESSAGE") <<==== So if i have 3 return values..i just replace with the return value variable names?
outFile.WriteLine " : " & Message
Else
outFile.Write (", Call to function failed")
End If
thanks alot...all your help is very appreciated. -
How to define error message for function based index violation?
Hi,
I am generating Forms 6i from Designer 6i. I have a function based index to enforce case insensitive name uniqueness. With check constraints I can specify constraint violation error messages that will be displayed in Forms at runtime if needed. How can I do this with function based index constraints?
Regards,
TamasOK, problem sorted.
You need to create a check constraint with the same name as the new index, but don't enable it. -
How to remove error from propagation and verify replication is ok?
Have a one-way schema level streams setup and the target DB is 3-node RAC (named PDAMLPR1). I run a large insert at source DB (35million rows). After committing on source, I made a failure test on the target DB by shutting down the entire database. The streams seems stopped as the heartbeat table sequence (it inserts a row each min) on target is still reflecting last night. We get the error in the dba_propagation:
ORA-02068: following severe error from PDAMLPR1
ORA-01033: ORACLE initialization or shutdown in progress
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 1087
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 7639
ORA-06512: at "SYS.DBMS_AQADM", line 631
ORA-06512: at line 1
08-FEB-10
while capture, propagation, and apply are all in enabled status. I restarted capture and propagation at source DB. But still see the error message above. My questions are:
1. How to delete the error from dba_propagation?
2. How to verify the streams is still running fine?
In normal test, during such large insert, the heartbeat table added a row in an hour. Very slow.
thanks for advice.Well, if I can give you my point of view: I think that 35 millions LCR is totally unreasonnable. Did you really post a huge insert of 35 millions then committed that single utterly huge transaction? Don't be surprised it's going to work very very hard for a while!
With a default setup, Oracle recommends to commit every 1000 LCR (row change).
There are ways to tune Streams for large transaction but I have not done so personnaly. Look on Metalink, you will find information about that (mostly documents id 335516.1, 365648.1 and 730036.1).
One more thing: you mentionned about a failure test. Your target database is RAC. Did you read about queue ownership? queue_to_queue propagation? You might have an issue related to that.
How did you setup your environment? Did you give enough streams_pool_size? You can watch V$STREAMS_POOL_ADVICE to check what Oracle think is good for your workload.
If you want to skip the transaction, you can remove the table rule or use the IGNORETRANSACTION apply parameter.
Hope it helps
Regards, -
How to execute FM from Javascript function?
Hi All,
I have a requirement to execute ABAP FM from Javascript function in BSP Application.
How do I implement this?
Is there any document/link in SDN?
Thanks
Thruna ShanmugaHi,
When button is clicked capture the event in OnInPutProcessing and call the function module.
In layout mention the java code
Here is a sample code:
Layout Code:
< script >
document.on keydown=function( )
if (event.key Code==13)
htmlb SL(this,2,'get') Mention the button ID
< /script >
<htmlb:button id = "get"
text = "Execute"
width = "35%"
on Click = "On InputProcessing()" />
OnInPutProcessing Code:
data:
w_event type ref to cl_htmlb_event,
call method cl_htmlb_manager=>get_event
exporting
request = runtime->server->request
receiving
event = w_event.
case w_event->id.(To capture the event)
when 'get'.
<<Call the function module>>
endcase.
Hope this solves the issue, Let me know if any queries.
Regards,
Rajani -
Oracle forms 9i - How to return back from a block?
Some one please help me
In a trigger, I have a code says go_block. How to return from the block and back to the trigger to continue executing the codes below the go_block statement? Please see example below, I want to come back from block CHECK_STUFF and continue execute the statements
:Name.option := '1';
if :name.option = '1' then
Example:
Block: Name
Item: yes_no - Key-next-item trigger
declare
begin
go_block('check_stuff');
go_item('answer');
:Name.option := '1';
if :name.option = '1' then
Thanks - PattyThe code behind the GO_BLOCK is executed immediately after the GO_BLOCK, it doesn't stop at that point. So you have to split your code, like
declare
begin
go_block('check_stuff');Then, create a procedure like
PROCEDURE PR_RETURN_FROM_BLOCK IS
BEGIN
go_item('answer');
:Name.option := '1';
if :name.option = '1' then
END;Then, when returning from the block (in whatever trigger you use), just call that procedure.
Maybe you are looking for
-
Sharepoint Foundation 2013 User field issue
Guys, I have an issue with Sharepoint Foundation 2013 site that we have created some custom workflows for. We have a couple required fields that we type in a users name and it automatically pulls up a user based on Active directory. once we choose th
-
How do I import a CSV. contacts file to outlook using Mozilla Firefox?
I need to import a CSV. file containing my contacts to outlook mail using the mozilla firefox browser but there is no option for importing and exporting.
-
I created a wsdl based on a dbadapter in jdeveloper, imported into eclipse and created the biz and the proxy and uploaded to oracle service bus, it works fine, but happens now that i need to have a xsd and wsdl with business names and not table names
-
Ild: (Performing full relink) internal free space in undefined symbol error
I am using Sun Sparc C++ 5.4 compiler to compile some code. I had some issues with Makefile which I have resolved successfully for test program, which has only one string and print statetments. When I compile my program error_log.C program using Make
-
MS Word Data into Internal Table
Hello Gurus, We are creating a new MS word document via SAP and typing some datas and values in it, We could capture those datas into an internal table.But the challenge what we are facing is that, the data which we captured into the internal table i