How to Pass a multi-select parameter in BI to a PL/SQL Program
I am trying to pass a BI report parameter which is multi-select enabled in BI Enterprise Stand-Alone reporting tool. eg. it comes out in the data model like this: <P_CLASS_CODE>[DISABLED_VETERAN_OWNED, HUB_ZONE, LARGE_BUSINESS]</P_CLASS_CODE>
to a pl/sql stored procedure. (this is some kind of record set)
This works when passing the parameter as bind variable being passed to and IN CLAUSE. However, In my case I need a little bit more flexibilty with the programming so I need to get the value into PL/SQL so I can work with the individual values in the record set.
I am trying to figure out which collection type or record type I can use in pl/sql to be able to parse out the elements in the collection from within a stored procedure so I can loop through the elements.
I am trying to call the BI before report trigger in the data template like this:
<dataTrigger name="beforeReportTrigger" source="XXAPRPT03_SUPPLIER_DIVERSITY.before_report_trigger(:p_class_code)"/>
this call refers to the default package
I get this error: 'Invalid column type'
what type should I be using in my procedure definition to support the multi-selection record set which my parameter is passing from BI.
Hi,
Okie :) please feel free to post any problem :)
Please apply the patch that has the fix for this issue:
[Patch 9791839|https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=9791839]
The above link worked fine for me .
Ideally, you should pick up the latest patch, which is [ Patch 11846804|https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=11846804]
Click on View Read me for install instructions. Let me know if you find any problem with patch install.
Regards,
Ajay Kumar
Similar Messages
-
How to pass this multi-value parameter via GoURL?
Currency is equal to / is in 'USD', 'GBR', 'RUR'. How to pass such multi-value parameter via GoURL?
P0=1&P1=eq&P2=Measures.Currency&P3=?Found. P0=1&P1=eq&P2=Measures.Currency&P3=3+USD+GBR+RUR
-
How to default a multi-select parameter to ALL values?
I have a parameter that allows the user to select multiple values. I want it to default to use ALL values (meaning basically just ignore this parameter in the SQL generated). However, I cannot create a calculation on this since it accepts multiple values, and the calculation only supports the first value. Is there a way to do what I need, without selecting all the values in the list (the LOV contains hundreds and hundreds of values so this is not a viable option). I am not very experienced with Discoverer and don't know all the tricks/workarounds, so looking for expert advice.
ThanksHello
You would have to code the parameter and condition so that it accepts the word ALL.
For example, let's say you are working with ITEM_NUMBER and you have thousands of items. You want the user to either be able to key one or more items or access ALL items.
You need to create a Boolean condition like this:
ITEM_NUMBER IN :ITEM_PARAMETER
OR
UPPER(:ITEM_PARAMETER) = 'ALL'
So if the user keys the word ALL or all or All or any variant of the word that will be determined as true by the condition and all items will be selected. If the user does not key ALL then the other half of the condition will be applied and the Item must be a valid item as contained in the list of all items. You can even create your parameter with a default of ALL
Best wishes
Michael -
I have a multi-select parameter that can have a list of thousands of entries. In general, the user will pick a few entries from the list or "Select All". If they check "Select All", I would much prefer that I get a NULL or an empty string
instead of a list of all values. Is there any way to do that?
In experimenting with a work-around, I tried putting an "All" label with a null value in the list, but it is ignored (does not display in the drop-down). If I use an empty string for the value, my "All" entry does get displayed, but so
does "Select All", which is confusing. Is there a way to suppress "Select All"?
- MarkI adapted the following from a workaround posted by JNeo on 4/16/2010 at 11:14 AM at
http://connect.microsoft.com/SQLServer/feedback/details/249227/multi-value-select-all-parameter-in-reporting-services
To get a null value instead of the full list of all values when "Select All" is chosen:
1) Add a multi-value parameter "MyParam" that lists the values to choose.
2) Add a DataSet "ParamCount" identical to the one used by "MyParam", except that it returns a single column named [Count] that is a COUNT(*) of the same data
3) Add a parameter "MyParamCount", set it to hidden and internal, then set the default value to 'Get values from a query', choosing "ParamCount" for the Dataset and the one [Count] column for the Value field.
4) Change the parameter for the main report DataSet so that instead of using [@MyParam], it uses this expression:
=IIF(Parameters!MyParam.Count =
Parameters!ParamCount.Value, Nothing, Join(Parameters!MyParam.Value, ",")) -
How to pass more than one parameter
Hello,
This is my code.
How to pass more than one parameter:
SELECT:responsibility_name responsibility_name,
LPAD(' ', 6*(LEVEL-1))
|| menu_entry.entry_sequence sequence ,
LPAD(' ', 6*(LEVEL-1))
|| menu.user_menu_name SubMenu_Description ,
LPAD(' ', 6*(LEVEL-1))
|| func.user_function_name Function_Description ,
LPAD(' ', 6*(LEVEL-1))
|| menu_entry.prompt prompt
,menu.menu_id ,
func.function_id
--menu_entry.grant_flag Grant_Flag ,
--DECODE( menu_entry.sub_menu_id , NULL, 'FUNCTION' , DECODE( menu_entry.function_id , NULL, 'SUBMENU' , 'BOTH') ) Type
FROM fnd_menu_entries_vl menu_entry ,
fnd_menus_tl menu ,
fnd_form_functions_tl func
WHERE menu_entry.sub_menu_id = menu.menu_id(+)
AND menu_entry.function_id = func.function_id(+)
AND MENU.LANGUAGE(+) = 'US'
AND FUNC.LANGUAGE(+) = 'US'
--AND func.user_function_name LIKE '%Primary Care Providers%'
AND grant_flag = 'Y'
START WITH menu_entry.menu_id =
(SELECT menu2.menu_id
FROM fnd_menus_tl menu2,apps.fnd_responsibility_vl resp
WHERE menu2.menu_id=resp.menu_id
and resp.responsibility_name= :responsibility_name
--and menu2.user_menu_name = ('ATCO HR INQ USER'
AND LANGUAGE = 'US'
CONNECT BY MENU_ENTRY.MENU_ID = PRIOR MENU_ENTRY.SUB_MENU_ID
and menu_entry.function_id not in (select func.function_id
from --fnd_form_functions_vl fnc,
apps.fnd_resp_functions exc,
apps.fnd_responsibility_vl res
where func.function_id = exc.action_id
and res.responsibility_name =:responsibility_name
and res.responsibility_id=exc.responsibility_id)
and menu_entry.sub_menu_id not in (select menu.menu_id
from --fnd_menus_vl imn,
apps.fnd_resp_functions exc,
apps.fnd_responsibility_vl res
where menu.menu_id = exc.action_id
and res.responsibility_name =:responsibility_name
and res.responsibility_id=exc.responsibility_id)
ORDER SIBLINGS BY menu_entry.entry_sequence;
Thank you for your help
ShuishenmingHi, Ming,
One way is to put the "parameters" in a table, and join to that table in your query. If you make it a Global Temporary Table, then multiple sessions can run the query at the same time, and each can be seeing different responsibilities.
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data. Since this problem involves parameters, you should give a couple of different sets of parameters, and the results you want from the same sample data for each set.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
See the forum FAQ: https://forums.oracle.com/message/9362002 -
How to pass a combo box parameter on reporting services?
How to pass a combo box parameter on reporting services?
For example, a report has a parameter which is a combo box, its items came from a database query.
Looks like the combo box didn't got populated and greyed out if I didn't pass the parameter.Hi LAScorpion,
In Reporting Services, if we want to pass a combo box parameter (means signal-parameter) from one report (main report) to another report (subreport), we can enable an action with “Go to report” or “Go to URL” option to achieve the requirement. For more details,
please see:
Method1: Go to report
Right-click a report item to open the properties dialog in subreport, click Action in the left pane.
Enable Go to report action, then select the main report name in the drop-down list.
Add a parameter as below:
Select ID (a parameter name from main report) in the drop-down list of Name, and select [ID] (a field name from subreport) in the drop-down list of Value.
Method2: Go to URL
Right-click a report item to open the properties dialog in subreport, click Action in the left pane.
Enable Go to URL action, the URL below is for your reference:
="javascript:void(window.open('http://server_name/ReportServer/Pages/ReportViewer.aspx?%2ffolder_name%2fmain_report_name&rs:Command=Render¶meter_name="& Parameters!parameter_name.Value &"'))"
Besides, if the parameter’s values are based on other parameters, then the combo-box got greyed out when we haven’t select values in preceding parameters. For more details, please see:
Cascading Parameters
If there are any misunderstanding, please elaborate the issue for further investigation.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Show selected value from multi-selected parameter in crystal report
Dear Experts!
i would like to ask how to catch selected value from multi-selected parameter to show in report header section.
Thanks in advance.Hi Dara,
If this is a string prompt then you could simply create a formula with this code and place it on the report header:
Join({?Prompt name},", ")
-Abhilash -
SSRS 2012 multi select parameter not working in Report Manager.
Hello,
I have one report with Multi select parameter. its working fine in bids, report server but I am facing some issue on report manager 2012.
Issue is, In Multi select parameter I have Suppose 6 value a,b,c,d,e,f after the deployment on report manager for the first time report is working fine with selecting all the value. but for the second time if my selection include either
a or f report gives no result and check box get unselect.
I also try on different report manager but same result.
what can be a issue here causing problem only for two value but working fine for other value?
Thanks,Hi Javed,
The Issue is with when you click on View Report button of Report Manager for Parameters which contain CHAR(10) and CHAR(13).
Where ever that Column is used in Report Data Set ,
Use replace(replace(Param,char(10),''),char(13),'') function.
----------------Please Mark This as Answer if it helps to solve your problem---------------------------- -
How to create a multi select drop down filed in crm 7.0
Hi All,
I need to create a multi select drop down field in crm web ui where one field have 7 value and we can select more than one value at a time.I have no idea how to create a multi select drop down field in web ui.
Please help.....Hi vishwas
Please follow the thread where a similar requirement was posted.
Re: Drop-down list box / pick-list with multiple selections at a time
Here the suggestions say that a workaround could be to associate a table view to the field.
Regards,
Nisha -
How to pass values to select options of custom transactions?
I have to call custom transaction-ZMM_POST from my custom report.
I have to pass values to select options(Not to parameters) of ZMM_POST from my report only.
Please tell me how to pass values to select options of custom transactions?Have you tried this?
DATA: T_RSPARAMS TYPE STANDARD TABLE OF RSPARAMS WITH HEADER LINE.
T_RSPARAMS-SELNAME = "S_BUKRS".
T_RSPARAMS-KIND = "S".
T_RSPARAMS-SIGN = "I".
T_RSPARAMS-OPTION = "BT".
T_RSPARAMS-LOW = "100".
T_RSPARAMS-HIGH = "300"
APPEND T_RSPARAMS.
SUBMIT Z_DUMMY WITH SELECTION-TABLE T_RSPARAMS.
Greetings,
Blag. -
How to pass value to select-option parameter using SET PARAMETER Command
Hi,
Am passing values to selection-screen fields in report RV13A004 ( used in VK11, VK12 and VK13). using below statement but material number is select-option in this report. am able to pass MATERIAL FROM using SET PARAMETER ID, can i know how to pass values MATERIAL TO range in select-options fields using SET PARAMETER Command ??
Passing values to parameter id
set parameter id 'VKS' field kschl.
set parameter id 'VKO' field vkorg.
set parameter id 'VTW' field vtweg.
set parameter id 'KDA' field erdat.
set parameter id 'MAT' field matnr_from.
Change condition price.
call transaction 'VK12' and skip first screen.
Thanks in advance.
Regards,
Balamurugan.Hi,
instead of using set parameters and dden call transaction use this..........
submit RV13A004 WITH SELECTION-TABLE rspar
Effect
If you specify this addition, parameters and selection criteria on the selection screen are supplied from an internal table rspar. You must specify an internal table with the row type RSPARAMS for rspar. The structured data type RSPARAMS is defined in the ABAP Dictionary and has the following components, all of which are data type CHAR:
SELNAME (length 8),
KIND (length 1),
SIGN (length 1),
OPTION (length 2),
LOW (length 45),
HIGH (length 45).
To supply parameters and selection criteria for the selection screen with specific values, the lines in the internal table rspar must contain the following values:
SELNAME must contain the name of a parameter or selection criterion for the selection screen in block capitals
KIND must contain the type of selection screen component (P for parameters, S for selection criteria)
SIGN, OPTION, LOW, and HIGH must contain the values specified for the selection table columns that have the same names as the selection criteria; in the case of parameters, the value must be specified in LOW and all other components are ignored.
If the name of a selection criterion is repeated in rspar, this defines a selection table containing several lines and passes it on to the selection criterion. If parameter names occur several times, the last value is passed on to the parameter.
The contents of the parameters or selection tables for the current program can be entered in the table by the function module RS_REFRESH_FROM_SELECTOPTIONS.
Notes
In contrast to selection tables, the data types of the components LOW and HIGH in table rspar are always of type CHAR and are converted to the type of the parameter or selection criterion during transfer, if necessary.
When entering values, you must ensure that these are entered in the internal format of the ABAP values, and not in the output format of the screen display.
Cheers
Will. -
How to pass varchar2 in as parameter in SP
I have a sp which takes dname as parameter (see below code), I
tried 'ACCOUNTING', ''ACCOUNTING'' (2 single 's)
and "ACCOUNTING" none of them worked. Could you tell me how to
pass this in ( from pl/SQL and Java)?
This is my code:
CREATE OR REPLACE PACKAGE BODY testpkg1 AS
procedure test(
sum_cv IN OUT NOCOPY sumCur,
name IN VARCHAR2 ) AS
sql_statement VARCHAR2(100);
where_statement VARCHAR2(100);
BEGIN
if name = ' ' then
where_statement := ' ';
else
where_statement := ' AND d.dname = name ';
end if;
sql_statement :='SELECT e.* from emp e, dept d where d.deptno =
e.deptno ' ||where_statement ;
OPEN sum_cv FOR sql_statement ;
END test;
END;
and this is how I execute:
VARIABLE CV REFCURSOR
EXECUTE testpkg1.test(:cv, 'ACCOUNTING' )
ThanksThe problem is in your where_statement; You left out the quotes
on either side of name. If you want your code to get executed
like:
OPEN sum_cv
FOR
SELECT e.*
FROM emp e, dept d
WHERE d.deptno = e.deptno
AND d.dname = 'ACCOUNTING';
then, in order to preserve the quotes around ACCOUNTING, your
sql_statement must look something like:
'SELECT e.*
FROM emp e, dept d
WHERE d.deptno = e.deptno '
|| ' AND d.dname = ''' || name || ''''
So, in order for the sql_statement to end up as above, the
where_statement must look something like:
' AND d.dname = ''' || name || ''''
It is a good practice to use DBMS_OUTPUT.PUT_LINE to display the
sql_statement that you are trying to execute; It can make
debugging a lot easier. Please see suggested code below:
SQL> EDIT testpkg1
CREATE OR REPLACE PACKAGE testpkg1
AS
TYPE sumcur IS REF CURSOR;
PROCEDURE test
(sum_cv IN OUT NOCOPY sumcur,
name IN VARCHAR2 DEFAULT NULL);
END testpkg1;
CREATE OR REPLACE PACKAGE BODY testpkg1
AS
PROCEDURE test
(sum_cv IN OUT NOCOPY sumcur,
name IN VARCHAR2 DEFAULT NULL)
AS
sql_statement VARCHAR2(100);
where_statement VARCHAR2(100);
BEGIN
IF name IS NULL
THEN
where_statement := NULL;
ELSE
--NOTE THE ADDED SETS OF SINGLE QUOTES IN THE LINE BELOW:
where_statement := ' AND d.dname = ''' || name || '''';
END IF;
sql_statement := 'SELECT e.* FROM emp e, dept d WHERE
d.deptno = e.deptno '
|| where_statement;
DBMS_OUTPUT.PUT_LINE (sql_statement);
OPEN sum_cv FOR sql_statement;
END test;
END testpkg1;
SQL> START testpkg1
Package created.
Package body created.
To execute it from SQL*Plus, you would do just what you have
been doing:
SQL> VARIABLE cv REFCURSOR
SQL> SET SERVEROUTPUT ON
SQL> EXECUTE testpkg1.test (:cv, 'ACCOUNTING')
SQL> PRINT cv
SELECT e.* FROM emp e, dept d WHERE d.deptno = e.deptno AND
d.dname =
'ACCOUNTING'
PL/SQL procedure successfully completed.
EMPNO ENAME JOB MGR HIREDATE
SAL COMM
DEPTNO STARS
7782 CLARK MANAGER 7839 09-JUN-81 2450
10
7839 KING PRESIDENT 17-NOV-81 5000
10
7934 MILLER CLERK 7782 23-JAN-82 1300
10 ************* -
How to pass file name as parameter into url: or fo:external-graphic src
Hello gurus,
In my rtf I want to dynamically get the name of the image file and display the image in the report. If use hard coded image file name it works but if I try to get the name into a variable and pass that variable it is not working.
Basically my client is having different logos for each operating unit. in the OA_MEDIA directory there are separate logos for each OU. during run time based on OU name we need to display the corresponding image. If I can get this entire path($OA_MEDIA/logo.jpg') in XML field<?CF_OU_LOGO?> then I'm able to print the logo using url:{CF_OU_LOGO}
But I'm using seeded data source and I cant modify the data source, I need to handle this in RTF only. I could able to get the file name into a variable but not sure how to pass to url.
could some one help me on this. I tried the following options
<fo:external-graphic src="url($ln)" />
url:{$ln} in web etc...
here 'ln' is the variable which holds '$OA_MEDIA/logo.jpg'. ln is defined as <xsl:variable name="ln" select=".//CF_OPERATING_UNIT" />
later I set the values as <?xdoxslt:set_variable($_XDOCTX, 'ln',translate( concat('${OA_MEDIA}/','Logo',.//CF_OPERATING_UNIT,'.jpg'),' ',''))?><?xdoxslt:get_variable($_XDOCTX, 'ln')?>
thanks,
VijayVijay
What version of EBS is the customer running? I read somewhere that in R12 all of the concurrent parameters are passed to the XMLP template. I have not tried this but if true. You could create a conc program parameter that would hold the location of the image. You could either have the user pick the image or maybe derive it from the other parameter choices.
Lets assume the token name is DLOGO you can reference that in your template.
<?param:DLOGO?>
this needs to be at the top of the template. Then where you need to embed the image just reference the value using
$DLOGO
You can embed this in the external graphic field
As I mentioned I have not tested it yet, hopefully its there, if not there are ways around it. Try it first.
Tim -
How to sort via multi value parameter in ssrs
I have a parameter with multi values. when the user selects ,he get of options like acount name, first name, last name.
so if user selects firstname , the data has to sort by firstname.
if he selects acount name , the data has to sort by account name.
please help me how to sort the data using parameter with multivalue? in ssrs 2008.
Thank you?Hi Venku,
Based on your description, it seems that you create a parameter with available values and you want to sort the report data based on the parameter value. If the available values are the field names in the report, you can try to open the Tablix properties
dialog box and specify the sort expression on "Sorting" tab as follows:
=Fields(Parameter!parametername.value).value
If the parameter allow multiple values and you want to sort the report data by more than one field, for example, sort the report data by "accountname" and then by "firstname", please add two sort expressions as follows:
=Fields(Parameter!parametername.value(0)).value
=Fields(Parameter!parametername.value(1)).value
If you have any question, please let me know.
Regards,
Fanny Liu
Fanny Liu
TechNet Community Support -
How to pass refcursor as input parameter to a procedure in a package
Hi there
Please can anybody explain me with an small example for
passing a procedure output(output should be a refcursor) and pass that refcursor values into a procedure in a package as input parameter and this value i want to use as join condition in my procedure ie. ename=refcursor.ename like this).That my exact question is how to pass refcursor values as in parameter
Pls suggest me with some example statements
thanks in advance
prasanth a.s.I am giving you a generic example.
SQL> variable v_out REFCURSOR
SQL> r
1 DECLARE
2 PROCEDURE TEST1(p_out OUT SYS_REFCURSOR) IS
3 BEGIN
4 OPEN p_out FOR SELECT EMPNO,ENAME FROM SCOTT.EMP;
5 END;
6 PROCEDURE TEST2(p_in IN SYS_REFCURSOR) IS
7 v_empno NUMBER(10);
8 v_ename VARCHAR2(30);
9 BEGIN
10 LOOP
11 FETCH p_in INTO v_empno,v_ename;
12 EXIT WHEN p_in%NOTFOUND;
13 DBMS_OUTPUT.PUT_LINE(v_ename);
14 END LOOP;
15 NULL;
16 END;
17 BEGIN
18 TEST1(:v_out);
19 TEST2(:v_out);
20* END;
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
PL/SQL procedure successfully completed.
Maybe you are looking for
-
How to fix few rows in ALV after filtering on a column in Web Dynpro ABAP
Hi, I have the following requirement: In an ALV, when i filter based on a column, then this filter should not be applied to 2 of its rows. These rows relate to totals. The totals are manually calculated as they require other component information too
-
Error while creating document numbering series via SDK add on
Dear Experts, We receive the following error while creating the document numbering series through the SDK add on [Microsoft][SQL Server Native Client 10.0][SQL Server]The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream
-
Mappings disappeared in OWB...
I have a problem with several mappings that have disappeared from OWB. If I try to export the entire project to an MDL, it will fail. If I try to recreate one of the mappings, it says the object already exists. Is there any way to recover the mapping
-
I restored Time machine from an old MPB to my new one and after running repair permissions I get these errors. I've run it a couple times. The first time I received a ton more errors. 1. how to i fix these? Repairing permissions for "Macintosh HD" AC
-
Kan, na installatie van Creative Cloud, Illustrator niet opstarten. Photohop, enz... starten wel op.