Form Personalization - calling stored procedure attached in the form/library
Let said we have a form: OEXOEORD.fmb (Sales order form)
Using Form Builder to open it, we see that it links to other PL/SQl Libraries such as OEXOELIN (file: OEXOELIN.pll)
and there are many stored procedures in OEXOELIN.
is that possible that in the form personalization of Sales order form (OEXOEORD.fmb)
we call a procedure in OEXOELIN library? eg: we call OE_LINE_SHIPPING.packing_insruction procedure in OEXOELIN library?
i have tried to use the Builtin FORMS_DLL or "Execute a Procedure", but is not working.
we are using R12.
the solution we found is:
1) use form personalization to call custom library
2) custom library call the form library
Similar Messages
-
Calling stored procedure from Developer/2000 Forms 6.0
Dear friends,
I would like to know how do you call a stored procedure(actually a function) that I have made in Oracle 8i , to be called through Developer 2000 Forms 6.0. I am running Oracle 8i on Windows NT.
Kindly tell me the method.
Thanks in advance.
nullYou can just call the procedure in any program unit in Forms as if it were a local program unit or built-in.
Thus if you have a function:
function CalculateSomething return number;
In Forms 6i, for example in a When-Button-Pressed trigger:
declare
n number;
begin
n := CalculateSomething;
end; -
Help: FORMS based on stored procedures
I am working on a FORM based on stored procedures. This particular FORM performs a query and generates say,
customer_name, item1_sale, item2_sale and sum of the item1_sale and item2_sale.
I'd like to know if there are ways that the query procedure returns to reference cursors that one with multiple records and one with the sums? The FORM will then be able to show rows of sales and the bottom row with show the sale totals.
Thank you in advance.
JimmyFrancois,
I just tried another way of getting the totals. I manually created a data block and add two items tot_1 and tot_2. I the item properties: I set calculation:
calculation Mode: Summary
Summary Function: Sum
Sumary Block: BLOCK_A
Summary Item: item1_sale etc.,
I got a compile error:
FRM-30377: Summary item must reside in single-record block or in same block as summarized item.
Where do I catch this error?
Thanks.
Jimmy -
Calling stored procedure from script on remote server
We are migrating our database to a virtual server environment. On the current dedicated environment, the database and scripts(calling stored procedures) are on the same server. In the new envoirnment, the scripts, input and output files will be on a different server. Does anyone have any examples of scripts on one server calling stored procedures on another server. Don't laugh, but the db server is currently running Oracle 9i (part of the new enviornment to move to 11g).
brifry wrote:
sorry my terminolgy is not correct. the stored procedure is in the database and the database is on server a. The script is on server b. In your example you show how to log onto the database. That I know. In your example your example, how would you point to server b so you can log onto the database?Do you want to mean that your procedure (location A) want to call a script from location B ?
make the script located folder as shared and ,You may try this
//server_name/folder_name/file_name.xxxHope this helps -
Array data sporadically lost when calling stored procedure
We have weird problem with stored procedures for which I have not been able to find an explanation so far.
Our app has a bunch of stored procedures which process arrays of integers or strings.
From time to time (maybe 1 in a 1000) array data gets lost when calling stored procedures. From the logs we know that the data gets sent to the stored procedure, but on the DB side the procedure throws an exception because arrays are empty.
We are using (modified) OracleConnectionCacheImp (thus PooledConnections, etc.). My latest guess is that maybe somehow ArrayDescriptors on the (pooled)connection used to call the stored procedure are somehow affected when another pooled connection from OracleConnectionCacheImp gets removed by parallel thread. Is that possible? Or are the PooledConnections internally (in pooled connection data source) completely isolated from each other ?We have weird problem with stored procedures for which I have not been able to find an explanation so far.
Our app has a bunch of stored procedures which process arrays of integers or strings.
From time to time (maybe 1 in a 1000) array data gets lost when calling stored procedures. From the logs we know that the data gets sent to the stored procedure, but on the DB side the procedure throws an exception because arrays are empty.
We are using (modified) OracleConnectionCacheImp (thus PooledConnections, etc.). My latest guess is that maybe somehow ArrayDescriptors on the (pooled)connection used to call the stored procedure are somehow affected when another pooled connection from OracleConnectionCacheImp gets removed by parallel thread. Is that possible? Or are the PooledConnections internally (in pooled connection data source) completely isolated from each other ? -
ORA-17002 and ORA-17009 while calling Stored Procedures
Hi,
We are developing a JDBC application using WebLogic 6.0 as AppServer. When we
rolled out the application in production, things work fine for about a day or
so, then calls to Stored Procedures start giving ORA-17002 (io exception) and
ORA-17009 (Closed Statement) exceptions while calling Stored Procedures. Restarting
the server 'fixes' the problem for one more day.... We are not able to reproduce
this behaviour in test or development servers.
Can anybody suggest something.....
Regards,
Usman.Usman wrote:
>
Hi,
We are developing a JDBC application using WebLogic 6.0 as AppServer. When we
rolled out the application in production, things work fine for about a day or
so, then calls to Stored Procedures start giving ORA-17002 (io exception) and
ORA-17009 (Closed Statement) exceptions while calling Stored Procedures. Restarting
the server 'fixes' the problem for one more day.... We are not able to reproduce
this behaviour in test or development servers.
Can anybody suggest something.....
Regards,
Usman.Hi. Describe how you are obtaining and using pool connections. Also, do download the
latest thin driver from Oracle, because they have recently fixed some serious
bugs in it.
Let me know,
Joe -
Calling Stored procedure from Forms 6i
Dear all,
I have a stored procedure having INand INOUT parameters. I need to call it from Forms 6i triggers. Will you please tell me the syntax for calling stored procedure and stored function from Forms 6i and report 6i.
Saibaldas
[email protected]Just the same as for a local procedure, the only restrictions concern package public variables which are not visible from client side PL/SQL, and you probly want to keep the interfaces simple as client side PL/SQL (e.g. the Forms and Reports engines) don't support the same range of datatypes that the database does.
-
Call Stored Procedure from Forms 6i -- Urgent Plz...
Dear All,
I am first writing a stored procedure as:-
CREATE OR REPLACE FUNCTION
good_hire
(birthdate_in IN DATE,
reqsal_in IN NUMBER)
RETURN BOOLEAN
IS
too_young BOOLEAN :=
ADD_MONTHS
(SYSDATE, -216) >
birthdate_in;
too_expensive BOOLEAN :=
reqsal_in > fin.dept_bal;
BEGIN
RETURN NOT (too_young
OR too_expensive);
END;
Now in my forms also i have the same function,which i defined in in my program unit i.e., with the same name good_hire,but with different parameters.
If I want to call this stored procedure(good_hire)in my form
I am writing this code in the pre-Insert trigger.
IF good_hire
(:newemp.birthdate,
:newemp.proposed_sal)
THEN
SELECT empseq.NEXTVAL
INTO :newemp.empno
FROM dual;
ELSE
RAISE FORM_TRIGGER_FAILURE;
END IF;
Notice that i am sending bind variables from my form to the
stored procedure. Now my question :
1) Can i pass bind variables to the stored procedures from
forms or is there any other way i can access the
stored roceures from forms(Expecting a detailed answer) and
from which triggers can I access the stored procedures(like pre-
Insert here)?
2) If at all I have the same parameters in my program unit
function and with the same name good_hire, I know that the code
in the pre-Insert trigger will call only the function in my
program unit and not the stored procedure, but if I like to
call my stored procedure instead of the local function good_hire
then what should I do?
2)As I said before if i have different parameters, for the
stored procedure good_hire and local function good_hire and If
I call good_hire from my pre-insert trigger .. Is it that the
Forms will decide and call the Local function or stored
procedure depending on the parameter list?
I hope all my points are very clear.
I am expecting the best and detailed answer for my
Queries, I also hope these Quests will clear the doubts of many
members in our esteemed group.
Thnx in Advance...
Regards
siree....Dear Siree,
Oh!! how many Questions? Each how much big??
Ok First of all the answer to your first question.
You can use the Stored procedures in the same way as the Forms procedures. You can pass bind variables to the stored procedures as well. You can also use the stored procedures in any triggers, I think there are no restrictions for that. The only thing is you should be connected to database while compiling the trigger where you are calling the stored procedure.
Answer to your second question.
You cannot direct Forms (I don't know about version 10g), untill 9i, you cannot tell forms to take the stored procedure and leave the local procedure. It will always take the local procedure, once a procedure is called. If not found locally then only it will go for the Stored procedures.
For your third question.
As I told you b4 forms searches for the procedure being called locally first, if locally present, does not go to the stored procedure. If declared by different paramaters in the stored procedure and it is called, then it will throw error (as it first searches for the name locally and if found will take up the one present locally and since that procedure is with different parameter, will throw up error). It is after all a stupid machine and can't think like us.
Regards,
Senthil .A. Perumal -
Calling stored procedures with parameters with the Database Connectivi​ty Toolkit
Hi all,
I am new to the forum and am having difficulty finding a solution to a particular problem I am having regarding using the LabVIEW Database Connectivity Toolkit on a project I am currently working on at my job. I have a database in which I have tables and stored procedures with parameters. Some of these stored procedures have input, output, and return parameters.
I have been trying to follow this example but to no avail: http://digital.ni.com/public.nsf/allkb/07FD130746083E0686257300006326C4?OpenDocument
One such stored procedure I am working on implementing is named "dbo.getAllowablePNs", which executes "SELECT * from DeviceType" (DeviceType is the table). In this case, it does not require an input parameter, it has an output parameter that generates the table [cluster], and has a return parameter which returns an integer value (execution status code) to show if an error occurred. The DeviceType table has 3 columns; ID (PK, int, not null), PN (nvarchar(15), null), and NumMACAddresses (int, null). I have gone over many examples and have talking to NI support to try to implement this and similar stored procedures in LabVIEW but have not been successful. I am able to connect to the database with the Open Connection VI without error, but am running into some confusion following this step. I am then trying to use the Create Parameterized Query VI to call the stored procedure and set the parameters. I assume I would then use the Set Parameter Value VI for each parameter that is wired into the parameters input on the previous Parameterized Query VI? I am also having some confusion during and following these steps as well. I would greatly appreciate any advice or suggestions anyone might have in regards to this situation as I am not a SQL expert. Also, I would be happy to provide any more information that would be helpful.
Regards,
Jon
Solved!
Go to Solution.Also, I don't know if this would be helpful but here is the actual stored procedure in SQL:
CREATEPROCEDURE [dbo].[getLastSequenceNumber]
@p1 nvarchar(10)='WO-00000'
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SETNOCOUNTON;
-- Insert statements for procedure here
selectmax(SequenceNumber)from Devices where WorkOrderNumber= @p1
END
GO -
How to verify the user information pass by the form with a stored procedure?
Hi,
I would like to know how to verify user information pass by the form with a stored procedure.
I want make a portal which accepts to new user registration, but I want verify the new user's informations (like the name don't contain a number etc).
Thanks for your help
regards
jlaHi Samson,
You can use the UI API to do this. You can catch the form_ADD event and then validate the input from the users. You can even block the event from completing (and stop the document from being added) if your code finds some incorrect data using the bubbleEvent functionality.
I don't have one specific example to show you, but if you look at some of the SDK samples (for example C:\Program Files\SAP\SAP Business One SDK\Samples\COM UI\VB.NET\02.CatchingEvents) to see how to work with events, you can then create your own validation to ensure the users data is valid.
Regards,
Niall -
Find the name of the calling stored procedure
Is there a built-in available in oracle PL/SQL to find the name of the calling stored procedure
For e.g
If procedure A calls procedure B,
I want to use some built-in in procedure B, to identify the name of the calling procedure (in this case "A")Try out How Can I find out who called me or what my name is
-
Need sample source code for calling stored procedure in Oracle
Hi.
I try to call stored procedure in oracle using JCA JDBC.
Anybody have sample source code for that ?
Regards, Arnold.Thank you very much for a very quick reply. It worked, but I have an extended problem for which I would like to have a solution. Thank you very much in advance for your help. The problem is described below.
I have the Procedure defined as below in the SFCS1 package body
Procedure Company_Selection(O_Cursor IN OUT T_Cursor)
BEGIN
Open O_Cursor FOR
SELECT CompanyId, CompanyName
FROM Company
WHERE CompanyProvince IN ('AL','AK');
END Company_Selection;
In the Oracle Forms, I have a datablock based on the above stored procedure. When I execute the form and from the menu if I click on Execute Query the data block gets filled up with data (The datablock is configured to display 10 items as a tabular form).
At this point in time, I want to automate the process of displaying the data, hence I created a button and from there I want to call this stored procedure. So, in the button trigger I have the following statements
DECLARE
A SFCS1.T_Cursor;
BEGIN
SFCS1.Company_Selection(A);
go_Block ('Block36');
The cursor goes to the corresponding block, but does not display any data. Can you tell me how to get the data displayed. In the future versions, I'm planning to put variables in the WHERE clause. -
CALLING STORED PROCEDURE IN DATABASE FROM FORMS4.5
Is there any body know how to call stored procedure from Forms 4.5 ?
I am writing a when-button-pressed trigger.
Put the stored procedure name on there. But
it said "stored procedure name is not declared on this scope".
Thanks a lot
nullTry logging in to SQL*Plus and running the procedure, e.g....
SQL> begin
database_procedure_name(update_web);
end;
If it runs OK there, then it should run from within your form (provided that you are logged in as the same user as the test with SQL*Plus. -
PLSQL portlet - problem calling stored procedure -
Good day folks. My portal version 10.1.2. I have a dynamic page with multiple rows. For simplicity, example here has two columns => id and value. The initial dilemma - The stored procedure specified in the action attribute of the <form> tag has to have parameters that match in name and count to the fields on the html form. But, the number of rows is variable on the form. I currently use pl/sql to generate the page. I have two forms in the html - form A has two static fields id and value, with an action attribute of the stored procedure I want to run. The second html form is form B. It has id_1, value_1, id_2, value_2, id_3, value_3 and so on with a variable number of rows. SO, when the user clicks the "Submit" button at the bnottom of the page, I call a javascript passing in the number of rows. I then loop through the Form B, and for each row of data, I do a submit of Form A. My goal is to run the stored procedure in the database for each row of data in Form B. I use Form A to accomodate the requirement that the stored procedure has to match in name and number the parameters inthe form.
This is to avoid an update button on each row of data, also.
The problem - in my javascript, I set the values of Form A to the values from Form B correctly. However, only the last rowis successful in running the procedure. For example, if I have 3 rows in Form B, I want to submit form A 3 times, but, it only seems to submit once for row #3. The weird thing is if I put an alert message after the document.formA.submit(); command, the stored procedure is successfully called for each row in form B, but when I remove the alert, only the last row successfully calls the procedure!
Thanks in advance if anybody has any ideas -
KentLet's continue the example of 3 rows.
It sounds like that you submit the form 3 times in quick succession, and so before the Action for Form A has had time to run and respond for the first row, the second row has been submitted, and therefore the web page will stop trying to display the results from the submit of Row 1 (by this I mean it'll stop the http request, if you do this quick enough then the back-end function won't run). Then the same thing happens to Row 2's submit when Row 3 starts.
What it sounds like you need to do is to use only 2 parameters, but repeat them on the HTML page, when the submit is run it's passed to oracle as a type 'owa_util.vc_arr'. There is a more comprehensive solution to this problem in another thread:
passing variable number of arguments in a stored procedure
Please note though that you have to be careful of the situations where your form only has one row to submit to the oracle function, in this case the data type of the parameter will be a VARCHAR2 rather than a owa_util.vc_arr. The solution to this problem is to always have a an extra dummy parameter which is empty and you skip over it during your processing. (Thought I'd better include this information in case you ran into this problem).
Hope this helps.
Cheers,
Ron. -
Pass Checkbox Parameters from HTML Form to a stored procedure
I'm still looking for a solution to my forms problem. FYI, I'm not using Applications Express to build my application--I'm using straight PL/SQL. I need to know how to pass checkbox parameters from my Web form. I'm allowing folks to select one or more checkboxes on a form that will call a delete function to delete the selected records. What I read in Oracle's "Database Application Developer's Guide - Fundamentals" isn't helpful to me. If someone would point me to some examples, maybe I could see what I'm doing wrong. Here's what was written in "Database Application Developer's Guide - Fundamentals":
All the checkboxes with the same NAME attribute make up a checkbox group. If none of the checkboxes in a group is checked, the stored procedure receives a null value for the corresponding parameter.
If one checkbox in a group is checked, the stored procedure receives a single VARCHAR2 parameter.
If more than one checkbox in a group is checked, the stored procedure receives a parameter with the PL/SQL type TABLE OF VARCHAR2. You must declare a type like this, or use a predefined one like OWA_UTIL.IDENT_ARR. To retrieve the values, use a loop:
CREATE OR REPLACE PROCEDURE handle_checkboxes ( checkboxes owa_util.ident_arr )
AS
BEGIN
FOR i IN 1..checkboxes.count
LOOP
htp.print('<p>Checkbox value: ' || checkboxes(i));
END LOOP;
END;
SHOW ERRORS;I'm not sure I understand what your issue is.
If your web form has the following checkboxes defined all with the same name:
<input type="checkbox" name="attrib" value="1">one</input>
<input type="checkbox" name="attrib" value="2">two</input>
<input type="checkbox" name="attrib" value="3">three</input>Then you would create and register a procedure to handle the form submission that has a parameter with the name attrib of type owa_util.ident_arr e.g.:
create or replace procedure handle_form(attrib owa_util.ident_arr) as
iter number;
begin
for iter in attrib.first .. attrib.last loop
-- do something with attrib(iter)
end loop;
end;
/Now the one problem with this handler (or any form handler for that matter) is that if the user selects none of the check boxes, or no value for any of the expected parameters, the handler would be called with some parameters missing or with out any parameters passed to it, and the call will error out.
To get around that you need to provide default values for all the parameters passed to your handler including the ident_arr parameters, however with ident_arr parameters that's difficult to do with standalone procedures. If you place your procedure in a package you can define package level variables of the appropriate types that can be used as default values:
create or replace package my_web as
empty_arr owa_util.ident_arr;
procedure handle_form(attrib owa_util.ident_arr := empty_arr);
end my_web;
create or replace package body my_web as
procedure handle_form(attrib owa_util.ident_arr := empty_arr) as
iter number;
begin
for iter in attrib.first .. attrib.last loop
-- do something with attrib(iter)
end loop;
end;
end my_web;
/now when you hit the situation where the user doesn't select any check boxes, the call to handle_form won't err out due to missing parameters, and the empty_arr won't have any elements to iterate over so the loop in the procedure body will be fine and you will be able to retrieve each selected check box value from the attrib array when you iterate over it.
Maybe you are looking for
-
Hello, I've been quite unfortunate with my laptop (Macbook Pro Early 2011) ever since downloading the Yosemite OS. It has been plagued with extremely slow speeds when running basically anything, the fan runs constantly, and the battery drains at a ra
-
Click on obiee dashboard tabs is not working
Hi, One remote user using cisco vpn to access OBIEE dashboards. everything is all right but when he click on dashboard tabs is not working. I tried with firefox 3.6.0 and IE 8 both have same problem. we dont have this problem within the network. I do
-
Thinkstation E20: Dual-boot from Windows 7 into XP
I've been wrestling with this for a few days. Setup: currently running an AHCI-enabled hard drive in an E20 with Windows 7 Pro x64. I need to dual-boot the computer with 7 and a 32-bit XP. The problem is that there are no AHCI drivers for Windows XP
-
Regular Expressions on an online database
Hi everyone, I'm kinda new so if what I'm about to ask seems crazy bear with me. What kind of issues would be involved with using a regular expression to search an online database? The Site says that Java 1.4 now supports a great deal of regex functi
-
Accounting entry view needs to be restrcited for STO transactions
Hi There is Stock Transfer scenario at my place. Stock transfer (from one plant to another) is done after adding some profit margin to the cost of material. Note: My different plant represents different profit centers Ex: STO is done from plant 1000