Display 100,000 rows in Table View

Hi,
I am in receipt of a strange requirement from a customer, who wants a report which returns about 100,000 rows which is based on a Direct Database Request.
I understand that OBIEE is not an extraction tool, and that any report which has more than 100-200 rows is not very useful. However, the customer is insistent that such a report be generated.
The report returns about 97,000 rows and has about 12 columns and is displayed as a Table View.
To try and generate the report, i have set the ResultRowLimit in the instanceconfig.xml file to 150,000 and restarted the services. I have also set the query limits in the RPD to 150,000, so this is not the issue as well.
When running the report, the session log shows the record count as 97,452 showing that all the records are available in the BI Server.
However, when i click on the display all the rows button at the end of the report, the browser hangs after about 10 minutes with nothing being displayed.
I have gone through similar posts, but there was nothing conclusive mentioned in them. Any input to fix the above issue will be highly appreciated.
Thanks,
Ab
Edited by: obiee_user_ab on Nov 9, 2010 8:25 PM

Hi Saichand,
The client wants the data to be downloaded in CSV, so the row limit in the Excel template, that OBIEE uses is not an issue.
The 100,000 rows that are retrieved is after using a Dashboard Prompt with 3 parameters.
The large number of rows is because these are month end reports, which is more like extraction.
The customer wants to implement this even though OBIEE does not work well with large number of rows, as there are only a couple of reports like this and it would be an expensive proposition to use a different reporting system for only 3-4 reports.
Hence, i am on the lookout for a way to implement this in OBIEE.
The other option is to directly download the report into CSV, without having to load all the records onto the browser first. To do the same, i read a couple of blog entries, but the steps mentioned were not clear. So any help on this front will also be great
Thanks,
Ab

