Passing multiple values to a single input parameter
Hi folks,
I have a Microstrategy query successfully passing input parameter to a calculation view. For example I can pass a movement type to a material movements calculation view input parameter. However if I try to pick more than one movement type the query then fails;
Generated SQL that works looks like this;
select
sum(a11.TOTALQUANTITY) WJXBFS1
from
"_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER"
('PLACEHOLDER' = ('$$MoveType$$', '101')
a11
When choosing more than one value in Microstrategy the SQL now fails and looks like this;
select
sum(a11.TOTALQUANTITY) WJXBFS1
from
"_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER"
('PLACEHOLDER' = ('$$MoveType$$', '101'),
'PLACEHOLDER' = ('$$MoveType$$', '103'))
a11
If I cut and paste the SQL and run directly in HANA studio the error is;
Could not execute 'select sum(a11.TOTALQUANTITY) WJXBFS1 from "_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER" ...' in 66 ms 361 µs .
SAP DBTech JDBC: [2048]: column store error: search parameter error: [2018] A received argument has an invalid value;TABLE/VIEW parameter: ( 'PLACEHOLDER'='$$MoveType$$, 103') not supported
Is it possible to pass multiple values in a single parameter? I'm using SP67 for this test.
Thanks,
-Patrick
Ravi, also to answer one of your questions about how this will work in Microstrategy; I just heard back from my Microstrategy developer and he is trying MSTR Freeform SQL query with syntax like this;
select (sumPAR_TEST.TOTALQUANTITY TOTALQUANTITY
from "_SYS_BIC"."MyPackage/CA_TEST_PASS_PARAMETER"
('PLACEHOLDER' =('$$MoveType$$', '[Movement Type]')) PAR_TEST
In this example [Movement Type] is the microstrategy prompt. Unfortunately though it translates like this which is missing extra single quotes around each value;
select sum(PAR_TEST.TOTALQUANTITY) TOTALQUANTITY
from "_SYS_BIC"."development.pr1959/CA_TEST_PASS_PARAMETER"
('PLACEHOLDER' = ('$$MoveType$$', ''101', '102'')) PAR_TEST
instead of what we need which is;
('PLACEHOLDER' = ('$$MoveType$$', '''101'', ''102''')) PAR_TEST
So at this point we are not sure if this will be possible or not.
-Patrick
Similar Messages
-
Any way to pass Multiple Values for a single Label in the Parameter?
I have a Report that Contains 2 Parameters, @Customer & @Area. When trying to set up the Available Values for @Area, I'm having issues using multiple values for one Label, i.e. = "4006" Or "4610"
One of the Filters in the Report is an Operation number, which is the [OPERATION] field, which is setup as a filter on the Tablix referencing the @Area parameter.
PROBLEM: I cannot retrieve any data when trying to use the ‘Or’ Operator here. If I simply put “4006” or “4610” I retrieve data, but when trying to combine it returns no data.
Example, I need to allow a user to select ‘Chassis Incoming’, which would include data from Operations 4006 & 4610.
QUESTION:
Any way to pass Multiple Values for a single Label in the Parameter?
I realize the typical solution may be to use ‘Multi-Value’ selection, but in this case we want the User to select the Area and the multiple values for Filtering will be automatically determined for them. Otherwise, they are subject to not getting
it correct.
I have tried several different ways, such as =”4006” Or “4610”, =(“4006”, “4610”), = In(“4006”, “4610”), etc….
Note: We are using Report Builder 3.0Based on my experience, there's no way to 'intercept' the query that gets passed back to SQL Server, so a Split wouldn't work.
Try creating either a function or stored procedure using the code below (compliments to
http://www.dotnetspider.com/resources/4680-Parse-comma-separated-string-SQL.aspx) to parse the string:
CREATE FUNCTION dbo.Parse(@Array VARCHAR(1000), @Separator VARCHAR(10))
RETURNS @ResultTable TABLE (ParseValue VARCHAR(100))AS
BEGIN
DECLARE @SeparatorPosition INT
DECLARE @ArrayValue VARCHAR(1000)
SET @Array = @Array + @Separator
WHILE PATINDEX('%' + @Separator + '%' , @Array) <> 0
BEGIN
SELECT @SeparatorPosition = PATINDEX('%' + @Separator + '%', @Array)
SELECT @ArrayValue = LEFT(@Array, @SeparatorPosition - 1)
INSERT @ResultTable VALUES (CAST(@ArrayValue AS VARCHAR))
SELECT @Array = STUFF(@Array, 1, @SeparatorPosition, '')
END
RETURN
END
Once created you can do things like this:
SELECT * FROM Parse('John,Bill,David,Thomas', ',')
SELECT * FROM (SELECT 'John' AS TestName union select 'David' AS TestName) AS Main
WHERE TestName IN (SELECT ParseValue FROM dbo.Parse('John,Bill,David,Thomas', ','))
This is what your SQL query would probably look like:
SELECT OperationID, OperationName FROM dbo.Operations
WHERE AreaID IN (SELECT ParseValue FROM dbo.Parse(@Area, ','))
You may need to fiddle around with the Separator depending on whether SQL Server inserts a space between the comma and next value. -
Passing multiple values for a single field in URL to call sap Transaction
Hi All,
I need to pass multiple values for a single field to SAP transaction .
means if i have say a field "Date" which can contain more than one value, <b>but its not a range which has two fields</b> . How is it possible.
Let me know pls.
Regards,
Sirisha.R.S.Hi Satyajit,
I need to call a transaction with multiple values which gives me the report based on those values.
So I need to pass multiple values for a single parameter.
I hope u got it.
Regards,
Sirisha.R.S. -
How to pass multiple values to a single parameter in BW report URL
Hi Experts,
I am new to EP and learning .... i am stuck at one point where we need to pass multiple parameters to a BW report URL, this is the URL that we launch from BSP.... Suppose i have to pass different multiple values to a single parameter, how to do it....
i m getting many answers to pass parameters to iviews, reports, but not specific to my case.. can u plz help me....
Thanks in advance
Priya RaiWhat is the prolem you are facing if you split the single date param as two parameters say startdate and enddate?
If you pass as single string then you might have to split the same at reciever end.
Are you trying any thing specific? -
Passing multiple values to the QUERY BDOC parameter?
hi All,
Below is my Query BDOC Anchor Before Query Execute even handler... I'm trying to pass multiple values to the bq.Z_PartnerFunction query parameter... i.e.
PARTNER_FCT in( '00000012','ZDIVMGR','ZAREADR')
is it possible without creating new Query Bdoc ?
====================================
Private Sub aempchoicewinTCWSearchTAnchor_beforeQueryExecute(ByRef bq As BusinessQuery, ByRef cancel As Boolean)
If Not bq Is Nothing Then
If sWcDummy = "Yes" Then
bq.WcDummy = sWcDummy
End If
bq.Z_PartnerFunction = "00000012"
If ctrlZ_Territory.Value <> "" Then
bq.PRNB_TerrID = "*" & ctrlZ_Territory.Value
End If
End If
End Sub
================================
Thanks in advance
HetalHi,
it looks that you already enhanced the query BDoc because you have a new query parameter bq.Z_PartnerFunction, right?
To which BDoc parameter is this BQ parameter mapped? And how looks the related where clause?
For a single filter normally a "=" operator is used. Therefore your example with "in" won't work.
If these three partner functions are fixed then you might hardcoded them directly in the where clause (supposed the BDoc is not used somewhere else where you don't want to have this filter).
Or you might add 3 new BDoc parameters, add 3 new where clauses using a disjunction for them (and using an embracing bracket). In this case always all these 3 BQ parameters need to be filled (or all stay empty) to avoid a SQL syntax error.
Regards,
Wolfhard -
How can i pass multiple values by a single variable to EXECUTE IMMEDIATE
Hi All,
I want to pass multiple values for where condition for execute immediate. Something Like this:-
bold
Declare
v_cond varchar(1000);
Begin
v_cond := '''INR','USD'''; --(OPTION 1)
v_cond := 'INR,USD'; --(OPTION 2)
EXECUTE IMMEDIATE 'Delete from table where colm in (:v_cond)' using v_cond;
END;
bold
I am using this into a procedure
Now option 1 gives an error ie a syntax error (; expected or something like that)(I am sorry, i can't tell the exact error here as i am not in the office right now)
and option 2 makes the procedure execute but obviously doesn't delete the records, as it takes the whole as one.
Please Help
Regards
Neeraj BansalSee the links containing examples under
*7. List of values in an IN clause?*
SQL and PL/SQL FAQ
from the SQL and PL/SQL FAQ. -
Multiple values as default for input parameter
Hi,
As per one requirement, I have to create a input parameter with default values (having multiple default values).
Any suggestions are much appreciated.
Regards,
Saurabhcreate or replace procedure emp_proc ( p_test_input in varchar2,
p_emp_id in number,
p_emp_name in varchar2 default null,
p_manager_id in number default null ) -
How can I pass dynamic value as a user input parameter in discoverer?
Hi,
I have a requirement for a discoverer report like this: The report will display only details for Suppliers that have expired (or soon to be) Insurance details. That is the Expiration Date is less than or equal to the day the report is being run plus any days specified in the Number of Days in the Future Parameter.
The sample code as:
SELECT s.segment1 vendor_number
,s.vendor_name
,flv1.meaning classification
,pca.certificate_number
,pca.certifying_agency
,pca.expiration_date
,flv2.meaning status
FROM ap_suppliers s
,pos_bus_class_attr pca
,fnd_lookup_values flv1
,fnd_lookup_values flv2
WHERE pca.vendor_id = s.vendor_id
AND flv1.lookup_code = pca.lookup_code
AND flv1.lookup_type = pca.lookup_type
AND flv2.lookup_code = pca.class_status
AND flv2.lookup_type = 'POS_BUS_CLASS_STATUSES'
AND pca.expiration_date <= trunc(sysdate) + <No. of Days in the Future>
order by pca.expiration_date asc
Now the parameter is Number of Days in the Future (Enter the number days in the future to extract the data. This will default to 0).
Is it possible in discoverer to do so as in query i do that like a condition as pca.expiration_date <= trunc(sysdate) + <No. of Days in the Future>.
How can I pass <No. of Days in the Future> as a user input parameter in discoverer?
Please help.Hi,
All you need to do is to create the condition in the discoverer instead of in the query.
Create a custom folder containing the following sq (note that i removed the condition)l:
SELECT s.segment1 vendor_number
,s.vendor_name
,flv1.meaning classification
,pca.certificate_number
,pca.certifying_agency
,pca.expiration_date
,flv2.meaning status
FROM ap_suppliers s
,pos_bus_class_attr pca
,fnd_lookup_values flv1
,fnd_lookup_values flv2
WHERE pca.vendor_id = s.vendor_id
AND flv1.lookup_code = pca.lookup_code
AND flv1.lookup_type = pca.lookup_type
AND flv2.lookup_code = pca.class_status
AND flv2.lookup_type = 'POS_BUS_CLASS_STATUSES'
Then create a discoverer report using this folder using all fields.
Create a new calculation as (use this exact syntax):
Sysdate + :No_of_Days_in_the_Future
Create a new condition:
pca.expiration_date <= <your calculation>
To complete it add a sort as you did in the SQL.
That's it.
Tamir -
Passing multiple values to a parmeters in SQL Query
Hi friends,
I have the following requirement -
I need to pass multiple values to the parameter 'WHERE hou.name = (:id1)' and the query is copied below for your reference .
SELECT partno part_num,
customer customer_name,
hou.name op_name
FROM hr_organization_units hou,
oe_transaction_types_all sot,
ra_customers rc,
ra_addresses_all ra,
ra_site_uses_all rsu,
oe_order_headers_all h,
oe_order_lines_all l,pwr_sod50 ps
WHERE hou.name = (:id1)
-- and hou.name = (:id4)
--hou.name in ('CPS FRANCE','CPS GERMANY')
--and hou.name = (:id1,hou.name)
and trunc(ps.sch_ship_date) between nvl(:id2,trunc(ps.sch_ship_date)) and nvl(to_date(:id3)+.99999,trunc(ps.sch_ship_date))
and ps.group_id = 9999999
and hou.organization_id=h.org_id
and ps.line_id =l.line_id
and l.header_id =h.header_id
and h.invoice_to_org_id=rsu.site_use_id
and rsu.address_id =ra.address_id
and ra.customer_id =rc.customer_id
and h.order_type_id =sot.transaction_type_id
Looking for your help on this.
Thanks In Advance.
Thanks & Regards
Ramya NomulaHi karthik,
I am sorry for the wrong updation of my anonymus block.
My requirement is to pass a multiple values to the parameter in SQL query, and here is the code which is working now for the multiple values with ourt single quotes to the values -
SELECT partno part_num,
customer customer_name,
ps.customer_id customer_id,
avail_qty avail_qty,
sch_ship_date schedule_Ship_date,
so_num order_no,
h.header_id header_id,
line_num line_no,
l.ordered_quantity ordered_quantity,
scd_qty qty_open,
s_price unit_price,
part_flag flag,
sub_inv subinv,
sbu,
hold,
qoh,
line_detail_id detail_id,
picking_line_id,
picking_line_detail_id,
rc.customer_name cust_name,
rc.customer_number customer_number,
rsu.location location,
sot.attribute5 order_type,
ps.line_id line_id,
h.transactional_curr_code transactional_curr_code,
hou.name op_name
FROM hr_organization_units hou,
oe_transaction_types_all sot,
ra_customers rc,
ra_addresses_all ra,
ra_site_uses_all rsu,
oe_order_headers_all h,
oe_order_lines_all l,pwr_sod50 ps
WHERE ','||:id1||',' like '%,'||hou.name||',%'
and trunc(ps.sch_ship_date) between nvl(:id2,trunc(ps.sch_ship_date)) and nvl(to_date(:id3)+.99999,trunc(ps.sch_ship_date))
and ps.group_id = 9999999
and hou.organization_id=h.org_id
and ps.line_id =l.line_id
and l.header_id =h.header_id
and h.invoice_to_org_id=rsu.site_use_id
and rsu.address_id =ra.address_id
and ra.customer_id =rc.customer_id
and h.order_type_id =sot.transaction_type_id;
Condition for sending multiple Oprtaing Units -
WHERE ','||:id1||',' like '%,'||hou.name||',%'
This above condition is working when i am passing multiple values with out single quotes...but not working for multiple values with single quotes.
Sample queries tested -
select 1 from dual where ',aa,bb,cc,' like '%,bb,%' (This is working)
select 1 from dual where ','aa','bb','cc',' like '%,'bb',%'(This is not working).
Thanks In Advance!
Looking for Your Great Help.
Thanks & Regards
Ramya Nomula -
Pass multiple values as single input parameter into pipelined function
Hi all,
My need is to pass multiple values as single input parameter into pipelined function.
For example - "2" and "3" are values of input parameter "t":
with data as (
select 1 as t from dual union all
select 2 as t from dual union all
select 3 as t from dual union all
select 4 as t from dual union all
select 5 as t from dual
select * from data where t in (2,3)Is it possible at all?Not exactly sure, but usually 'multiple values'+'pipelined function' = some IN-LIST related approach?
See:
SQL> create table data as
2 select 1 as t from dual union all
3 select 2 as t from dual union all
4 select 3 as t from dual union all
5 select 4 as t from dual union all
6 select 5 as t from dual;
Table created.
SQL> --
SQL> CREATE OR REPLACE FUNCTION in_list (p_in_list IN VARCHAR2)
2 RETURN sys.odcivarchar2list PIPELINED
3 AS
4 l_text VARCHAR2(32767) := p_in_list || ',';
5 l_idx NUMBER;
6 BEGIN
7 LOOP
8 l_idx := INSTR(l_text, ',');
9 EXIT WHEN NVL(l_idx, 0) = 0;
10 PIPE ROW (TRIM(SUBSTR(l_text, 1, l_idx - 1)));
11 l_text := SUBSTR(l_text, l_idx + 1);
12 END LOOP;
13
14 RETURN;
15 END;
16 /
Function created.
SQL> --
SQL> select *
2 from data
3 where t in ( select *
4 from table(in_list('1,2'))
5 );
T
1
2
2 rows selected.http://www.oracle-base.com/articles/misc/dynamic-in-lists.php
or
http://tkyte.blogspot.nl/2006/06/varying-in-lists.html -
Pass WebI dimension multiple values to OpenDocument URL lsM parameter
Hi
Has anyone managed to pass multiple values of WebI dimension object to OpenDocument URL lsM parameter?
My WebI document has 3 objects: Country \[Country\] and Customer \[Customer\] dimensions and Sales Amount measure. WebI report includes a table with 2 columns: Country \[Country\] and Sales Amount. I have built a hyperlink in the Country cells with an OpenDocument URL with lsS parameter = \[Country\] and lsM parameter which should get all context Customers for selected Country as a string (IsM=u201D\[Customer1 Name\], \[Customer2 Name\], \[Customer3 Name\]u201D) .
Using IsM=\[Customer\] forces table to break down by customer which does not help.
I imagine that the solution would be a function similar to count(\[Customer\]) which accepts a dimension as an input parameter and returns a string with concatenated Customer Names.
I have considered WebI extension points (custom functions) option but according to the documentation they do not accept u201Cobjectu201D type as an input parameter.
Any ideas?
Thank youWhat is the prolem you are facing if you split the single date param as two parameters say startdate and enddate?
If you pass as single string then you might have to split the same at reciever end.
Are you trying any thing specific? -
About passing multiple values in parameter for oracle report
https://docs.google.com/file/d/0B0dx7wf68mD0QzdpbWU4UGNURTQ/edit
Hi all,
i want to pass multiple value using , to separate them 1,2,3....
here is my query
SELECT DISTINCT
oh.header_id
,oh.org_id
,to_char(oh.ordered_date,'DD-MON-YYYY') d_date
,to_char(oh.ordered_date+31,'DD-MON-YYYY') d_validity
,oh.ship_to_org_id
,oh.invoice_to_org_id
,oh.cust_po_number d_po_num
,rcust.customer_id AS customer_id
,oh.order_number d_salesorder_no
,oh.cust_po_number d_project
,oh.attribute1 second_addr
,oh.attribute2 remark1
,oh.attribute3 remark2
,substr(oh.transactional_curr_code,1,3) as currency
,tyl.name ordertype
,oh.salesrep_id
,rat.name as d_payment_term
,rat.description d_payment_desc
,rsa.name
,rsa.email_address as sales_phone
,rcust.customer_name||' - #'||rcust.customer_number d_to_custname
,rcust.customer_name d_cust_sign
,rcust.attribute1
,rcust.customer_number
-- ,raddr.ship_to_flag
,oh.sold_to_contact_id AS attn_id
,rcust.party_id
,tyl.name AS SO_type
-- ,net_org.ORG_LOGO
FROM
oe_order_headers_all oh
,ra_customers rcust
,ra_addresses_all raddr
,ra_site_uses_all rsite --double_line
,ra_terms rat
,hz_party_sites hps
,hz_contact_points hcp
,ra_salesreps_all rsa
,oe_transaction_types_tl tyl
-- ,apps.ar_contacts_v acv
-- ,net_org
WHERE oh.sold_to_org_id = rcust.customer_id
AND oh.payment_term_id = rat.term_id(+)
--AND rcust.customer_id = acv.customer_id(+)
AND oh.salesrep_id = rsa.salesrep_id
AND oh.order_type_id = tyl.transaction_type_id
AND rcust.party_id = raddr.party_id
AND raddr.address_id = rsite.address_id
AND rcust.party_id = hps.party_id
AND hps.party_site_id = hcp.owner_table_id(+)
AND hcp.owner_table_name(+) = 'HZ_PARTY'
--AND hcp.contact_point_type (+)='PHONE'
AND tyl.LANGUAGE = userenv('LANG')
--AND raddr.ship_to_flag IS NULL
AND upper(tyl.name) in ('SW SALES CONTRACT','SW-NSC SALES CONTRACT','TILES SALES CONTRACT','VBP SAMPLE ORDER', 'VBP INTERNAL ORDER')
AND oh.order_number =:P_CONTRACT_NO
and oh.org_id = :P_ORG_ID
--and net_org.org_id = :P_ORG_ID
&CP_Param
and after para form
function AfterPForm return boolean is
begin
:CP_Param := 'where oh.order_number in ('||:P_CONTRACT_NO||')';
return (TRUE);
end;
it said ora-00933 but my query can run i dont need the multiple values para, can anyone help me how to modify the report so it can pass multipel values thanksHI I tried changing the parameter width to a larger value, it can output , and the field where I show the order_number i used source P_CONTRACT_NO,
it will display as 102005000,102005001 and I also tried using the column from the query directly, it will be separated , it has some other problem
I have the header part and main part,
and also there are page numbering, with the order number field set as order_number it will output single number , but the page order is wrong
102005000,102005001 will be like header page: 102005000 1/4 102005001 2/4, main page 102005000 3/4, 102005001 3/4
DO you have any idea how I can set the page numbering setting so it will output as header page:102005000 1/2 102005000 2/2
header page:102005001 1/2 102005001 2/2
?? thanks -
Passing ALL values to a single parameter
In Bi Publisher Report, I need to pass 'ALL' values to a single parameter
Here is brief explanation about my requirement,
I have 3 parameters
Parameter A,
Parameter B,
Parameter C
I have to pass ALL values to last parameter i.e; Parameter C and the rest should pass only single value, how should I do that?
Any help would be greatly appreciated.
Thank youHi,
have a look here: http://www.oracle.com/global/de/community/bip/tipps/dynamische_queries/index_en.html
This might give you an idea how to work with multi-value parameters.
Regards
Rainer -
How to passing multiple values for a parameter of discoverer(url parameters
Hi All,
I am trying to pass multiple values for a parameter of disco report. I am trying to include my url for discoverer viewer report. the values has the following
'jeff,mark'
'sfophiee,angela'
Thanks and Regards
VenkatHello Venkat,
I know there are some problems with 10.1.2.0.2, maybe if you haven't done yet you can try with 10.1.2.2, assuming this version should be working for multiple parameter values :
OracleAS Discoverer 10.1.2.2 is installed with the following patch :
Patch 4960210 PLACEHOLDER BUG FOR AS/DS 10G R2 PATCH SET 2 10.1.2.2
So, once installed you can try adding your parameter as param_<parameter_name>='sfophiee,angela'
Hope this helps, otherwise feel free to log a Service Request to Support.
Best Regards,
Gianluca -
Passing multiple values in a parameter through IN operator
hello everyone,
i want to know wheather it is possible to pass multiple values to a report parameter and use the parameter in the query with the IN operator.
I feel this should be possible but dont know the way.
Pls helpi have also suffered from this problem. you can solve it by creating a table like
create table abc
id number,
value number;
then follow the steps.
1) insert all the values in this table by incrementing id and values
2) then pass lowest id and larget id to the report
3) now in report use the select statement like
SELECT * FROM AAA WHERE ABC IN (SELECT VALUE FROM ABC WHERE ID BETWEEN V_MAX AND V_MIN)
4) IN THE REPORT'S AFTER TRIGGER, YOU HAVE TO DELETE
THESE TEMPORARILY CREATED ROWS
LIKE
DELETE ABC
WHERE ID BETWEEN V_MAX AND V_MIN;
SO THIS WILL SOLVE YOUR PROBLEM.
Maybe you are looking for
-
''dupe of https://support.mozilla.org/en-US/questions/918473'' I would like to make one static copy of Firefox, so I can restore it if I have a hard drive crash, or if I want to upgrade my internal disk, or if I want to have a duplicate on another re
-
Hello People! I'm getting an error message when I plug my iPhone 4 into my computer. It says, "This iPhone cannot be used because the Apple Moblie Device Service has not been started." What does this mean? I've never had this error before. It's a
-
Dear all, I have this query This query retuns the right value for other users.. whereas the same query returns no value for some other user.. (this user has select privileges on the tables department,invoice_rec).. What could be the reason ? Kai Edit
-
How to delete iMessage on iphone? Completely complete it.
How do I completely delete iMessage from my iphone?
-
IBAN missing in CREMDM & CREMAS
Hi, I'm trying to send Vendor IBAN (International Bank Account Number) field to ECC V6 via XI using CREMDM IDOC structure but I noticed IBAN segment/field is missing in CREMDM and CREMAS idocs, even though I can enter vendor IBAN via vendor maintenan