Table view in EHP1 CRM 7.0

How to create a table view in ehp1 CRM.
Is it the same way by creating a view and adding value node /model node then selecting view as table view with congigurable mode?

Hi Anita,
As per your requirement, AET table enhancement will be best suited to it.
Use the help.sap.com link i gave in earlier reply to know more about  AET table enhancements.
Now to get on to this task ,
1) Use transaction AXTSYS and create an entry for Z component, give a name say ZAET_TBLEXT.
and Save. The AET Table extension, then will use this component by default( if you select the radio button there) to create the views. Remember, just give any name you desire for the component. You dont need to create this componenet. AET extension wizard will create the component automatically.
2) Open the overview page on which you would like to have the tableview as an assignment block. Since its a compititor info, i assume you want to place it on a BP/Account/Prospect. Competitor Overview Page or Opportunity Overview Page. Now chose the config button and once the Assignment blocks are highlighted, select the Header View( Compititor header or Opportunity header view depending on the overview page you are in) and config tool will open. Use the Display Enhancement button or create enhancement button and another popup will open which display the enhancements if any,
3) On this Pop up you will see the AET table extensions assignment block. Use the Add table button. Follow the wizard and create the table, mention fields, translations etc. Also mention it as 1:n relation and so the table view. Chose the Standard buttons so you get all action buttons as well as inser, editlist, delete buttons etc.
Once done, save and generate. This creates the view and also adds the component usage on overviewpage.
Now all you need to do is just configure the overviewpag to pull the new tableview assignment block from Available to Displayed blocks.
Note :
1) this creates a Ztable , name same as mentioned/defaulted while AET table enahncement
2) this create Z BOL entity with 1:n relation with Access Entity of OverviewPage , for example, BuilHeader if account overview page or BTAdminH if Opportunity overview page.
3) creates BOL strucutre, handler class etc on its own.
4) You do not need to do any coding,
Thus in half an hour, you are done with Table view enhancement with Z table based entities.
Before EhP1, we had to extend the BT/BP model with ZBOL and had to do a lot of thigs on our own. Almost 2 days job for an advance developer which is reduced to 15-20 minutes with zero coding required.
If you have a sandbox or IDES system, i would recommand you to try it there frst, get confident and then do development on your development system.
Remember ->
1) AET Enhancement tool has to be started from WEB UI - which is generally runs on Customizing client, but creating AET table and enhancements is Workbench task. So if your customizing client is locked for workbench developments, then You must run the WEBUI on your workbench client ( use transaction wui ). It does not make any difference as far as development is concerned because your development its pure Workbench activity. later, you configure the Overview Page to pull the AET table view on your customizing client.
2) Be confident and have well determined about the table design & about your table view design like the fields you need etc. because once you add the fields and mention the field type like Numeric, indicator,text etc, you can not change it later once the Tableview is generated. You can add more fields later and you can delete fields too but you can not change their type later.
All the best.
Thanks & Regards
Suchiita
Edited by: Suchita Phulkar on Jul 30, 2011 12:16 AM

