chalie001
asked on
wrong number of argument error when calling report from forms 11gR2
hi am trying to call report in form 11gR2
this is the procedure
this is the procedure
PROCEDURE run_reports (rep_id IN Varchar2,
command_id Varchar2,
unit_id IN Varchar2,
dept_id IN Varchar2,
mec_id IN Varchar2,
syc_id IN Varchar2,
baseline_id IN Varchar2,
fail_id IN Varchar2,
upper_dev IN Varchar2,
lower_dev IN Varchar2,
min_avail IN Varchar2,
start_date IN Varchar2,
end_date IN Varchar2,
combined_mec IN Varchar2,
nsn IN Varchar2) IS
pl_id ParamList;
/* */
BEGIN
pl_id := Get_Parameter_List('tmpdata');
IF NOT Id_Null(pl_id) THEN
Destroy_parameter_list(pl_id);
END IF;
pl_id := Create_parameter_list('tmpdata');
Add_parameter(pl_id, 'COMMAND' ,TEXT_PARAMETER, command_id);
Add_parameter(pl_id, 'UNIT' ,TEXT_PARAMETER, unit_id);
Add_parameter(pl_id, 'DEPARTMENT' ,TEXT_PARAMETER, dept_id);
Add_parameter(pl_id, 'MAIN_EQUIPMENT_CODE' ,TEXT_PARAMETER, mec_id);
Add_parameter(pl_id, 'SYSTEM_CODE' ,TEXT_PARAMETER, syc_id);
Add_parameter(pl_id, 'BASELINE' ,TEXT_PARAMETER, baseline_id);
Add_parameter(pl_id, 'FAILURE' ,TEXT_PARAMETER, fail_id);
Add_parameter(pl_id, 'UPPER' ,TEXT_PARAMETER, upper_dev);
Add_parameter(pl_id, 'LOWER' ,TEXT_PARAMETER, lower_dev);
Add_parameter(pl_id, 'MIN_AVAIL' ,TEXT_PARAMETER, min_avail);
Add_parameter(pl_id, 'START_DATE' ,TEXT_PARAMETER, start_date);
Add_parameter(pl_id, 'END_DATE' ,TEXT_PARAMETER, end_date);
Add_parameter(pl_id, 'COMBINED_MEC' ,TEXT_PARAMETER, combined_mec);
Add_parameter(pl_id, 'NSN' ,TEXT_PARAMETER, nsn);
Add_parameter(pl_id, 'PARAMFORM' ,TEXT_PARAMETER, 'NO');
Add_parameter(pl_id, 'ORIENTATION' ,TEXT_PARAMETER, 'LANDSCAPE');
Add_parameter(pl_id, 'DESTYPE' ,TEXT_PARAMETER, 'PREVIEW');
-- RUN_PRODUCT(REPORTS, rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
-- RUN_REPORT_OBJECT(REPORTS, rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
SET_REPORT_OBJECT_PROPERTY(REPORTS, rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
am geting wrong number of argument
END;
I'm unable to locate the specific document that shows the allowed syntax for SET_REPORT_OBJECT_PROPERTY but all the examples I find have report_id as the first parameter.
I see no examples with a parameter before it so my guess it is REPORTS that is causing the error.
I see no examples with a parameter before it so my guess it is REPORTS that is causing the error.
ASKER
i did like this SET_REPORT_OBJECT_PROPERTY (rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL); but still geting error am not calling a procedure am calling a report
ASKER
even this still geve error
RUN_REPORT_OBJECT(rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
RUN_REPORT_OBJECT(rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
ASKER
i use this and it works
RP2RRO.setDestype( 'PREVIEW');
rp2rro.rp2rro_run_product( REPORTS, rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
RP2RRO.setDestype( 'PREVIEW');
rp2rro.rp2rro_run_product(
slightwv is right about first parameter:
report_id
Specifies the unique ID of the report to be run. You can get the report ID for a particular report using the Built-in FIND_REPORT_OBJECT
There are another problems:
1) this is wrong: SET_REPORT_OBJECT_PROPERTY (rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
because SET_REPORT_OBJECT_PROPERTY built-in has only 3 parameters.
This example is from on-line help:
SET_REPORT_OBJECT_PROPERTY Examples
DECLARE
repid REPORT_OBJECT;
report_prop VARCHAR2(20);
BEGIN
repid := find_report_object('report 4');
SET_REPORT_OBJECT_PROPERT Y(repid, REPORT_EXECUTION_MODE, BATCH);
SET_REPORT_OBJECT_PROPERT Y(repid, REPORT_COMM_MODE, SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERT Y(repid, REPORT_DESTYPE, FILE);
END;
2) RUN_REPORT_OBJECT(rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL); is also wrong, because RUN_REPORT_OBJECT built-in has 1 or 2 parameters - second is parameter list.
This example is also from on-line help:
RUN_REPORT_OBJECT Example
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
BEGIN
repid := FIND_REPORT_OBJECT('report 4');
v_rep := RUN_REPORT_OBJECT(repid); --or v_rep := RUN_REPORT_OBJECT(repid,pl _id);
...
END;
report_id
Specifies the unique ID of the report to be run. You can get the report ID for a particular report using the Built-in FIND_REPORT_OBJECT
There are another problems:
1) this is wrong: SET_REPORT_OBJECT_PROPERTY
because SET_REPORT_OBJECT_PROPERTY
This example is from on-line help:
SET_REPORT_OBJECT_PROPERTY
DECLARE
repid REPORT_OBJECT;
report_prop VARCHAR2(20);
BEGIN
repid := find_report_object('report
SET_REPORT_OBJECT_PROPERT
SET_REPORT_OBJECT_PROPERT
SET_REPORT_OBJECT_PROPERT
END;
2) RUN_REPORT_OBJECT(rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL); is also wrong, because RUN_REPORT_OBJECT built-in has 1 or 2 parameters - second is parameter list.
This example is also from on-line help:
RUN_REPORT_OBJECT Example
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
BEGIN
repid := FIND_REPORT_OBJECT('report
v_rep := RUN_REPORT_OBJECT(repid); --or v_rep := RUN_REPORT_OBJECT(repid,pl
...
END;
ASKER
i did this
repid := FIND_REPORT_OBJECT('REPORT S');
v_rep := RUN_REPORT_OBJECT(repid,pl _id);
but am geting this error
expression 'REPID' cannot be used as an assigment
repid := FIND_REPORT_OBJECT('REPORT
v_rep := RUN_REPORT_OBJECT(repid,pl
but am geting this error
expression 'REPID' cannot be used as an assigment
Please show the complete code.
ASKER
PROCEDURE run_reports (rep_id IN Varchar2,
command_id Varchar2,
unit_id IN Varchar2,
dept_id IN Varchar2,
mec_id IN Varchar2,
syc_id IN Varchar2,
baseline_id IN Varchar2,
fail_id IN Varchar2,
upper_dev IN Varchar2,
lower_dev IN Varchar2,
min_avail IN Varchar2,
start_date IN Varchar2,
end_date IN Varchar2,
combined_mec IN Varchar2,
nsn IN Varchar2,
repid REPORT_OBJECT,
v_rep VARCHAR2,
rep_status VARCHAR2) IS
pl_id ParamList;
/* */
BEGIN
pl_id := Get_Parameter_List('tmpdata');
IF NOT Id_Null(pl_id) THEN
Destroy_parameter_list(pl_id);
END IF;
pl_id := Create_parameter_list('tmpdata');
Add_parameter(pl_id, 'COMMAND' ,TEXT_PARAMETER, command_id);
Add_parameter(pl_id, 'UNIT' ,TEXT_PARAMETER, unit_id);
Add_parameter(pl_id, 'DEPARTMENT' ,TEXT_PARAMETER, dept_id);
Add_parameter(pl_id, 'MAIN_EQUIPMENT_CODE' ,TEXT_PARAMETER, mec_id);
Add_parameter(pl_id, 'SYSTEM_CODE' ,TEXT_PARAMETER, syc_id);
Add_parameter(pl_id, 'BASELINE' ,TEXT_PARAMETER, baseline_id);
Add_parameter(pl_id, 'FAILURE' ,TEXT_PARAMETER, fail_id);
Add_parameter(pl_id, 'UPPER' ,TEXT_PARAMETER, upper_dev);
Add_parameter(pl_id, 'LOWER' ,TEXT_PARAMETER, lower_dev);
Add_parameter(pl_id, 'MIN_AVAIL' ,TEXT_PARAMETER, min_avail);
Add_parameter(pl_id, 'START_DATE' ,TEXT_PARAMETER, start_date);
Add_parameter(pl_id, 'END_DATE' ,TEXT_PARAMETER, end_date);
Add_parameter(pl_id, 'COMBINED_MEC' ,TEXT_PARAMETER, combined_mec);
Add_parameter(pl_id, 'NSN' ,TEXT_PARAMETER, nsn);
Add_parameter(pl_id, 'PARAMFORM' ,TEXT_PARAMETER, 'NO');
Add_parameter(pl_id, 'ORIENTATION' ,TEXT_PARAMETER, 'LANDSCAPE');
Add_parameter(pl_id, 'DESTYPE' ,TEXT_PARAMETER, 'PREVIEW');
repid := FIND_REPORT_OBJECT('REPORTS');
v_rep := RUN_REPORT_OBJECT(repid,pl_id);
am geting wrong number of argument
is there a way i can do this without adding this 3
repid REPORT_OBJECT,
v_rep VARCHAR2,
rep_status VARCHAR2
as this procedure is been called somewhere
END;
ASKER
am geting expression 'REPID' cannot be used as an assigment
not am geting wrong number of argument
not am geting wrong number of argument
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
check the procedure call..i think you had posted the procedure which you think the error message had reported.. where in you have to correct the code where this procedure is being called..
ie., in a simple way..
count the number of parameters from the invoking code, count the number of parameters in the actual procedure code.. both should match..