Search by qualified parameter in a LookUP Qualified Flat Multi Valued Table
I am working on a MDM development but I am having some problems the development consists in searching in MDM a certain key but the thing is that this value is stored in a Look up qualified flat multi valued table, I have implemented a code that gives me the correct results but it takes a lot of time because it goes through all the main table the ideal would be to search directly for this value but as it is in a look up qualified multi valued table I dont know how to implement this kind of search, do you have an idea how to implement this.
Main Table : ING_ROLE_PLAYER
Lookup qualified flat multi valued table : ILYTICS_SEARCH_KEY, this table has two qualifiers KEY_TYPE and SEARCH_KEY
I receive a string that represents a SEARCH KEY as a parameter to look into MDM and get some data this is I want to search using a qualifier parameter as a search parameter.
If anybody could help me it would be vey helpful
Best Regards
Michele González
Hi Michele,
Try the following code :
String searchKey="/the value of the input searchkey/";
// create a catalog object
CatalogData catalog = new CatalogData();
// create a search object on the main table.
Search search = new Search("ING_ROLE_PLAYER");
// create a resultset definition on the main table
ResultSetDefinition rsd = new ResultSetDefinition("ING_ROLE_PLAYER");
A2iResultSet result=null;
// adding a free-form limiting for the specified table
FreeFormTableParameter fftpRole = search.GetParameters().NewFreeFormTableParameter("ING_ROLE_PLAYER");
//add a new table 'ILYTICS_SEARCH_KEY'-the qualified lookup table to the search object.
FreeFormTableParameter fftpKeys = search.GetParameters().NewFreeFormTableParameter("ILYTICS_SEARCH_KEY");
// get the field 'SEARCH_KEY' of the 'ILYTICS_SEARCH_KEY' table for free-form search.
FreeFormParameterField fftpKey = fftpKeys.GetFields().New("SEARCH_KEY",FreeFormParameterField.SEARCH_OPERATOR_AND);
//add a free-form search parameter for 'SEARCH_KEY'
fftpKey.GetFreeForm().NewString(searchKey,FreeFormParameter.EqualToSearchType);
// obtain the result set
result = catalog.GetResultSet(search, rsd, "/any field name in main table and resultset definition/", true, 0);
Hope it helps.
Pls reward, if helpful.
Regards,
Karambir Singh.
Similar Messages
-
Insert Value(s) in Lookup Flat Multi-valued Table with Java API
I've been looking in MDM Java API Library Reference Guide, MDM SP4 API JavaDoc, and SDN Forums for information on how to Insert/Update different values in a field in the Main Table of a given repository that belongs to a Lookup Flat Multi-valued Table using the Java API with no success.
I also haven't been successful in adding this values in the same way that I'll add a single value, using the MDM Java API, in a single-value Lookup Table (a2iFields.Add(new A2iField(FIELD_CODE,FIELD_VALUE)) for each value I want to add, like for example:
a2iFields.Add(new A2iField("Country","USA")
a2iFields.Add(new A2iField("Country","Mexico")
a2iFields.Add(new A2iField("Country","Germany")
Can anybody point me to the correct documentation that I need to read to fulfill this task? Or, even better, if someone can post a piece of code, I'll be more thankful.
Thanks for your help.HI,
little code example, where you add existing lookup values based on there record id:
int USA = 1;
int GERMANY = 2;
A2iValueArray countryArray = new A2iValueArray();
countryArray.Add(new Value(USA));
countryArray.Add(new Value(GERMANY));
A2iFields record = new A2iFields();
record.Add(new A2iField("Country", new Value(countryArray)));
Please reward points if helpful.
Regards,
Robert -
Reading data from Lookup [qualified flat] (multi-valued) table
I have a main table u2019ABCu2019 which has a Lookup [qualified flat] (multi-valued) field u2018XYZu2019 along with some other text fields. I am able to read data from table ABC including lookup field data, but I do not see the relation
For Ex: If for a contract in table u2018ABCu2019, there are multiple line items in look up table. I have a contract with 2 line items in u2018ABCu2019, but 4 line items in look up table (2 records each for each line item with item number). Now, when I read the data from table u2018ABCu2019 for that contract, I get all the 4 lines in result table; but item no is blank even though there is item no field in table u2018XYZu2019.
Below is the sample code:
wa_query-parameter_code = Contract ID Field.
wa_query-operator = 'EQ'.
wa_query-dimension_type = 1. "mdmif_search_dim_field.
wa_query-constraint_type =8. " mdmif_search_constr_text.
wa_string = Contract Number.
GET REFERENCE OF wa_string INTO wa_query-value_low.
APPEND wa_query TO lt_query.
CLEAR wa_query.
CALL METHOD lcl_api->mo_core_service->query
EXPORTING
iv_object_type_code = 'ABCu2019
it_query = lt_query
IMPORTING
et_result_set = lt_result_set_key.
LOOP AT lt_result_set_key INTO ls_result_set_key.
lt_keys = ls_result_set_key-record_ids.
ENDLOOP.
Contract Price for lower bound
ls_result_set_definition-field_name = XYZ'.
APPEND ls_result_set_definition TO lt_result_set_definition.
CALL METHOD lcl_api->mo_core_service->retrieve
EXPORTING
iv_object_type_code = 'ABCu2019
it_result_set_definition = lt_result_set_definition
it_keys = lt_keys
IMPORTING
et_result_set = lt_result_set.
In table lt_result_set, I see 4 records, but I do not know which 2 records belong to item 1 of the contract and other 2 records for item2.
Can anyone help me in resolving this. Any kind of help is appreciated.
Thanks,
Shekari do not quite understand ur problem statement ..
but if u have items in the main table to which QLUT entries are linked ..
then when you read the main table record (u get LinkIds at the record level) that gives u the relation to the Qlookup values
i mean for ur case - u would get only 2 values in the QLUT values for the "selected" record in the main table
am not sure if you say correctly - that you get "unlinked" values in the QLUts
so u should 2 values in lt_result_set and not 4 .. see if u are using the LinkIds properly
hth
thanks
-Adrivit -
Passing Multi-Value Parameter to a Stored Procedure
Has anyone experienced passing a Parameter (MultiValue) to a Stored Procedure? I am aware that Crystal Passes the Param as an Array. How would you go about handling this within a Stored Procedure???
Hi Daniel
Try as below:
1. Create a Crystal report, and add a multi-value parameter.
2. Since the multi-value parameter is treated as an array, create a formula that uses the JOIN function. Create a formula as below:
//Formula: @JoinFormula
Join ({?Multi-value parameter array},";")
====================
NOTE:
In the formula above, a semi-colon (";") is the delimiter.
====================
3. Within the main report, create a subreport based on the stored procedure, and include the parameter to be populated with the multi-value list.
4. Link the Join formula in the main report to the stored procedure parameter in the subreport.
Doing so passes a multi-value parameter to the stored procedure.
Hope this helps!!!!
Regards
Sourashree -
Lookup Flat Table and Lookup Qualifier Table
Hi,
Can any body confirm that if I will change the type of lookup-flat type field to lookup-qualifier type field. But the structure of Lookup Flat table and Lookup Qualifier table will be the same then the Java code written to populate the lookup-flat type field will work without any changes with its new type (lookup-qualifier).
Right now when I run the code after the above said changes, no error comes but no values is assigned to that field.
Another way to ask this question, can a simple Qualifier Lookup table(without having any qualifier type field) be used as like Lookup flat table.
I would appreciate if any body can help me in this regard ASAP.
Regards
Shahid NadeemHi Alok,
I think this Qualifier importing after main table import is quite trickier that you estimate.
1)Map all the fields of qualified table with source fields whther they are qualifiers or non-qulaifiers.
- we will only be able to view the Non Qualifier field in the qualified table.
2)Now the main step is when you finish all field and value mapping there will be also a Target field name on your qualified table with values of display field. this field must be mapped to a source field to import qualified table. do value mapping also.
- This target field is the linkup field you are talking abot i feel, and it is viewed only in the main table and, as i have only on one non- qualifier this will not be a combination of any display fields.
3)I am not abl eto see the Non -Qualifier in my main table
So how do i proceed.
Kindly guide
Thanks
Simona -
Qualifier Field Not Shown in Qualified Table
Hi All,
Can anybody tell me why the values of qualifier fields are not shown in the qualified tables? And where are those qualifier values stored, in the main table or in the qualified table itself?
Best Regards
JeromeHi Jerome,
Before starting, I am assuming there is no confusion relating to Qualifiers & Non-Qualifiers.
Non-Qualifiers --> Decidors/Fields whose value changes
Qualifiers --> Fields which get decided/whose value changes based on the Non-Qualifers.
You said - "<i>Can anybody tell me why the values of qualifier fields are not shown in the qualified tables?</i> "
<b>1. )</b>What I understood from your question is that; when you select your Qualified Table in the Record Mode of the Data Manager, the qualifiers appear to be locked/non-editable. Is that right?
All the qualifiers are locked because <b>they have no context in the Qualified table.</b>
For e.g.: If your Qualified table is "Addresses" consisting of
Non-Qualifiers --> Address Type(say Home(can be more than 1), Office,etc)
Qualifiers --> HouseNo,Street, City, Country,etc.
What would it mean if we put the street name "XYZ Street" for the record selected. Nothing -- the street must be connected to a main table record, a Customer(Cust_Id) and and an address-type(Home) to have meaning.
<b>2.)</b> If the above interpretation of your Q is not correct, then 2nd case could be --> when you select your main table in DM (Record Mode)and try to add a Qualified Lookup value to a record you are unable to see the qualifiers. Right?
In the main table Double-click on the quailfied lookup field. An screen pops-up. Here we see the available lookup records -- these are in fact the records we saw when we switched to view the Addresses qualified lookup fields, which means these are the values stored in the non-qualifiers. You have to select & add them (Selected Lookup Records). The qualifiers become enabled. Now you an add values to them.
You can either use an existing Address type or add a record to the Qualified-Lookup Table from here. We can add and remove types of addresses -- a main table record may have any number of any type of address. When we add a type, for example "Favourite Restaurant Address"(say), we can enter information for the qualifiers, those field which make sense only when connected to a main table record and a non-qualifier. If we add two "Home" addresses each can have it's own values for the City, Street, Country, State and Postal Code qualifier fields
To answer 2nd part of your Q - "<i>And where are those qualifier values stored, in the main table or in the qualified table itself?</i>"
Qualifiers are database subfields that apply not to the qualified table record by itself, but <b>rather to each association of a qualified table record with a main table record.</b>
Hope this helped your cause. Please mark helpful answers.
Regards,
Siddharth Sharma. -
Using Import Man to load Data into Multi Value Fileds in a Qualified Table
Hi there,
When using the Import Manager, i can not use the "append" option to load data into my multi value field which is contained within my qualified table.
Manually it works fine on Data manager, so the field has been set up correctly. Only problem is appending the data during Import Manager Load.
Any reason why I do not have this option available during Field mapping in Import Manager. The selection options are shown but in gray.
Would appreciate any sugestions.
Chris HuggettThanks Sowseel
Its a good document but doesn't address my problem, maybe My problem isn't clear.
The structure(part of) that I have currently is as follows.
Main Table - Material
QFTable- MNF PN
LUField - MNF Name(Qualifier Single Value)
LUField - BU ID (Non Qualifier Multi Value)
TField - P/N- (Non Qualifier)
I know how to load data to the main and qualified tables, but what I can not do, using Import Manger, is updating the "LUField - BU ID (Non Qualifier Multi Value)" using the append functionality.
Thanks
Chris Huggett -
Need to create search help for parameter 2 based on values in parameter1
hi Specialists,
I need to create a search help for parameters field 2 ( Country ) based on the values the user inputs in parameters field 1 ( Currency ). The values of field Currency & Country will come from T001 table.
The logic is : Based on a unique currency value ( fetched from T001 table ) user needs to get/see all Countries on his selection -screen.
Can you guys let me know which FM can I use for above & how to pass various values i.e. parameters into that FM. EXplanation with an example/code is highly appreciable.
Thanks
Abhinav.Hi Abhinav,
Use this demo code, its working:-
This code selects sale document item based on the user entry for sales document on the screen field.
REPORT ztg_f1f4.
CALL SCREEN 1010.
*& Module GET_F4_HELP INPUT
* text
MODULE get_f4_help INPUT.
TYPES : BEGIN OF it,
posnr TYPE zvbap-posnr,
END OF it.
DATA : itab TYPE STANDARD TABLE OF it WITH HEADER LINE,
tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,
vbeln TYPE zvbap-vbeln.
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.
MOVE 'ZVBAP-VBELN' TO tb_dynpfields-fieldname. "screen field name
APPEND tb_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = 'ZTG_F1F4'
dynumb = '1010'
* TRANSLATE_TO_UPPER = ' '
* REQUEST = ' '
* PERFORM_CONVERSION_EXITS = ' '
* PERFORM_INPUT_CONVERSION = ' '
* DETERMINE_LOOP_INDEX = ' '
* START_SEARCH_IN_CURRENT_SCREEN = ' '
* START_SEARCH_IN_MAIN_SCREEN = ' '
* START_SEARCH_IN_STACKED_SCREEN = ' '
* START_SEARCH_ON_SCR_STACKPOS = ' '
* SEARCH_OWN_SUBSCREENS_FIRST = ' '
* SEARCHPATH_OF_SUBSCREEN_AREAS = ' '
TABLES
dynpfields = tb_dynpfields
* EXCEPTIONS
* INVALID_ABAPWORKAREA = 1
* INVALID_DYNPROFIELD = 2
* INVALID_DYNPRONAME = 3
* INVALID_DYNPRONUMMER = 4
* INVALID_REQUEST = 5
* NO_FIELDDESCRIPTION = 6
* INVALID_PARAMETER = 7
* UNDEFIND_ERROR = 8
* DOUBLE_CONVERSION = 9
* STEPL_NOT_FOUND = 10
* OTHERS = 11
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
vbeln = tb_dynpfields-fieldvalue.
ENDIF.
SELECT posnr FROM zvbap
INTO TABLE itab
WHERE
vbeln = vbeln.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'POSNR'
* PVALKEY = ' '
dynpprog = 'ZTG_F1F4'
dynpnr = '1010'
dynprofield = 'POSNR'
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = itab
* FIELD_TAB =
* RETURN_TAB =
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_FOUND = 2
* OTHERS = 3
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " GET_F4_HELP INPUT
Hope this solves your problem.
Thanks & Regards,
Tarun Gambhir -
Multi Value Lookup Save Problem
Hi,
I am trying to save records in Multi value look up table. The problem is that only the last record is getting saved.
Can anyone please help?
Regards,
SrutiHi Deepti,
Qualified Lookups are always Multivalued and no specific property has to be enabled atleast within MDM to make it Multivalued.
By selecting The Qualified Lookup table Multivalued,It should allow you to save Multiple NQ values for a given record.
You can have a look at the below link to know about the Java methods provided to work with MDM:
http://help.sap.com/javadocs/MDM/SP05/(Java api programs)
https://help.sap.com/javadocs/MDM/current/index.html (java api codes)
Hope It Helped
Thanks & Regards
Simona Pinto -
For some business requirements, users want to extract values from a multi-value enabled lookup column
and add items to another list based on each separate value. In contrast, others want to find duplicate values in the list and merge associated values to a multi-value enabled column and then
add items to another list based on the merged value. All of these can be achieved using SharePoint Designer 2013 Workflow.
How to extract values from a multi-value enabled lookup column and add items to another list based
on each separate value using SharePoint Designer 2013.
Important actions: Loop Shape; Utility Actions
Three scenarios
Things to note
Steps to create Workflow
How to merge values to a multi-value enabled column and add item to another list based on the
merged value using SharePoint Designer 2013.
Important actions: Call HTTP Web Service; Build Dictionary
Things to note
Steps to create Workflow
How to
extract values from a multi-value enabled lookup column and
add items to another list based on each separate value using SharePoint Designer 2013.
For example, they have three lists as below. They want to
extract values from the Destinations column
in Lookup2 and add items to Lookup3 based on each country and set Title to current item: ID.
Lookup1:
Title (Single line of text)
Lookup2:
Title (Single line of text), Destinations (Lookup; Get information from: Lookup1 in Title column).\
Lookup3:
Title (Single line of text), Country (Single line of text).
Important action
1. Loop Shape: SharePoint Designer 2013 support two types of loops: loop n times and loop with condition.
Loops must also conform to the following rules:
Loops must be within a stage, and stages cannot be within a loop.
Steps may be within a loop.
Loops may have only one entry and one exit point.
2. Utility Actions: It contains many actions, such as ‘Extract Substring from Index of String’ and ‘Find substring in String’.
Three scenarios
We need to loop through the string returned from the look up column and look for commas. There are three
scenarios:
1. No comma but string is non-empty so there is only one country.
2. At least one comma so there is at least two or more countries to loop.
3. In the loop we have consumed all the commas so we have found the last country.
Things to note
There are two things to note:
1. "Find string in string (output to Variable:index)" will return -1 if doesn't find
the searched for string.
2. In the opening statement "Set Variable: Countries to Current Item:Destinations" set the return
field as "Lookup Values, Comma Delimited".
Steps to create Workflow
Create a custom list named Lookup1.
Create a custom list named Lookup2, add column: Destinations (Lookup; Get information from: Lookup1 in Title column).
Create a custom list named Lookup3, add column: Country (Single line of text).
Create a workflow associated to Lookup2.
Add conditions and actions:
Start the workflow automatically when an item is created.
Add item to Lookup2, then workflow will be started automatically and create multiple items to lookup3.
See the below in workflow History List:
How to merge values to a multi-value enabled column and add item to another list based on the
merged value using SharePoint Designer 2013
For example, they have three lists as below. They want to find duplicate values in the Title column in
Lookup3 and merge country column to a multi-value enabled column and then add item to lookup2 and set the Title to Current Item: Title.
Lookup1:
Title (Single line of text)
Lookup3:
Title (Single line of text), Country (Single line of text).
Lookup2:
Title (Single line of text), Test (Single line of text).
Important actions
"Call HTTP Web Service"
action: In SharePoint 2013 workflows, we can call a web service using a new action introduced in SharePoint 2013 named Call HTTP Web Service. This action
is flexible and allows you to make simple calls to a web service easily, or, if needed, you can create more complex calls using HTTP verbs as well as allowing you to add HTTP headers.
“Build Dictionary"
action:
The Dictionary variable type is a new variable type in the SharePoint 2013 Workflow.
The following are the three actions specifically designed for the Dictionary variable type: Build Dictionary, Count Items in a Dictionary and Get an Item from a Dictionary.
The "Call HTTP Web Service" workflow action would be useless without the new "Dictionary" workflow action.
Things to note
The
HTTP URI is set to https://sitename/_api/web/lists/GetByTitle('listname')/items?$orderby=Id%20desc and the HTTP method is set to “GET”. Then the list will be sort by Id in descending order.
Use Get
d/results(0)/Id form
Variable: ResponseContent (Output to
Variable: maxid) to get the Max ID.
Use Set
Variable: minid to Current List:ID to get the Min ID.
Use Copy from
Variable: destianation , starting at
1 (Output to
Variable: destianation) to remove the space.
Steps to create Workflow
Create a custom list named Lookup1.
Create a custom list named Lookup2, add column: Test (Single line of text).
Create a custom list named Lookup3, add column: Country (Single line of text).
Create a workflow associated to Lookup3.
Add a new "Build Dictionary" action
to define the http request header:
Add a Call HTTP Web Serviceaction, click on
this and paste your http request.
To associate the
RequestHeader variable, select the Call action property,
set the
RequestHeaders property to
RequestHeader:
In the Call action, click on
response and associate the response to a new
variable: ResponseContent (of type Dictionary).
After the Call action add Get item from Dictionary action to get the Max ID.
Add Set Workflow Variable action to get the Min ID.
Add Loop Shape (Loop with Condition) to get all the duplicate titles and integrate them to a string.
Create item in Lookup2.
The final Stage should look like this:
Start the workflow automatically when an item is created.
Add item to Lookup3, then workflow will be started automatically and create item to lookup2.
See the below in workflow History List:
References
SharePoint Designer 2013 - Extracting values from a multi-value enabled lookup column into a dictionary as separate items:
http://social.technet.microsoft.com/Forums/en-US/97d34468-1b53-4741-88b0-958472f8ca9a/sharepoint-designer-2013-extracting-values-from-a-multivalue-enabled-lookup-column-into-a
Workflow actions quick reference (SharePoint 2013 Workflow platform):
http://msdn.microsoft.com/en-us/library/jj164026.aspx
Understanding Dictionary actions in SharePoint Designer 2013:
http://msdn.microsoft.com/en-us/library/office/jj554504.aspx
Working with Web Services in SharePoint 2013 Workflows using SharePoint Designer 2013:
http://msdn.microsoft.com/en-us/library/office/dn567558.aspx
Calling the SharePoint 2013 Rest API from a SharePoint Designer Workflow:
http://sergeluca.wordpress.com/2013/04/09/calling-the-sharepoint-2013-rest-api-from-a-sharepoint-designer-workflow/GREAT info, but it may be helpful to note that when replacing a portion of the variable "Countries" with a whitespace character, you may cause the workflow to fail in a few specific cases (certain lookup fields will not accept this and will automatically
cancel). I only found this out when recreating your workflow on a similar, but much more complex list set.
To resolve this issue, I used another utility action (Extract Substring from Index of List) to clear out the whitespace. I configured it as "Copy from
Variable: Countries, starting at
1 (Output to Variable: Countries), which takes care of this issue in those few cases.
Otherwise, WOW! AWESOME JOB! Thanks! :) -
Display Blank Tablix when using multi value parameter in SSRS 2008 R2
I have a main report which contains tablix1 and tablix2. Tablix1 is using DataSet1 and Tablix2 is using DataSet2. I have a multi value parameter set up with 71 items to choose from. My company owns 71 convenience stores and what I am doing is comparing sales
for a hard coded date in DataSet1 versus a hard coded date in DataSet2, sales for the same date 1 year ago. Pretty simple, works great when both datasets return data. However, we have a store that we opened up about 4 months ago. The data is displayed
in Tablix1, but since the store did not exist 1 year ago, there is no data for Tablix2. I have tried the "No Row Message" and Repeating Column and Row Headers, etc. When I choose all stores that existed last year, the report runs great. When I choose
a store that existed last year and our new store (#39) that did not, the report messes up. The below image, you can see Tablix1 is good, but Tablix2 should be blank and only show the column headers. Instead it moved Store #40's Tablix1 beside it. If I
run the report and just select store #39, Tablix1 runs as it should and Tablix2 shows The column headers and a blank row. It disappears as soon as I select multiple values.
When you click the next page button, you will see Store 40's Tablix2 where it's Tablix1 should be and then a blank space where Tablix2 should be.Hi BassMan75,
According to your description, there is a main report with subreport, since the store did not exist one year ago, there is no data for the subreport. You want to show tablix grid even through there is no data in subreport, right?
Report data comes from datasets, if there is no corresponding value in the dataset, only column headers will be displayed in the report, we could not set the rows to blank, so we can’t achieve your goal directly. As a workaround, we can put one text box
in the report with the message: No data for the store. In this way, if there is no data meets search condition, the message will be displayed in the report. Please refer to the following steps:
Click and select the tablix.
In Properties window, in No Rows section, in NoRowsMessage text box, type No data for the store.
If you have any more questions, please feel free to ask.
Thanks,
Wendy Fu
Wendy Fu
TechNet Community Support -
OpenDocument.aspx - pass multi value parameter when report type is actx
We are running Crystal Reports XI R2 against a business objects infoview server.
We have been successfully using the OpenDocuments method for opening crystal reports but have run into a snag. When using a multi-value parameter, we can only get it to work when the viewer is set to HTML. Setting to ActiveX prompts us to enter in the parameter values manually.
This address works (using sViewer=HTML):
http://vsx2af0x/businessobjects/enterprise115/infoview/scripts/opendocument.aspx?sType=rpt&sViewer=html&lsMpSiteIDs=[1235880],[1235891],[1235902],[1235913]&sPath=[Development][CGIS][Intranet Mapping][COS_Base]&sDocName=DetailedSite&sRefresh=Y
This address does not work (using sVIewer=actx):
http://vsx2af0x/businessobjects/enterprise115/infoview/scripts/opendocument.aspx?sType=rpt&sViewer=actx&lsMpSiteIDs=[1235880],[1235891],[1235902],[1235913]&sPath=[Development][CGIS][Intranet Mapping][COS_Base]&sDocName=DetailedSite&sRefresh=Y
Any thoughts on the problem?As I understand what you need is to use LookupSet function.
Suppose if your dataset is like this (for simplicity I'm showing only required fields)
PersonID Project Company
ID1 P1 C1
ID1 P2 C1
ID1 P3 C2
ID1 P4 C2
ID1 P5 C3
If you want to get the full project list for the person just send the PersonID alone and filter using it in the subreport. You can keep the project/company parameters optional in that case and put a default value. This would be the easiest thing.
Now if you want pass the project parameter also you need to pass it like this
=Join(LookupSet(Fields!Person.Value,Fields!Person.Value,Fields!Project.Value,"DatasetName"),",")
This would act like a self lookup and return you full list of projects for the person and then you can use this to set the parameter value in the subreport.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My MSDN Page
My Personal Blog
My Facebook Page -
Does Access 2013 Web App support multi-value lookup fields?
I hope someone can please help me with this as I've not been able to find the answer by searching this site, nor elsewhere on the web. I have Access 2013 open connected to my web app on Sharepoint Skydrive with a table open in 'edit table' mode. When I add
a new lookup field I don't see any option to make it a multi-value lookup field. Is there no support for that in web apps or am I doing something wrong?
Cheers, Henk.
Cheers, Henk.This is what I use in the Parent RowSource:
This in the parent child relationship
In the row source query from the child, I have a simular expression. By inverting the boolean 'childToggler' I can force the child-form to requery. Because the boolean is in the session table record (which is part of the child form recordsource query as
well), the boolean will be inverted in both and won't disrupt the relationship.
Besides the toggler this relationship only contains an ID with preceding zero's, but the expression can contain pretty much everything. -
Read data from MDM For Lookup and Flat table using MDM ABAP API
Hi,
I have requriment to read data from MDM from FLAT and Lookup table using MDM ABAP API. My design is like this ,
I have one ITEMS (Main table in MDM) and inside that i have one Lookup flat table ITEM_TYPE , my requriment is to read Item number and its related Item type.
From ABAP.
Please help if any body has any idea.
Regards,
ShyamHI Guys,
I found my solution by myself. Below is the solution , hope this will help others:-
Retrieve data from MDM using MDM ABAP API.
Step- 1. Create structure in SAP with the same name as that of MDM field code for MDM Main table.
Step-2. Create another structure in SAP having all lookup fields of MDM , fieldname in ECC must be same as that of MDM field
code.
Step-3.Create structure in SAP for individual lookup field(Single Field only) with the same name as MDM Field code.
Step-4.
DATA: IT_QUERY TYPE STANDARD TABLE OF MDM_QUERY, "MDM_QUERY_TABLE,
WA_QUERY TYPE MDM_QUERY,
WA_CDT_TEXT TYPE MDM_CDT_TEXT,
IT_RESULT_SET_KEY TYPE MDM_SEARCH_RESULT_TABLE,
WA_RESULT_SET_KEY TYPE MDM_SEARCH_RESULT,
WA_STRING TYPE STRING.
DATA:<Internal table> TYPE STANDARD TABLE OF <SAP Str Having all LOOKup Fields>
DATA: :<Internal table>TYPE STANDARD TABLE OF <SAP Str one LOOKup field>,
<Workarea> LIKE LINE OF :<Internal table>.
*PASS LOGICAL OBJECT NAME.
V_LOG_OBJECT_NAME = 'Logical object name defined in Customization'.
Define logon language, country & region for server
WA_LANGUAGE-LANGUAGE = 'eng'.
WA_LANGUAGE-COUNTRY = 'US'.
WA_LANGUAGE-REGION = 'USA'.
TRY.
CREATE OBJECT LR_API
EXPORTING
IV_LOG_OBJECT_NAME = V_LOG_OBJECT_NAME.
ENDTRY.
CONNECT to repository. Apply particular logon language info
CALL METHOD LR_API->MO_ACCESSOR->CONNECT
EXPORTING
IS_REPOSITORY_LANGUAGE = WA_LANGUAGE.
*NOW PASS ITEM NO AND GET KEY FROM MDM.
CLEAR WA_QUERY.
WA_QUERY-PARAMETER_CODE = <MDM FIELD CODE>. "Field code
WA_QUERY-OPERATOR = 'EQ'. "Contains
WA_QUERY-DIMENSION_TYPE = 1. "Field search
WA_QUERY-CONSTRAINT_TYPE = 8. "Text search
WA_STRING = <Field Value>.
GET REFERENCE OF WA_STRING INTO WA_QUERY-VALUE_LOW.
APPEND WA_QUERY TO IT_QUERY.
CLEAR WA_QUERY.
*PASS ITEM NUMBER AND GET RELATED KEY FROM MDM.
TRY.
CALL METHOD LR_API->MO_CORE_SERVICE->QUERY
EXPORTING
IV_OBJECT_TYPE_CODE = <MDM Main Table>
IT_QUERY = IT_QUERY
IMPORTING
ET_RESULT_SET = IT_RESULT_SET_KEY.
CATCH CX_MDM_COMMUNICATION_FAILURE .
CATCH CX_MDM_KERNEL .
CATCH CX_MDM_NOT_SUPPORTED .
CATCH CX_MDM_USAGE_ERROR .
CATCH CX_MDM_PROVIDER .
CATCH CX_MDM_SERVER_RC_CODE .
ENDTRY.
Pass record id into keys.
LOOP AT IT_RESULT_SET_KEY INTO WA_RESULT_SET_KEY.
WA_KEYS = WA_RESULT_SET_KEY-RECORD_IDS.
ENDLOOP.
WA_RESULT_SET_DEFINITION-FIELD_NAME = <Look field name>.
APPEND WA_RESULT_SET_DEFINITION TO IT_RESULT_SET_DEFINITION.
CALL METHOD LR_API->MO_CORE_SERVICE->RETRIEVE
EXPORTING
IV_OBJECT_TYPE_CODE = <MDM Main Table>
IT_RESULT_SET_DEFINITION = IT_RESULT_SET_DEFINITION
IT_KEYS = WA_KEYS
IMPORTING
ET_RESULT_SET = IT_RESULT_SET.
LOOP AT IT_RESULT_SET INTO
WA_RESULT_SET.
*PASS KEYS INTO MAIN TABLE TO GET Structure for FALT or Look up Table
TRY.
CALL METHOD LR_API->MO_CORE_SERVICE->RETRIEVE_SIMPLE
EXPORTING
IV_OBJECT_TYPE_CODE = <MDM Main Table>
IT_KEYS = WA_KEYS
IMPORTING
ET_DDIC_STRUCTURE =<SAP Strct having all Look up fileds of MDM>
ENDTRY.
LOOP AT <SAP Strct having all Look up fileds of MDM> INTO <Work area>.
CLEAR WA_KEYS.
APPEND <Work area>-field name TO WA_KEYS.
CALL METHOD LR_API->MO_CORE_SERVICE->RETRIEVE_SIMPLE
EXPORTING
IV_OBJECT_TYPE_CODE = <MDM Lookup table name>
IT_KEYS = WA_KEYS
IMPORTING
ET_DDIC_STRUCTURE = <Single Structure in SAP For Lookup field>.
READ TABLE <Single Structure in SAP For Lookup field>. INTO <Work Area> INDEX 1.
Here you can get the value of realted lookup fields associated with main table data.
ENDLOOP.
ENDLOOP.
LR_API->MO_ACCESSOR->DISCONNECT( ).
Edited by: Shyam Babu Sah on Nov 24, 2009 4:52 AM -
Reporting Services Multi Value Parameter
I have an SSRS 2005 report that I want to enable for multi value. However, I always run into the issue with the way it passes multiple values. How exactly do I get a multi-value parameter setup and working on both the report AND SQL side?
I used the MS example of checking the multi checkbox for the parameter and then using a WHERE Column IN (@MultiParam), but this doesn't work. When you select one item, or is it multiple I can't remember, it fails. I really appreciate the help!
Nathon Dalton
Software Developer
Systems Administrator
Network Administrator
Blog: http://nathondalton.wordpress.comHere's a sample of the SQL stored procedure that I use to get the dataset:
Create
proc [dbo].[spStoredProcName]
@supervisor
varchar(max)
as
begin
create
table #tempSups
Supervisor
varchar(62)
declare
@i
int
select
@i = 0
select
@i =
charindex(',',@supervisor
begin
if @i
<> 0
while @i
>0
begin
insert
into #tempSups
values
(ltrim(rtrim(left(@supervisor,
@i-1))))
select @supervisor
=
right(@supervisor,
len(@supervisor)
- @i)
select @i
=
charindex(',',
@supervisor)
end
end
insert
into #tempSups
values
(ltrim(rtrim(@supervisor)))
From there, simply join your query to the temp table
Maybe you are looking for
-
How to distinguish NULL and Empty Strings
Hi, Just to set the context right; I'm an experienced C programmer trying labview for the first time. As such I ran in to a problem being that Labview has no concept of NULL-pointers and more specifically appears to have no concept of the difference
-
Today, my Mac Mini G4 does not get to the login screen on boot. It shows the grey apple on the white screen but doesn't get any further (and gets quite warm). Help, what should I do to troublshoot? The grey spinny thing is spinning.
-
IPhone stays on Edge even though secure wifi is present and connected
My phone connects to unsecure wifi fine. If I try and connect to a secure network, enter the correct ID, the phone says I'm connected and I get the wireless symbol for about a minuit before it switches back to Edge. Unsecure wifi networks no problem.
-
Regarding short dump ASSERTION_FAILED
Hi I tried to delete info object characteristcs from Info object from transaction RSA1. it gives short dump. pls advice how to avoid this. "ASSERTION_FAILED" " " "CL_RSAWBN_OBJ_IOBC_IOBJTREE===CP" or "CL_RSAWBN_OBJ_IOBC_IOBJTREE===CM002" "GET_IOBC" T
-
Adding music to ipod nano from itunes library
PLEASE HELP -- an ipod is connected to itunes on my windows pc and the window lights up o.k.. i want to add the itunes library to the ipod.. when i drag a title to the ipod name, i see the circle/slash symbol telling me its no good.. i have ripped th