Similar Messages

  • Access the nodes data in a table view (generated by aet).

    Hi all ,
    I have created a table view in bp overview page.
    so it has created new component /ztable/zbol entity .
    Now how can i access the nodes of BP page..in the new component created?.

    thanks vishal ,
    but as per the thread,when we create table view using aet ,
    Table view in EHP1 CRM 7.0
    You dont need to worry about the component usage nor you need to create or handle anything like that for AET compoent for table extension. SAP has a special way to handle it in WD_USAGE_INITIALIZE of component controller for AET extension generated component so its nothing for us to do about it. Thanks to SAP
    so still i need to redefine..or can directly access the nodes in do_prepare_output.?

  • New field in a table view

    Hi experts!
    I have a problem in CRM version 6. Iu2019m trying implementing the One Click Action (OCA) in a new table view. The context node shows the original BOL structure correctly. So, I redefined the method GET_TABLE_LINE_SAMPLE and inserted the following code line:
    thtmlb_oca type crm_thtmlb_one_click_action
    The method compiled successfully. However the field THTMLB_OCA isnu2019t displayed at the list of context node and configuration tabstrip too.
    I tried putting other fields, such as names and descriptions, but they arenu2019t displayed either.
    Is it a bug in BSP_WD_CMPWB?
    Regarding,
    André

    Hi Andre,
    you still have to implement a method GET_THTMLB_OCA, because the THTMLB_OCA  is not a BOL attribute, it will not be displayed automatically by the UI Config Tool.
    The GET_THTMLB_OCA has to return a list of OCA that you want to have in table view.
    Additional to GET_THTMLB_OCA, you might have to implement GET_P_THTMLB_OCA as well.
    The P-Getter is used to determine what event is trigger if the OCA is clicked.
    Regards,
    Steve

  • Create a table view in my BSP Application!.

    Hi All,
    I am using CRM version 4.0 here i want to crate a new table view in my own BSP Application and want to display in the CRM_IC Application.
    The problem now i am facing is.. there is now provision to create the table view via the wizard. I tried to copy the BSP code, changed the code accordingly also i changed the inheritance for the context node class from
    CL_BSP_WD_CONTEXT_NODE to CL_BSP_WD_CONTEXT_NODE_TV.
    i also copied the iterator attribute.
    still the view is coming with an error saying that page have some problem.
    can anyone suggest any easy method to create the table view!.
    or else can you tell me what i have to do further!.
    Thanks n regards,
    sudeep v d.

    Hi,
    The problem is not only at the .htm page!. I think some changes are required at the context node level. for
    here is the BSP code I m using for displaying the table view..
    <%@page language="abap" %>
    <%@extension name="htmlb" prefix="htmlb" %>
    <%@extension name="xhtmlb" prefix="xhtmlb" %>
    <%@extension name="bsp" prefix="bsp" %>
    <%@extension name="CRM_BSP_IC" prefix="crmic" %>
    <crmic:tray2 id     = "MoreFields"
                 title  = "<%= otr(crm_ic_appl/BuPaAccount) %>"
                 height = "100%,603"
                 width  = "100%" >
      <crmic:trayBody2>
        <crmic:gridLayout cellSpacing    = "1"
                          columnSize     = "1"
                          rowSize        = "10"
                          height         = "100%"
                          width          = "100%"
                          widthPredefine = "TRUE">
        <crmic:gridLayoutCell columnIndex = "1" rowIndex    = "4" >
            <crmic:tableView design          = "STANDARD"
                             width           = "100%"
                             id              = "Address"
                             table           = "//Address/Table"
                             visibleFirstRow = "3"
                             visibleRowCount = "4"
                             selectionMode   = "LINEEDIT"
                             onRowSelection  = "select"
                             fillUpEmptyRows = "TRUE"
                             headerVisible   = "FALSE"
                                           >
              <crmic:tableViewCols>
                <crmic:tableViewColumn columnName = "STREET"
                                       title      = "<%= otr(CRM_IC_APPL/BuPaStreet_t) %>"
                                       edit       = "TRUE" />
                <crmic:tableViewColumn columnName = "POSTL_COD1"
                                       title      = "<%= otr(CRM_IC_APPL/BUPAPOSTCODE_T) %>"
                                       edit       = "TRUE" />
                <crmic:tableViewColumn columnName = "CITY"
                                       title      = "<%= otr(CRM_IC_APPL/BUPACITY_T) %>"
                                       edit       = "TRUE" />
                <crmic:tableViewColumn columnName = "REGION"
                                       title      = "<%= otr(CRM_IC_APPL/REGION) %>"
                                       edit       = "TRUE" />
                <crmic:tableViewColumn columnName = "REGIONNAME"
                                    title      = " "
                                       edit       = "FALSE" />
              </crmic:tableViewCols>
            </crmic:tableView>
        </crmic:gridLayoutCell>
       </crmic:gridLayout>
      </crmic:trayBody2>
    </crmic:tray2>
    In the above code i have given
    table    = "//Address/Table"
    here the 'Address' is defined as a page attribute type ref to the context node class ( CL_CRM_IC_BUPAMOREADDRESS_CN01 ).
    the same class is used in the CRM_IC application works fine!.
    also i entered the attribute entry for the 'Address' in the _CTXT class the view.
    still the same error 'page  cannot be displayed'.
    what could be the problem anyone plaese help!.
    Thanks n regards,
    sudeep v d.

  • How to split header text in table view to 2 lines?

    Hello,
    I have a table view that has many fields. There are fields with long header text.
    Is it possible to split the text and have it on 2 lines?
    Foe exsamle: instead of 'ORDER NUMBER'  --->  ORDER
                                                                                 NUMBER
    Thanks,
    Sara

    Hello Sara,
    You can do that using line feed.
    Implement the following code.
    data: lv_constant type string value 'CRM ORDER'.
    data: lv_constant1 type string.
    data: lv_constant1 type string.
    split lv_constant at ' ' into lv_constant1 lv_constant2.
    CLASS cl_abap_char_utilities DEFINITION LOAD.
    lv_linefeed = CL_ABAP_CHAR_UTILITIES=>CR_LF.
    clear lv_constant.
    concatenate lv_constant1 lv_linefeed lv_constant2 into lv_constant.
    I hope this works.
    Thanks
    Vishal

  • Mandatory filling of BP Account table view

    Hello everyone,
    I'm an abaper but my CRM experience is next to nothing yet and I
    could use some help with this:
    On our business account information page for a business partner, besides showing his main info, name, telephone, group ,etc, you can see below a group of table views like addresses, oportunities, marketing atributes, etc,
    one of which is their Tax Number information.
    Our CRM consultant defined which views where to be shown, and everything works ok.
    Now i've been asked to enhance this functionality when creating or editing the BP information:
    The Tax Number View must have mandatory filling. If the table is empty, an error must be shown.
    I've had a look at the controller class CL_BP_DATA_ACCOUNTTAXNUM1_IMPL, i've set breakpoints on the ON_PREPARE_OUTPUT and EH_ONINSERT methods, using an example where there's an actual tax number filled properly, but i can't figure out how to obtain it's values, nor if it is empty or not, for that matter.
    I also figured i have to implement this validation by redefining the ON_SAVE method, without any certainty though.
    Thanks in advance for any comments,
    Duarte.

    Duarte,
    You are very right that you need to have code in the method EH_ONSAVE of the BPHeadOverview view controller.  Here you just need to find out that the relevent fields have been filled or not. To do this, you need to read the context nodes of the tax number view. It should be something like this
    lr_entity type ref to cl_crm_bol_entity.
    lr_entity = me->typed_context->CONTEXTNODE->get_current().
    now the LR_ENTITY has the information about your tax no and we need to read this to see that the tax no is populated.
    If it is not, we need to throw an error message using the method ADD_MESSAGE of class CL_CRM_GENIL_GLOBAL_MESS_CONT.
    Let me know if that helps.
    Regards
    Prasenjit

  • Adding custom fields to table view assignment block

    Hi All,
      I want to add two news fields to 'Service Contract Item Level' in 'Object List' assignment block. How can i add these two custom fields to table view assignment block using AET. I have tried to add new fields using AET but there is no business object supports to my requirement.
    Thanks & Regards
    Nitish

    Hi Nitish,
    As naveen sadid use Cutomer_i object . I guess it will be more appropriate.
    And following link will be helpful for AET creation.
    CRM 7.0 How to --4 Adding Custom Fields With The New Application Enhancement Tool (AET)
    Regards
    Loks

  • Read & Modify the table view data

    Dear Experts,
    CRM 7.0
    I've added few extra custom fields to the table view through Workbench enhancment as AET does not work for my object type. Now, I would like to read the current table entries and accordingly i should fill the other columns. I am not sure how can I proceed. Please advise me asap.
    Many thanks in advance.

    Hi,
    Yes I guess you can do it in DO_PREPARE_OUTPUT.
    Use below code to read values from table:
    DATA:      lv_wrapper         TYPE REF TO cl_bsp_wd_collection_wrapper,
            lr_entity          TYPE REF TO cl_crm_bol_entity,
         lv_attribute         type string,
         LV_ATTRIBUTE_VALUE type string
      TRY.
          lv_wrapper = me->typed_context->ZCONTEXTNODENAME->get_collection_wrapper( ). " Here you will get all values from table into lv_wrapper
          CHECK lv_wrapper IS BOUND.
          lr_entity  ?= lv_wrapper->get_first( ). " Loop at table
          WHILE lr_entity IS BOUND.
            lv_attribute  ?= lr_entity->get_property_as_string( 'ATTRIBUTE NAME' ). " TO read perticular attribute
    *OR as per your requirement you can change the value. Here you can write your logic...
         lr_entity->set_property_as_string( iv_attr_name = 'ATTRIBUTE NAME' iv_value = LV_ATTRIBUTE_VALUE ).  " Change attribute property
          lr_entity  ?= lv_wrapper->get_next( ).
         ENDWHILE.
        CATCH cx_root.
          RETURN.
      ENDTRY.
    Please let me know if it helps.
    Regards,
    Bhushan

  • Reuse of table view in mine own view.

    Hi experts,
    I have reused a view from standard component BP_DATA ( marketing attribute : table view ) into my component.
    I have created a component usage for BP_DATA and then i have assigned the usage are to a view set and then that view set is assigned to window directly.
    When i am launching Web UI , I am getting the view area only.
    Couple of requirements further is :
    1. To assign the title to that area.
    2. To have the table view fields available on view area.
    view area in in black border in Screenshot attached.
    Kindly advice.
    Thank you.
    Regards,
    Vishal

    Hi Vishal,
    I would try to answer your questions:
    1. To assign the title to that area.
                  Try to find a method *descrition* in IMPL class
    2. To have the table view fields available on view area
                   Generally if you add a view (a) inside view set (b) - in runtime to make field visible there should be similar kind configuration in view with configuration key object type etc. used in viewset; it means viewset configuration crietria gets precedence unless there is a BADI implemented for the view to alter the criteria.
    So please check configuration and BADI CRM*VIEW*CONFIG
    Hope it helps.
    Thanks
    Krish

  • Dynamically Hiding Column in a Table View in VC Model

    How to dynamacally hide the columns in a table view in a VC model. Through the expression in Control Property, Form element/field or table view as a whole can be made hidden, however, the individual column can not seem to be hidden.
    I am using VC server version 700.8.0.1.
    Any help would be much appreciated.
    Kind Regards
    Sanjoy

    In this scenario, if the source is SAP BI, you can use the webapi commands. If not, you would have to have 2 separate tables in different layers and you can show and hide those layers or UI elements...

  • How to use a Table View in AppleScriptObjC

    How can I use a table view and add data to it? And how can I display a button cell and image cell in the table? Thanks.

    Hi all,
    Actually i need some more clarification. How to use the same select statement, if i've to use the tabname in the where clause too?
    for ex : select * from (tab_name) where....?
    Can we do inner join on such select statements? If so how?
    Thanks & Regards,
    Mallik.

  • Deleting data from a table view

    I have a data source that is in dictionary form (for why, see here). I have the following code that gets called in the commitEditing method for the table view:
    - (void)removeObjectFromListAtIndex:(NSIndexPath *)indexPath {
    NSMutableDictionary *mutableDataDictionary = [[NSMutableDictionary alloc] initWithDictionary:[listContent mutableCopy]];
    dNSLog (@"listContent: %@, mutableDataDictionary: %@", listContent, mutableDataDictionary);
    dNSLog (@"indexPath.section is %d", indexPath.section);
    NSString *section = [[NSString alloc] init];
    switch (indexPath.section) {
    case 0:
    dNSLog (@"Case Zero");
    section = @"A";
    break;
    case 1:
    dNSLog (@"Case One");
    section = @"B";
    break;
    case 2:
    section = @"C";
    break;
    case 3:
    section = @"D";
    break;
    case 4:
    section = @"E";
    break;
    case 5:
    section = @"F";
    break;
    case 6:
    section = @"G";
    break;
    case 7:
    section = @"H";
    break;
    case 8:
    section = @"I";
    break;
    case 9:
    section = @"J";
    break;
    case 10:
    section = @"K";
    break;
    case 11:
    section = @"L";
    break;
    case 12:
    section = @"M";
    break;
    case 13:
    section = @"N";
    break;
    case 14:
    section = @"O";
    break;
    case 15:
    section = @"P";
    break;
    case 16:
    section = @"Q";
    break;
    case 17:
    section = @"R";
    break;
    case 18:
    section = @"S";
    break;
    case 19:
    section = @"T";
    break;
    case 20:
    section = @"U";
    break;
    case 21:
    section = @"V";
    break;
    case 22:
    section = @"W";
    break;
    case 23:
    section = @"X";
    break;
    case 24:
    section = @"Y";
    break;
    case 25:
    section = @"Z";
    break;
    default:
    dNSLog (@"Default");
    section = nil;
    break;
    if (mutableDataDictionary) {
    NSMutableArray *arrayForNameSection = [[[NSMutableArray alloc] initWithArray:[mutableDataDictionary objectForKey:section]] mutableCopy];
    [arrayForNameSection removeObjectAtIndex:indexPath.row];
    NSArray *array = [[NSArray alloc] initWithArray:arrayForNameSection];
    [mutableDataDictionary setObject:array forKey:section];
    listContent = [NSDictionary dictionaryWithDictionary:mutableDataDictionary];
    [array release];
    [arrayForNameSection release];
    [section release];
    [mutableDataDictionary release];
    The code works flawlessly the first time through, but when I try to delete a second item, it crashes with a CALayer exception involving copyWithZone. The analyzer in Xcode (3.2) is telling me something's going on with the NSString section, but I'm not sure what...I'd appreciate any help!
    BTW, Ray if you happen to get this, the code is identical to what I emailed you, except that I added this code. The method name is the same.

    I have a data source that is in dictionary form (for why, see here). I have the following code that gets called in the commitEditing method for the table view:
    - (void)removeObjectFromListAtIndex:(NSIndexPath *)indexPath {
    NSMutableDictionary *mutableDataDictionary = [[NSMutableDictionary alloc] initWithDictionary:[listContent mutableCopy]];
    // What happens to the mutableCopy? Looks like a leak.
    dNSLog (@"listContent: %@, mutableDataDictionary: %@", listContent, mutableDataDictionary);
    dNSLog (@"indexPath.section is %d", indexPath.section);
    NSString *section = [[NSString alloc] init];
    // Memory leak because in all cases you re-assign the variable.
    // Arrrgggg!
    NSString * section = nil;
    if((indexPath.section >= 0) || (indexPath.section < 26))
    section = [NSString stringWithFormat: @"%c", 'A' + indexPath.section];
    switch (indexPath.section) {
    case 0:
    dNSLog (@"Case Zero");
    section = @"A";
    break;
    case 1:
    dNSLog (@"Case One");
    section = @"B";
    break;
    case 2:
    section = @"C";
    break;
    case 3:
    section = @"D";
    break;
    case 4:
    section = @"E";
    break;
    case 5:
    section = @"F";
    break;
    case 6:
    section = @"G";
    break;
    case 7:
    section = @"H";
    break;
    case 8:
    section = @"I";
    break;
    case 9:
    section = @"J";
    break;
    case 10:
    section = @"K";
    break;
    case 11:
    section = @"L";
    break;
    case 12:
    section = @"M";
    break;
    case 13:
    section = @"N";
    break;
    case 14:
    section = @"O";
    break;
    case 15:
    section = @"P";
    break;
    case 16:
    section = @"Q";
    break;
    case 17:
    section = @"R";
    break;
    case 18:
    section = @"S";
    break;
    case 19:
    section = @"T";
    break;
    case 20:
    section = @"U";
    break;
    case 21:
    section = @"V";
    break;
    case 22:
    section = @"W";
    break;
    case 23:
    section = @"X";
    break;
    case 24:
    section = @"Y";
    break;
    case 25:
    section = @"Z";
    break;
    default:
    dNSLog (@"Default");
    section = nil;
    break;
    if (mutableDataDictionary) {
    NSMutableArray *arrayForNameSection = [[[NSMutableArray alloc] initWithArray:[mutableDataDictionary objectForKey:section]] mutableCopy];
    // Get rid of this copy too.
    [arrayForNameSection removeObjectAtIndex:indexPath.row];
    NSArray *array = [[NSArray alloc] initWithArray:arrayForNameSection];
    [mutableDataDictionary setObject:array forKey:section];
    listContent = [NSDictionary dictionaryWithDictionary:mutableDataDictionary];
    // This is autoreleased. You might want to retain it.
    [array release];
    [arrayForNameSection release];
    [section release];
    [mutableDataDictionary release];

  • Error while creating a hyperlink for a field in a table view

    Hi all,
    I have created a table view to display the lead information.Now i wanted to make the lead number to be made as a hyperlink.I have tried the delow code
    <htmlb:tableView id = "tvX"
    headerText = "Leads Details"
    headerVisible = "true"
    design = "alternating"
    visibleRowCount = "5"
    visibleFirstRow = "<%= firstvisiblerow %>"
    fillUpEmptyRows = "true"
    onHeaderClick = "MyEventHeaderClick"
    onRowSelection = "select"
    selectionMode = "singleselect"
    table = "<%= activities %>"
    iterator = "<%= z_it %>"
    sort = "SERVER" >
    <htmlb:tableViewColumns>
    <htmlb:tableViewColumn
    columnName = "object_id"
    type = "link" >
    </htmlb:tableViewColumn>
    </htmlb:tableViewColumns>
    </htmlb:tableView>
    But am getting the following error whlle am activating the code
    Internal error occured during runtime generation
    of Class CL_O2D59X6KFES8AMMPAFQ6AV1R3WF (Dump ID:
    DBIF_REPO_SQL_ERROR).
    When i remove the code for <htmlb:tableViewColumns> this error does not exist
    Can canyone help me in solving this?
    Thanks

    Hi,
    in iterator method IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START.
    you need to call method  cl_hrrcf_iterator=>get_bee_link to define the link for a specific filed.
    for example check the below code.
    IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START.
      CASE p_column_key.
        WHEN 'PERNR'.
        CALL METHOD cl_hrrcf_iterator=>get_bee_link
            EXPORTING
              p_cell_id       = p_cell_id
              p_onclientclick =link_url
              p_column_key    = p_column_key
              p_row_data_ref  = p_row_data_ref
              p_tooltip_alias = l_alias
            IMPORTING
              po_bee          = p_replacement_bee.
        ENDCASE.
    endmethod.
    vijay

  • Hide data in a table view

    Hi,
    I need to hide data in a table..Only column headers required to display.. I tried by (display column headers only) in view..It is showing only column header in the view ..But when iam displaying the table in dashboard it displays data also..another approach i took is to hide data from column properties ...Custom css display:none.. it is working fine..But the thing is it will not display data in other views also.I need to hide data only in table view..any helps will be appreciated.. Thank you

    Hi Aswin,
    Try this....
    Take columns twice and first set which is use in table view (use display:none)
    and second set use in pivot table and exclude first set columns........
    Cheers,
    Aravind

  • BSP: How to create check box in a column of a Table View

    Hi All,
    I have a table view in Web IC scenario. my requirement is to display check box in one of the column of the table view.. so that i can select multiple lines from the table and do some calculations!.
    Anybody have any hint/clue
    Thanks in advance,
    sudeep v d.

    Hi,
    This can be achieved by using a Table iterator.
    Please check the standard examples for this.
    Thanks,
    Rashmi.

Maybe you are looking for

  • How can I generate a map file with LabVIEW?

    We wish to use a product which inserts code into our executable to prevent tampering with it by crackers.  The program, however, takes the executable file, as well as the map file (which is commonly generated by c++ compilers) and uses the map file t

  • Check point in fund management for budget and creation of po

    I have a Budget for a perticular expenses say Rs 100000/-, so the po should not be created for more than Rs 100000/- as per the budget. but the po is been created for more than the budget amount. pls. let me know where the check point has to be maint

  • U00CDntercompany IDOC payment terms ZTERM missing

    Hi all, When we create a customer invoice it triggers an intercompany idoc. An intercompany invoice receipt is created in our system as an A/P but payment term not gets stored in field ZTERM but right calculation is done regarding number of days unti

  • Unable to send mail, but only at my office (!)

    This one is really strange. Lots of information gathered over the last 10 days or so, on which I can't send mail through two of my accounts. I got this new MacBook Pro with Snow Leopard factory-installed. This is not an upgrade problem. I imported my

  • OSB jms 2 ftp/file

    Hello My configuration: JMS Proxy Service(byte stream) - > ftp/file Business service I can write stream to ftp/file without convert to array? Best Regards, lam