Similar Messages

  • MatchCode for 100.000 rows = dump

    Hi!
    I use FM F4IF_INT_TABLE_VALUE_REQUEST for a personal matchcode in a dynpro field.
    But if the internal table has got 100.000 rows, the system dump.
    How can I do for display the match code without dump?
    Thanks very much!

    A matchcode where you have more than 100.000 rows is not a good matchcode !
    You should provide at least some criterion to restrict the list. The maximum number of hits is only 4 digits in SAP and you should always restrict your list according to this maximum
    you do this by adding to your SELECT statement:
    up to callcontrol-maxrecords rows

  • How to get color in the final row of table view( table control)

    Hi,
    iam having a table control displayed with 10 records as output,in that i need to provide a color for the final row since it is total inorder to show difference from other records.
    Kindly advise me on this.
    Thanks & Regards,
    Nehru.

    Hi Nehru,
    Checkout [THIS|Re: set color for a particular row in table view] thread .
    [This |http://www.sapdesignguild.org/resources/htmlb_guidance/table.html#at] Might also help you.
    Regards,
    Anubhav
    Edited by: Anubhav Jain on Jan 4, 2009 7:34 AM

  • How to Hide Row in table view depend on condition

    Dear Friends,
    Please any one suggest how to do hide some rows in table depend on condtions.
    My Issue is :
    I have table with binding componant context controller, with in that some rows are no need to disply in my table, I tried to delete that entities from collection wrapper in do_prepare_output. but that entites are perminatly deleted from model node.
    how can achive this with out delete entities from model node and hide some rows in table view.
    thanks & Regards

    Hi Andrew,
    Please can you explain alobrate, because i wont' found that method in my implimentation and it's table config like follow
    <% IF attr->check_consistency( ) eq abap_true. %>
        <chtmlb:configTable  xml="<%= lv_xml %>"
                             id="TextList"
                             navigationMode="BYPAGE"
                             onRowSelection="select"
                             table="//Text/Table"
                             width="100%"
                             selectedRowIndex="<%=Text->SELECTED_INDEX%>"
                             selectedRowIndexTable="<%=Text->SELECTION_TAB%>"
                             selectionMode="<%=Text->SELECTION_MODE%>"
                             usage="ASSIGNMENTBLOCK"
                             visibleRowCount="3"/>
      <% ENDIF. %>
    thanks & Regards
    Ganesh

  • Adding a button in each row of table view

    Hi.
    In my application i have to add a button in each row of table view. i have done this by using UICatalog example. now problem is how I can handle the click events of these buttons.
    suppose i have 5 buttons in 5 rows ... now one of them is clicked(suppose button in 3rd row). how would i know that button in 3rd row is clicked.
    Muhammad Usman Aleem

    - (UITableViewCell)tableView:(UITableView)tableView
    cellForRowAtIndexPath:(NSIndexPath*)indexPath {
    static NSString *CellTableIdentifier = @"CellTableIdentifier ";
    static NSUInteger nTag = 100;
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
    CellTableIdentifier];
    if (cell == nil) {
    CGRect cellFrame = CGRectMake(0, 0, 300, 65);
    cell = [[[UITableViewCell alloc] initWithFrame:cellFrame
    reuseIdentifier:CellTableIdentifier] autorelease];
    CGRect labelRect = CGRectMake(10, 26, 190, 15);
    UILabel *label = [[UILabel alloc] initWithFrame:labelRect];
    label.textAlignment = UITextAlignmentLeft;
    label.font = [UIFont boldSystemFontOfSize:12];
    // set all label tags to 10 so the label can be found in the subviews
    label.tag = 10;
    [cell.contentView addSubview:label];
    [label release];
    CGRect buttonRect = CGRectMake(210, 25, 65, 25);
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = buttonRect;
    // set the button title here if it will always be the same
    [button setTitle:@"Action" forState:UIControlStateNormal];
    button.tag = nTag++;
    [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
    // make sure the button is the lowest subview so it's easy to find
    [cell.contentView insertSubview:button atIndex:0];
    // button will be autoreleased so don't release it here
    // the label text and button title come from an array of NSDictionary in this example
    NSUInteger row = [indexPath row];
    NSDictionary *rowData = [self.data objectAtIndex:row];
    UILabel *thisLabel = (UILabel*)[cell.contentView viewWithTag:10];
    thisLabel.text = [rowData objectForKey:@"Text"];
    // set the button title here if it depends on the row
    UIButton *thisButton = [[cell.contentView subviews] objectAtIndex:0];
    [thisButton setTitle:[rowData objectForKey:@"Button"] forState:UIControlStateNormal];
    return cell;
    - (IBAction)myAction:(id)sender {
    UIButton *theSender = sender;
    UITableViewCell *cell;
    NSUInteger row = 0;
    for (cell in [theTableView visibleCells]) {
    UIButton *thisButton = [[cell.contentView subviews] objectAtIndex:0];
    if (thisButton.tag == theSender.tag) {
    row = [[theTableView indexPathForCell:cell] row];
    break;
    NSLog(@"myAction: row=%d", row);

  • Limit No of Rows in Table View

    Hi All,
    I have a requirement like in a table view report i need to limit the no of rows to 100. If the no of rows in report exceeds 100 then the end sure should get message like " No of rows exceeded the limit, Please modify the seach criteria".
    If any one has done this kind of requirement please let me know.
    Thanks in advance
    Regards,
    Shanx

    Set the <ResultRowLimit> to 100 in the instanceconfig:
    <ResultRowLimit>100</ResultRowLimit>
    this ia a system wide config, else play around with the COUNT function.
    regards John
    http://obiee101.blogspot.com/

  • Navigating to new row in table view

    Hi,
    I have a table view which displays only 10 rows in one screen. When there are more than 10 rows, links are displayed to navigate to other pages. If 'new' button is pressed, a new row is created at the end of the table. If there are multiple pages and user presses 'new' when she/he is in the first page, the user cannot view the new row until she/he navigates to the last page. My problem is, I need to automatically navigate to the last row where the new row is displayed. How can I do that?
    Regards,
    Rohan.

    Hi Rohan,
    I thought that this could be achived by setting the row index to be focussed to the attribute 'selected_index' of the table view. But this was not working when I tried in debugging.
    Easier option will be to insert a new row at the starting of the table view.
    Most of the standard views work that way.
    Regards,
    Masood Imrani S.

  • Restrict number of rows in table view

    Can a table view has only as many rows as the actual rows in the underlying data structure. Actually, I have a table view with less than 5 rows, but the tableview shows like 15+ rows with the rest of the rows as blank(alternative colors for each empty rows). I know there is a style which can be applied to make the remaining empty rows show with white background. However, the height of the table view doesn't reduce to show only the actual number of rows. Is there a way we can restrict the height of the table view to the height of actual rows it has?
    Thanks.

    Hi. Add a listener to your data. Use prefheight to restrict the table height:
            table.setPrefHeight(data.size() * 25 + 25);  
            data.addListener(new ListChangeListener<Person> ()  {
                public void onChanged(ListChangeListener.Change<? extends Person> c) {
                   table.setPrefHeight(data.size() * 25 + 25);
            });It works only when data.size() * 25 + 25 < scene.height

  • MVC Event Handling with different rows of table view

    When i select a value called ' Herrforth' in the drop down list box of first column first row of the table view, in the form_fields table of do_handle_data i get the following
    name         value
    1 htmlbscrol<0 |
    2 htmlbscrol<0 |
    3 htmlbdoc_i<ComponentTest |
    4 sap-htmlb-< |
    5 tray1-es |1 |
    6 tv1_1_1 |Herrforth |
    7 tv1_pager_<1 |
    8 tv1_rowcou<10 |
    9 tv1_allcol<VORNA/PERSNO/KOSTL/ABTKZ/WERKS/ |
    10 tv1-ts |LINEEDIT |
    11 tv1_visibl<1 |
    12 tv1-chk |1 |
    13 tv1-prevch<1 |
    14 tv1__selec<tv1_selrow_1 | 15 tabstrip1_<2 |
    16 tabstrip1_<1 |
    17 tabstrip1_<1 |
    where 'tv1' is the id of table view. In the do_handle_data now i have written as Nachn = request->get_form_field( 'tv1_1_1' ). " so that the selected value in dropdown is stored in the variable nachn but note that this is when i select the first row first column dropdown listbox. when i select a value in the dropdown list box of 2nd row event name is tv1_2_1. so how will i retrive this value of listbox in 2nd row.similarly when selecting values in drop down listboxes of other rows. In do_handle_event i have written
    WHEN 'tv1_1_1'.
    CLEAR it_table1.
    model->selectempdetails( ).
    it_table2 = model->it_table2.
    LOOP AT it_table2 ASSIGNING <lf_table2> WHERE nachn = nachn ." nachn value i am getting in do_handle_data using Nachn = request->get_form_field( 'tv1_1_1' ).
    wa_table2-persno = <lf_table2>-persno.
    wa_table2-nachn = <lf_table2>-nachn.
    APPEND wa_table2 TO it_table1.
    ENDLOOP.
    DO 10 TIMES .
    wa_table2-persno = ' '.
    wa_table2-nachn = ' '.
    APPEND wa_table2 TO it_table1 . " it_table1 is the table attribute of table view 'tv1'.
    ENDDO .
    ENDCASE.
    Thanks & Regards,
    Renju.

    Hi Ravikiran,
    I am having a tableview in which the first column is an input field.
    I am getting the the value entered in the input field of table view in do_handle_event but note that i am trying to get the value using key board event ('ENTER'.
    How can i get the id of which input field of Tableview i have enterd the value so that i could write in do_handle_event.
    eg:if tableview id is 'tv' and the first column of tableview is an inputfield.
    If i am enering value in first row first column of tableview its id is tv_1_1.So that i could write in  do_handle_event as
    case.
    when 'tv_1_1'.
    endcase.
    If i am enering value in second row first column of tableview its id is tv_2_1.So that i could write in  do_handle_event as
    case.
    when 'tv_2_1'.
    endcase.
    but instead of writing this seperately how could i get the id of inputfield dynamically.Note here the event here is keyboard event 'ENTER'.
    Thanks & Regards,
    Renju.

  • Rows of table view in Bold

    Hi Experts,
    I am using a table view, where I need some of the rows to be printed as bold(Emphasized) and the rest as normal text (e.g. BOM mateiral, headers in bold and the items as normal ). In text view this can be acheived easily by the design parameter.
    How this can be achived in tableview. Whether i will need to use the replacement bee concept?

    Hi Suthy,
    you can user the P_STYLE changing parameter in the RENDER_CELL_START method of an iterator.
    There are some limitations. The documentation can be found at http://help.sap.com/saphelp_nw04/helpdata/en/28/4bae407e69bc4ee10000000a1550b0/frameset.htm.
    Here is some code I used recently to give you an idea how to do it.
    METHOD if_htmlb_tableview_iterator~render_cell_start.
      CASE p_column_key.
        WHEN 'VTEXT'.
          CASE m_row_ref->pstyv.
            WHEN 'VORJ'.
              p_style = 'celldesign:GROUP_LEVEL1'. "Blue
            WHEN 'VORA'.
              p_style = 'celldesign:POSITIVE'. "Green
            WHEN 'TAN' OR 'TAPA'.
              p_style = 'celldesign:CRITICALVALUE_DARK'. "Orange
            WHEN OTHERS.
              p_style = 'celldesign:SUBTOTAL_LIGHT'. "Light yellow
          ENDCASE.
      ENDCASE.
    ENDMETHOD.
    Cheers
    Graham Robbo

  • How to Control the width of the Filter row in Table View

    Hi !
    I have a Table View with filter='application'. The filter works fine but I am not able to control the width of the columns of the tableview .
    On filtering, if there are not items in the table view the columns shrink to the minum width....and  it looks very odd.
    Can you help me how to control the width of the Filter-Row in Table Veiw.
    Thanks and Best Regards,
    Bindiya

    Hi Raja,
    "FIXEDCOLUMN" did not help in the width of the column, but it just showed all the rows merged in the column.
    I have a cloumn called "COUNTRY" and its width is set to "20". The Filter of the column "COUNTRY" is a dropdownlist whos value is update with new values.
    On filtering if there is any row visible then the column width is adjusted to the maxmimum length of the dropdownlist ( this is because of the "EDIT" attribute in column definition ). But if there is no rows visiblel for the selected filter value then the filter row shrinks to the width = "20" and the dropdownlist is not visible completely.
    Need to know how to control the width of the FILTER column.
    Thanks and Best Regards,
    Bindiya

  • Create Tabular Form wizard - how to add rows to Table / View Owner list?

    Create Tabular Form wizard asks to choose "Table / View Owner"
    How to add additional schemas/users to this "Table / View Owner" dropdown list?

    Next step:
    I tried to create 2nd application - and it sees and allows to select from schemas I added in previous step.
    Then I tried to add 1 more schema - and 2nd application can't see it...
    I create 3rd application and select 1st schema (assigned when workspace was created) - and it sees only this one schema
    I create 4th application and select another schema (added in previous steps) - and it sees 2 schemas from 4 assigned
    what is this?
    how to live with it?

  • Displaying large result sets in Table View u0096 request for patterns

    When providing a table of results from a large data set from SAP, care needs to be taken in order to not tax the R/3 database or the R/3 and WAS application servers.  Additionally, in terms of performance, results need to be displayed quickly in order to provide sub-second response times to users.
    This post is my thoughts on how to do this based on my findings that the Table UI element cannot send an event to retrieve more data when paging down through data in the table (hopefully a future feature of the Table UI Element).
    Approach:
    For data retrieval, we need to have an RFC with search parameters that retrieves a maximum number of records (say 200) and a flag whether 200 results were returned. 
    In terms of display, we use a table UI Element, and bind the result set to the table.
    For sorting, when they sort by a column, if we have less than the maximum search results, we sort the result set we already have (no need to go to SAP), but otherwise the RFC also needs to have sort information as parameters so that sorting can take place during the database retrieval.  We sort it during the SQL select so that we stop as soon as we hit 200 records.
    For filtering, again, if less than 200 results, we just filter the results internally, otherwise, we need to go to SAP, and the RFC needs to have this parameterized also.
    If the requirement is that the user must look at more than 200 results, we need to have a button on the screen to fetch the next 200 results.  This implies that the RFC will also need to have a start point to return results from.  Similarly, a previous 200 results button would need to be enabled once they move beyond the initial result set.
    Limitations of this are:
    1.     We need to use custom RFC function as BAPI’s don’t generally provide this type of sorting and limiting of data.
    2.     Functions need to directly access tables in order to do sorting at the database level (to reduce memory consumption).
    3.     It’s not a great interface to add buttons to “Get next/previous set of 200”.
    4.     Obviously, based on where you are getting the data from, it may be better to load the data completely into an internal table in SAP, and do sorting and filtering on this, rather than use the database to do it.
    Does anyone have a proven pattern for doing this or any improvements to the above design?  I’m sure SAP-CRM must have to do this, or did they just go with a BSP view when searching for customers?
    Note – I noticed there is a pattern for search results in some documentation, but it does not exist in the sneak preview edition of developer studio.  Has anyone had in exposure to this?
    Update - I'm currently investigating whether we can create a new value node and use a supply function to fill the data.  It may be that when we bind this to the table UI element, that it will call this incrementally as it requires more data and hence could be a better solution.

    Hi Matt,
    i'm afraid, the supplyFunction will not help you to get out of this, because it's only called, if the node is invalid or gets invalidated again. The number of elements a node contains defines the number of elements the table uses for the determination of the overall number of table rows. Something quite similar to what you want does already exist in the WD runtime for internal usage. As you've surely noticed, only "visibleRowCount" elements are initially transferred to the client. If you scroll down one or multiple lines, the following rows are internally transferred on demand. But this doesn't help you really, since:
    1. You don't get this event at all and
    2. Even if you would get the event, since the number of node elements determines the table's overall rows number, the event would never request to load elements with an index greater than number of node elements - 1.
    You can mimic the desired behaviour by hiding the table footer and creating your own buttons for pagination and scrolling.
    Assume you have 10 displayed rows and 200 overall rows, What you need to be able to implement the desired behaviour is:
    1. A context attribute "maxNumberOfExpectedRows" type int, which you would set to 200.
    2. A context attribute "visibleRowCount" type int, which you would set to 10 and bind to table's visibleRowCount property.
    3. A context attribute "firstVisibleRow" type int, which you would set to 0 and bind to table's firstVisibleRow property.
    4. The actions PageUp, PageDown, RowUp, RowDown, FirstRow and LastRow, which are used for scrolling and the corresponding buttons.
    The action handlers do the following:
    PageUp: firstVisibleRow -= visibleRowCount (must be >=0 of course)
    PageDown: firstVisibleRow += visibleRowCount (first + visible must be < maxNumberOfExpectedRows)
    RowDown/Up: firstVisibleRow++/-- with the same restrictions as in page "mode"
    FirstRow/LastRow is easy, isn't it?
    Since you know, which sections of elements has already been "loaded" into the dataSource-node, you can fill the necessary sections on demand, when the corresponding action is triggered.
    For example, if you initially display elements 0..9 and goto last row, you load from maxNumberOfExpected (200) - visibleRows (10) entries, so you would request entries 190 to 199 from the backend.
    A drawback is, that the BAPIs/RFCs still have to be capable to process such "section selecting".
    Best regards,
    Stefan
    PS: And this is meant as a workaround and does not really replace your pattern request.

  • Two radio button in each row of Table view

    Hi,
    I have a issue like two radio button should come in each row of the tableview and any one only can be selected and selected value should be assigned to a variable.
    Kindly help with coding in methods RENDOR_CELL_START AND RENDER_ROW_START.
    Thanks in Advance.
    Saravanan.

    Saravanan,
    If you keep the Radiobutton in 2 different column then it wil difficult to put it in one Radiobuttong Group. I am not sure its possible or not. I would suggest you do keep both the "Approved" & "Rejected" radio button in single column as shown below so that the memont "Rejected" is selected, "Approved" will be unchecked.
    WHEN 'Your Column'.
            DATA: RAD_GRP TYPE REF TO CL_HTMLB_RADIOBUTTONGROUP,
                     RAD_BTN  TYPE REF TO CL_HTMLB_RADIOBUTTON,
                     COL_BEE TYPE REF TO CL_BSP_BEE_TABLE.
              CREATE OBJECT COL_BEE.
              RAD_GRP = CL_HTMLB_RADIOBUTTONGROUP=>FACTORY(
                      ID = P_CELL_ID COLUMNCOUNT = '2' ).
              COL_BEE->ADD( ELEMENT = RAD_GRP LEVEL = 1 ).
              RAD_BTN ?= CL_HTMLB_RADIOBUTTON=>FACTORY( ID = '1' TEXT = 'Approved' ).
              COL_BEE->ADD( ELEMENT = RAD_BTN LEVEL = 2 ).
              RAD_BTN ?= CL_HTMLB_RADIOBUTTON=>FACTORY( ID = '2' TEXT = 'Rejected' ).
              COL_BEE->ADD( ELEMENT = RAD_BTN LEVEL = 2 ).
              P_REPLACEMENT_BEE ?= COL_BEE.
          ENDCASE.
    Again to get the selected radiobutton, use method REQUEST->GET_FORM_FIELDS
    DATA: GT_TIHTTPNVP TYPE TIHTTPNVP.
    REFRESH GT_TIHTTPNVP.
    CALL METHOD REQUEST->GET_FORM_FIELDS
      CHANGING
        FIELDS = GT_TIHTTPNVP.
    For example, suppose your 3r column has 2 radio buttons & In 1st Row if you've selected the radiobutton 2. THen get_form_fields return the below value.
    TV1_1_3 = 2. Here TV1 is tableview name & 1 - Row 1 & 3 -Column three. value 2 indicates that 2nd radio button is selected.
    DO 10 TIMES. "Here 10, stands for number of visible rows in tableview
    concantenate 'TV1' '_' sy-tabix '_' '3' into v_cell_id. "Here now v_cell_id will have TV1_1_3 for 1st row & etc..
    Read table GT_TIHTTPNVP into wa with key name = v_cell_id.
    if sy-subrc = 0.
    v_selected_rad_btn = wa-value. " THis will give you the selected radio button.
    endif.
    enddo.
    Hope this will solve your problem.
    Raja T
    Message was edited by:
            Raja Thangamani

  • How to delete certain rows from Table view

    Hi Experts,
    I need to display result on the basis of certain process type. So i have used code like below.
           lv_iterator =   me->typed_context->searchresult->collection_wrapper->get_iterator( ).
           lv_entity = lv_iterator->get_first( ).
           WHILE lv_entity IS BOUND.
             CLEAR:lv_object.
             lv_object = lv_entity->get_property_as_string( iv_attr_name = 'PROCESS_TYPE' ).
             IF lv_object <> 'XXX'.
               lr_entity ?= lv_entity.
              me->typed_context->searchresult->collection_wrapper->remove( lv_entity ).
              lr_entity->delete( ).
             ENDIF.
             lv_entity = lv_iterator->get_next( ).
           ENDWHILE.
    But only some of the entities from the collection are getting removed. Still some wrong entities exists which i cant even able to delete it by using ,
              me->typed_context->searchresult->collection_wrapper->remove( lv_entity ).
              lr_entity->delete( ).
    Am i missing anything here?
    Regards,
    Santhosh

    Hi Santhosh,
    Maybe that is happening because you're removing elements from an object (collection_wrapper) inside your loop.
    Can you try to create an collection wrapper copy by using GET_COPY method, and then use and loop the iterator on your copied object, and remove the unwanted entities on your main object?
    Kind regards,
    Garcia

Maybe you are looking for

  • BI/BO necessary for Global Spend Analysis? PI necessary for syndication?

    Hi! I have been reading about MDM and examples of how MDM can be used by companies. One is on its ability to provide accurate and consolidated data for spend analysis. I would like to find out whether the spend analysis solution is only applicable fo

  • Can I call a stored procedure from EJB?

    Hi, Can I call a regular (non-Java) stored procedure from an enterprise Java bean? Transaction is managed by the ejb application server. Thank you for your response. CT

  • Blocking issue---help

    DELETE FROM #tmpbatch WHERE batchid NOT IN (select distinct #tmpbatch.batchid  from #tmpbatch LEFT JOIN tinvoiceitem ii on ii.batchid = #tmpbatch.batchid LEFT JOIN tpaymentitem pi on pi.batchid = #tmpbatch.batchid LEFT JOIN tworkorderevent woe on woe

  • Safari keeps crashing on my ipod touch 4g

    Ever since i got my ipod touch apps would crash from time to time. Then there was an update and apps crash more and more. Soon the apps stopped crashing after a few more updates but safari crashes alot. I tried deleting all of the apps in multitaskin

  • Oracle Portal WSRP messing things up for Tapestry JSR-168 portlet?

    I've been trying to consume a Tapestry JSR-168 portlet in Oracle Portal 10.1.4. However a very simple tapestry page is (already) failing. This page displays some boilerplate text and a form component including one text input item. Upon display the fo