You can translate the question and the replies:

Unable to search through flattened array field

Hello, I have Created a Base view from a BAPI Data source In that Base View I am having three arrays as its columns array [1] is having a primary key array [2] is having details array[3] is having some more info Now these three are columns of Base view. Now when I am searching on Denodo with this array[1] I am able to get the data. its being listed in VQL as (array_name).field_name When I am creating a REST data service and searching the data on browser array_name is only being listed there So I have created a Flatten on Base View so from array[1] the field is being popped out (array_name).fieldname is now fieldname in VQL but on searching data using this as filter the data is not being searched. There are no results. Field's data type is text.
user
19-03-2015 01:42:00 -0400

8 Answers

Hi I have followed the steps described below: 1. I have created a view named "view1" with 3 columns which are 3 arrays. 2. If I run a query such as SELECT * FROM view1 WHERE (ids).id = 'd' I get the expected results. 3. If I publish the view as a REST web Service, I can browse through the data, but I can not apply the filter condition. 4. I have created a second view named "view2" flattening my ids array. So now I have a column "id" instead of (ids).id. 5. I can run queries such as SELECT * FROM view2 WHERE id = 'a' getting the expected results. 6. If I publish the view as a web service, I can query the results and apply a filter like id = 'a'. Could you tell me, if you follow this steps, where do you find your issue? Best!
Denodo Team
19-03-2015 07:32:33 -0400
Yes, I am Having Issue after Step 5 SELECT * FROM view2 WHERE id = 'a' I am not able to search data using flattened column 'id' in New view its fetching zero rows.
user
22-03-2015 22:57:19 -0400
Hi, I managed to reproduce your scenario. You can create the infrastructure described below: 1. Double click in "view1" and click on "Edit" 2. In the "Model" tab, add a new input parameter "input_id". 3. Go to "Where Conditions" tab and add the following condition: (ids).id = input_id 4. Click "Ok". 5. Create a new flatten view "flatten_view1" from "view1". Please, let me know if the "flatten_view1" works as expected for you. Hope this helps!
Denodo Team
24-03-2015 04:46:24 -0400
Few points are not clear I can add field If I am creating a new Selection right? I can add a new field under Output tab only? Right? I can't add a field without expression So I have written cast('text',null) in expression I can not add a field under where expression until it is created? correct ?
user
24-03-2015 06:13:48 -0400
Few points are not clear I can add field If I am creating a new Selection right? I can add a new field under Output tab only? Right? I can't add a field without expression So I have written cast('text',null) in expression I can not add a field under where expression until it is created? correct ?
user
24-03-2015 06:13:49 -0400
Hi! You can add new fields in a Selection view, but this is not the scenario to do that. What you need in this case is to create a "View Parameter", not a new field. There is a section in the DataPort Administration Guide named "Creating Selection Views" where you can find instructions to create a "View parameter". So the steps should be: 1. Modify the "Model" tab in your view1 to add a new input parameter "input_id". 3. Modify the "Where Conditions" tab in view1 adding the following condition: (ids).id = input_id 4. Click "Ok". 5. Create a new flatten view "flatten_view1" from "view1". Once you have created your flatten view named, "flatten_view1", you can run your queries as follows: select * from flatten_view1 where input_id = "your_id" Let me know if you have further questions. Regards
Denodo Team
24-03-2015 06:51:18 -0400
Can we create a View parameter in Trial version
user
24-03-2015 11:21:12 -0400
Hi When you mention "Trial version", if you are referring to an "Evaluation license", the answers is yes, you can create "View parameters" as described in the documentation. If you have a "Express license", the answer is no, you can not create them. Best!
Denodo Team
25-03-2015 05:15:34 -0400
You must sign in to add an answer. If you do not have an account, you can register here