Determine object and itab dynamically

Hi there. I've got a small problem.
I've got a tabstrip object with 7 tabs.
Each of them contains a grid.
In the screen there is a button.
After pressing it I need to do 2 things:
1) call a recently visible grid method (GET_CURRENT_CELL method) - it's not a problem
2) perform a READ TABLE ... from the itab which is a sourcetab for recently visible grid. - it's a problem
Example:
sourcetab for GRID01 is ITAB01. analogycally for GRID02, GRID03 ... All itabs have different structure but have a common fields (2 fields that I'm interested to check)
Let's say we pressed TAB02 (it contains GRID02). Now I need to ...
1) CALL METHOD G_activegrid->GET_CURRENT_CELL  - G_activegrid is a pointer to recently displayed grid / no problem
2) READ TABLE G_activeitab .... / PROBLEM
I) ... so .... how can I detect which itab need I do the READ TABLE from? Is there some possibility to use pointers in that case? Something like ASSIGN ITAB02 TO <pointer>. Then ... READ TABLE <pointer> ...
II) ... or maybe You know some grid method which would enables me to check the sourcetab for that grid? Something like ...
CALL METHOD GRID02->GET_GRID_ITAB
  IMPORTING itab = itabname_or_itabpointer_or_sth_else .
Could You give me some tip how to solve that problem?

I don't think, we have any method which gives the Output table back from the ALV in class CL_GUI_ALV_GRID. We have one protected attribute MT_OUTTAB which holds the output table but since it is protected we can't access it.
Work around would be Saving the internal table name and the object reference in the internal table and read that internal table with current object. This way you will get the Table used in that ALV object.
Like:
types: begin of ty_obj,
       tab_name type char30,
       obj   type ref to CL_GUI_ALV_GRID,
       end   of ty_obj.
data: t_obj type standard table of ty_obj,
      wa_obj type ty_obj.
  data: o_1 type ref to cl_gui_alv_grid,
       o_2 type ref to cl_gui_alv_grid.
  wa_obj-tab_name = 'ITAB1'.
  wa_obj-obj      = o_1.
  append wa_obj to t_obj.
  wa_obj-tab_name = 'ITAB2'.
  wa_obj-obj      = o_2.
  append wa_obj to t_obj.
* e.g for First instance
read table t_obj into wa_obj with key obj = o_1.
if sy-subrc = 0.
endif.
Regards,
Naimesh Patel

Similar Messages

  • How to create dynamic View Object and Dynamic Table

    Dear ll
    I want to create a dynamic view object and display the output in a dynamic table on the page.
    I am using Jdeveloper 12c "Studio Edition Version 12.1.2.0.0"
    This what I did:
    1- I created a read only view object with this query "Select sysdate from dual"
    2- I added this View object to the application module
    3- I created a new method that change the query of this View object at runtime
        public void changeVoQuery(String dbViewName) {
            String sqlstm = "Select * From " + dbViewName;
            ViewObject dynamicVo = this.findViewObject("DynamicVo");
            if (dynamicVo != null) {
                dynamicVo.remove();
            dynamicVo = this.createViewObjectFromQueryStmt("DynamicVo", sqlstm);
            dynamicVo.executeQuery();
    4- I run the application module for testing the method and I passed "Scott.Emp" as a parameter and the result was Success
    5- Now I want to show the result of the view on the page, so I draged and dropped the method from the data control as a parameter form
    6- I dragged and dropped the view Object "DynamicVo" as a table and I choose "generate Column Dynamically at runtime". This is the page source
    <af:panelHeader text="#{viewcontrollerBundle.SELECT_DOCUMTN_TYPE}" id="ph1">
            <af:panelFormLayout id="pfl1">
                <af:inputText value="#{bindings.dbViewName.inputValue}" label="#{bindings.dbViewName.hints.label}"
                              required="#{bindings.dbViewName.hints.mandatory}"
                              columns="#{bindings.dbViewName.hints.displayWidth}"
                              maximumLength="#{bindings.dbViewName.hints.precision}"
                              shortDesc="#{bindings.dbViewName.hints.tooltip}" id="it1">
                    <f:validator binding="#{bindings.dbViewName.validator}"/>
                </af:inputText>
                <af:button actionListener="#{bindings.changeVoQuery.execute}" text="changeVoQuery"
                           disabled="#{!bindings.changeVoQuery.enabled}" id="b1"/>
            </af:panelFormLayout>
        </af:panelHeader>
        <af:table value="#{bindings.DynamicVo.collectionModel}" var="row" rows="#{bindings.DynamicVo.rangeSize}"
                  emptyText="#{bindings.DynamicVo.viewable ? 'No data to display.' : 'Access Denied.'}"
                  rowBandingInterval="0" selectedRowKeys="#{bindings.DynamicVo.collectionModel.selectedRow}"
                  selectionListener="#{bindings.DynamicVo.collectionModel.makeCurrent}" rowSelection="single"
                  fetchSize="#{bindings.DynamicVo.rangeSize}" filterModel="#{bindings.DynamicVoQuery.queryDescriptor}"
                  queryListener="#{bindings.DynamicVoQuery.processQuery}" filterVisible="true" varStatus="vs" id="t1"
                  partialTriggers="::b1">
            <af:iterator id="i1" value="#{bindings.DynamicVo.attributesModel.attributes}" var="column">
                <af:column headerText="#{column.label}" sortProperty="#{column.name}" sortable="true" filterable="true"
                           id="c1">
                    <af:dynamicComponent id="d1" attributeModel="#{column}"
                                         value="#{row.bindings[column.name].inputValue}"/>
                </af:column>
            </af:iterator>
        </af:table>
    when I run the page this error is occured
    <Nov 13, 2013 2:51:58 PM AST> <Error> <oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #1
    javax.el.ELException: java.lang.NullPointerException
    Caused By: java.lang.NullPointerException
    Can any body help me please
    thanks

    Have you seen Shay's video https://blogs.oracle.com/shay/entry/adf_faces_dynamic_tags_-_for_a
    All you have to do is to use the dynamic table to get your result.
    Timo

  • EEWB :  how to determine the business object and the extension type ?

    Hi,
    I ask myself how to determine the business object and the extension type to use to add new fields in a new tab of a specific transaction ? what means each business object, does that correspond to a specific transaction ?
    I need to add a new tab in the ‘BaMI’ business activity in transaction CRMD_ORDER just after the tab 'Actions' at header level.
    Could you help me please to determine which business object and extension type I have to select during creation of the project and which business object category I have to select during creation of the extension (wizard) ?
    Thanks for your help,
    Marie

    Marie,
    In order to determine what type of transaction you are extending, you will need to look at the customizing for the transaction.
    In the IMG:
    Goto:
    Customer Relationship Management->Transactions->Basic Settings->Define Transaction Types.
    You will then choose the transaction defined that you want to extend.  If you display the details of the transaction you will find an attribute called:
    "Leading Transaction Category".  This tells you the general context in which the transaction is used.  The other item to view is the assignment of business transaction categories found in the maintenance screen.
    This information general corresponds to one of the options that the EEWB will give you on the transaction type.
    As far as extensions go, my recommendation is the following:
    - Use CUSTOMER_H Customer Header Extensions for any new fields at the header level.
    - Use CUSTOMER_I Customer Item Extensions for any new fields at the item level.
    Unless you have a specific requirement to extend a segment of the transaction, I recommend placing all new fields in these segments.  The CUSTOMER_H & CUSTOMER_I segments are considered "standard" segments, that are already built into all the necessary API structures. 
    Let me know if you have any further questions.
    Good luck,
    Stephen

  • Business logic callable object and Dynamic User assignment

    hi all,
    I have to design scenario using VC and GP
    using VC i designed a form that consist of some input parameters value,product..
    i integrated the designs created in VC to CO's
    My workflow should be like this
    now if the value<500
    it should go for approval to user1->user3
    if 500<value<1000  means it should go for approval to user1->user2->user3
    i tried this by using a businesslogic callable object
    the input ot this businesslogic CO is "value" parameter
    reult state
    continue BOOL(@value<500)
    break  Bool(500<@value<1000)
    process
    sequential block1
    Altenateblock block
                  Action
                result state:
                 continue->target->seqblock2
                 break->target->seqblock3
                 business logic CO
    seqblock2
                            Action1
                            Action3
    seqblock3
                              Action1
                              Action2
                              Action3
    i designed the workflow like this
    but the problem is that during runtime its directly jumping to seqblock3 with out asking the input value for business callable object
    and its not exiting from that block3.its going like infinite  loop(action1->action2->action3->action1->action2->Action3)
    pls suggest me the way to achieve this task
    Thanks
    kiran
    Edited by: kiran_mareedu on Aug 26, 2009 3:48 AM

    Hi,
    I have the similar issue.
    In my case it is taking too much time for completion.
    It is a background step so it should execute automatically.
    I have also checked Queue's for this.
    But could not understand why it is taking soo much time?
    Regards,
    Pratik

  • Determining internal table structure dynamically

    Hi,
    I have a number of internal tables in my program which I declare using types. As an example:
    TYPES: begin of ty_hierarchy,
                   control_id(6)   type c,
                   node_id(10)     type c,
                   node_name       type bezei40,
                   material        type matnr,
                   node_level      type prodh_stuf,
                   node_parent(10) type c,
                end of ty_hierarchy.
    DATA: it_hierarchy type ty_hierarchy occurs 0.
    Further down my program I need to determine the structure of internal table IT_HIERARCHY dynamically. Because I have a number of internal tables, I need to determine which internal table is being processed. Therefore it's important that I know the structure of the table that I'm currently processing.
    I am aware of CL_ABAP* classes and functions like GET_COMPONENT_LIST. However because I have declared my tables using the TYPE statement the method/function cannot read my table structure correctly. If I changed my declaration to be as below, the method/function work! However I don't want to do this as I use field symbols to reference my internal tables and need to use the TYPE statement.
    DATA: begin of ty_hierarchy,
                   control_id(6)   type c,
                   node_id(10)     type c,
                   node_name       type bezei40,
                   material        type matnr,
                   node_level      type prodh_stuf,
                   node_parent(10) type c,
                end of ty_hierarchy.
    DATA: begin of it_hierarchy occurs 0.
                 include structure ty_hierarchy
    DATA: end of it_hierarchy.
    Does anyone know on how I can determine my  internal table structure dynamically but still keeping my internal table declarations using TYPE statement?
    Any help would be greatly appreciated with reward points .....
    Thanks
    Liam

    Hello Liam
    Both the ABAP-OO as well as the FM-based approach described by Eswar work well with your way of defining the itabs. I described three different ways how to get the structure of your itab dynamically:
    - directly using the itab
    - using a field symbol
    - using a data reference
    REPORT  zus_sdn_dynamic_itabs.
    TYPE-POOLS: abap.
    TYPES: BEGIN OF ty_hierarchy,
    control_id(6) TYPE c,
    node_id(10) TYPE c,
    node_name TYPE bezei40,
    material TYPE matnr,
    node_level TYPE prodh_stuf,
    node_parent(10) TYPE c,
    END OF ty_hierarchy.
    DATA:
      gs_hierarchy    TYPE ty_hierarchy,
      it_hierarchy    TYPE ty_hierarchy OCCURS 0.
    DATA:
      gt_comp         TYPE abap_compdescr_tab,
      gs_comp_a       LIKE LINE OF gt_comp,
      gd_type         TYPE abap_typekind,
      gs_comp    TYPE rstrucinfo,
      it_comp TYPE TABLE OF rstrucinfo.
    DATA:
      go_struct    TYPE REF TO cl_abap_structdescr,
      go_table     TYPE REF TO cl_abap_tabledescr,
      gdo_data     TYPE REF TO data.
    FIELD-SYMBOLS:
      <gt_itab>    TYPE table.
    START-OF-SELECTION.
      GET REFERENCE OF it_hierarchy INTO gdo_data.
      ASSIGN gdo_data->* TO <gt_itab>.
    * (1) Describe directly by using the itab
    *  go_table  ?= cl_abap_structdescr=>describe_by_data( it_hierarchy ).
    * (2) Describe indirectly by using field symbol
    *  go_table  ?= cl_abap_structdescr=>describe_by_data( <gt_itab> ).
    * (3) Describe by data reference to itab
      go_table  ?= cl_abap_structdescr=>describe_by_data_ref( gdo_data ).
      go_struct ?= go_table->get_table_line_type( ).
      WRITE: / 'ABAP-OO Version:'.
      gt_comp = go_struct->components.
      LOOP AT gt_comp INTO gs_comp_a.
        WRITE: / gs_comp_a-name,
                 gs_comp_a-length,
                 gs_comp_a-type_kind,
                 gs_comp_a-decimals.
      ENDLOOP.
      SKIP 2.
      CALL FUNCTION 'GET_COMPONENT_LIST'
        EXPORTING
          program    = sy-repid
          fieldname  = 'GS_HIERARCHY'
        TABLES
          components = it_comp.
      WRITE: / 'Function Module Version:'.
      LOOP AT it_comp INTO gs_comp.
        WRITE: / gs_comp-compname,
                 gs_comp-level,
                 gs_comp-leng,
                 gs_comp-type,
                 gs_comp-olen,
                 gs_comp-decs.
      ENDLOOP.
    END-OF-SELECTION.
    Regards
      Uwe

  • EASY General Class for structure of ITAB / dynamic ITAB / FCAT

    Hi Guys.
    Seeing all the convoluted posts about Dynamic ITABS, getting the structure of ANY ITAB (whether or not it's in the dictionary) building Dynamic FCATS etc. I'm actually very puzzled as the whole concept is CHILDISHLY SIMPLE.
    If you model this code here then you can use this for ANY ITAB, DYNAMIC TABLE and FCAT you care to name and it's only a few lines of code.
    The bits you can use in almost any program are shown <b>in BOLD</b>
    Program  ZGENTABCREATE.
    <b>FIELD-SYMBOLS :
      <fs1>  type any,
      <fs2>  type standard table,
      <dyn_table> type standard table,</b> 
      <dyn_field>,
      <dyn_wa>.
    <b>CLASS zcl_dog DEFINITION.
    PUBLIC SECTION.
    METHODS:
    return_structure,   "returns structure of ANY table
    create_dynamic_fcat   "Create dynamic FCAT
           EXPORTING  it_fldcat TYPE lvc_t_fcat.
    PRIVATE SECTION.
    DATA:
           lr_rtti_struc TYPE REF TO cl_abap_structdescr,        "RTTI
           zog LIKE LINE OF lr_rtti_struc->components,           "RTTI
            wa_it_fldcat       TYPE lvc_s_fcat.
    TYPES: struc like zog.
    DATA: : zogt type table of struc.
    ENDCLASS.
    CLASS zcl_dog IMPLEMENTATION.
    METHOD return_structure.
    lr_rtti_struc ?= cl_abap_structdescr=>describe_by_data( <fs1> ).
    zogt[]  = lr_rtti_struc->components.
    assign zogt[] to <fs2>.
    ENDMETHOD.
    METHOD create_dynamic_fcat.
        LOOP AT <fs2>  INTO zog.
          CLEAR wa_it_fldcat.
          wa_it_fldcat-fieldname = zog-name .
          wa_it_fldcat-datatype = zog-type_kind.
          wa_it_fldcat-inttype = zog-type_kind.
          wa_it_fldcat-intlen = zog-length.
          wa_it_fldcat-decimals = zog-decimals.
          wa_it_fldcat-coltext = zog-name.
          wa_it_fldcat-lowercase = 'X'.
          APPEND wa_it_fldcat TO it_fldcat .
        ENDLOOP.
      ENDMETHOD.
    ENDCLASS.</b>
    start of program data to demo use of above class ****
    INCLUDE  <icon>.
    TABLES : kna1.
    TYPES:  BEGIN OF s_elements,   "Any old ITAB   define structure
      kunnr   TYPE kna1-kunnr,
      name1   TYPE kna1-name1,
      stras   TYPE kna1-stras,
      telf1   TYPE kna1-telf1,
      ort01   TYPE kna1-ort01,
      pstlz   TYPE kna1-pstlz,
    END OF  s_elements.
    DATA:  <b>z_object type ref to zcl_dog,  "Instantiate our class
           t_elements   TYPE TABLE OF s_elements, "refers to our ITAB
           wa_elements   TYPE s_elements,    "Structure definition
           wa_dyn_table_line TYPE REF TO DATA,
           it_fldcat TYPE lvc_t_fcat,</b> 
           dy_table TYPE REF TO data,
    start-of-selection.
    <b>assign  wa_elements  to <fs1>.
    This is IMPORTANT. Your ITAB structure must
    be assigned to <fs1> which will be
    used in the return_structure method.
    The internal structure definition (field-names)
    will be returned in <fs2> which is used for
    dynamically building the field catalog.
    You only need this section to get your
    structure build your FCAT
    and create the dynamic table
    If you want to see the actual structure of
    your table or how the FCAT looks
    the field_symbols <fs1> and <fs2> have
    the data in them.
    Get variable structure names.
    <b>create object
             z_object.
       call method z_object->return_structure.
    build fcat.
    CALL METHOD z_object->create_dynamic_fcat
          IMPORTING
            it_fldcat = it_fldcat.
    build dynamic table
    CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fldcat
        IMPORTING
          ep_table        = dy_table.</b>
    Now fill and display it
    You can use it in a GRID or whatever.</b>
    ASSIGN dy_table->* TO <dyn_table>.
    Create dynamic work area and assign to FS
      CREATE DATA dy_line LIKE LINE OF <dyn_table>.
      ASSIGN dy_line->* TO <dyn_wa>.
    fill it
    perform populate_dynamic_itab.
    end-of-selection.
    end of main logic ***************
    FORM populate_dynamic_itab.
    just read 200 lines as a demo from KNA1
    assign dynamic table created to <field symbol>
    so you can fill it with data.
      SELECT kunnr name1 stras telf1 ort01 pstlz
           UP TO 200 rows
           FROM KNA1
           INTO  CORRESPONDING FIELDS OF TABLE <dyn_table>.
          LOOP AT <dyn_table> INTO <dyn_wa>.
        DO.
          ASSIGN COMPONENT  sy-index
             OF STRUCTURE <dyn_wa> TO <dyn_field>.
          IF sy-subrc <> 0.
            EXIT.
          ENDIF.
          IF sy-index = 1.
            WRITE:/ <dyn_field>.
          ELSE.
            WRITE: <dyn_field>.
          ENDIF.
        ENDDO.
      ENDLOOP.
    ENDFORM.
    ********************END OF CODE***********
    Now NOBODY should have any probs with this stuff.
    Simple   isn't it.
    Cheers
    and have fun.
    Jimbo

    Hi Shinjan,
    One of the ways to achieve this is by creating ranges. Try this code,
    TABLES: dbtab2.
    FIELD-SYMBOLS: <l_line>  TYPE ANY,
                               <l_field> TYPE ANY.
    DATA: new_line  TYPE REF TO data.
    RANGES: r_f1 FOR dbtab2-f1. "Create ranges for the particular field say f1
    "Creating work area for your dynamic int table
    CREATE DATA new_line LIKE LINE OF <fs_itab>.
    ASSIGN new_line->* TO <l_line> .
    LOOP AT <fs_itab> ASSIGNING <l_line>.
      ASSIGN COMPONENT 'F1' OF STRUCTURE <l_line> TO <l_field>. "Now <l_field> contains the value
    "Append the range from the values in dynamic tab
      r_f1-sign = 'I'.
      r_f1-option = 'EQ'.
      r_f1-low = <l_field>.
      APPEND r_f1.
    ENDLOOP.
    SELECT *
    FROM dbtab2
    INTO t_dbtab2
    WHERE f1 IN r_f1. "write the select query using the ranges
    Hope this helps you.
    Regards,
    Manoj Kumar P

  • How to change the master page and theme dynamically in sharepoint2013 anonymous site

    hi
    I have to change the master page and theme dynamically in sharepoint2013 anonymous site. i have to show one master page to authenticated user  another master page to anonymous user through code
    Srinivas

    Hi Srinivas,
    According to your description, my understanding is that you want to change the master page and theme dynamically based on the anonymous users or authenticated users.
    Per my knowledge, there is not an OOB way to change the master page and theme dynamically.
    SharePoint is based on Asp.net, as we know Asp.Net request processing is based on pipeline model, so we can delevlop a custom HttpModule to dynamic change the master page based on current logon user profile(using SP Object Model to get).
    Another solution could be to use the SecurityTrimmed control that injects the CSS depending on global user permissions, more information, please refer to
    it.
    Some similar posts for your reference:
    http://social.msdn.microsoft.com/Forums/office/en-US/c2b2d0da-c752-4aea-9c2d-e31a5b1a2988/sharepoint-2010-dynamic-masterpage-based-on-userprofile-property
    http://johanleino.wordpress.com/2011/10/20/using-a-different-master-page-for-authenticated-users-in-sharepoint/
    http://sharepoint.stackexchange.com/questions/21679/how-can-we-use-a-different-masterpage-for-annoymous-and-authenticated-users
    http://sivarajan.me/post/How-to-customize-the-SharePoint-2013-Master-Page-for-Anonymous-Users
    Best Regards,
    Wendy
    Wendy Li
    TechNet Community Support

  • Regarding mandatory fields, Context Objects and Fault Message Types

    Hi All,
    1) I am creating a structure with fields "Name", "Street" and "City". While creation i want to make "Name" fields as mandatory. Is it possible. If so how to achieve this.
    2) What is the purpose of Context Object and in which situation we will use this.
    3) What is the purpose of Fault Message Types and in which situation we will use this.
    4) I am doing file to file scenario, at sender side i have set the adapter as file and transport protocol as "FTP" . It is asking for "Server", "PORT" and "Login Details". What is this FTP, for this do i need to take any login details. I am totally not aware of FTP, could please explain more about this.
    Kindly look into the above points and respond point by point.
    Thanks in advance.
    Regards,
    Prem.S

    Hi prem,
    <b>1) I am creating a structure with fields "Name", "Street" and "City". While creation i want to make "Name" fields as mandatory. Is it possible. If so how to achieve this.</b>
    give occurence 1..unbounded. for the field name.
    <b>2) What is the purpose of Context Object and in which situation we will use this.</b>
    If u have multiple receiver system then to determine the reciever u can use context object.....
    the alternative of context objetc is X-Path...
    Check out these
    http://help.sap.com/saphelp_nw2004s/helpdata/en/d6/e44fcf98baa24a9686a7643a33f26f/content.htm
    /people/prasadbabu.nemalikanti3/blog/2006/09/20/receiver-determination-based-on-the-payload-of-input-dataextended-xpathcontext-object
    Here is a scenario where context objects were used for BPM
    Technical Context Object in ccBPM
    Get the details here:
    http://help.sap.com/saphelp_nw04/helpdata/en/d6/e44fcf98baa24a9686a7643a33f26f/frameset.htm
    Technical Context Objects :
    http://help.sap.com/saphelp_nw04/helpdata/en/d6/e44fcf98baa24a9686a7643a33f26f/frameset.htm
    A list of the Technical Context Objects names can be found here:
    http://help.sap.com/saphelp_nw04/helpdata/en/6e/ff0bf75772457b863ef5d99bc92404/content.htm
    Difference between context object and x-path:
    diff between context object and x path
    <b>3) What is the purpose of Fault Message Types and in which situation we will use this</b>
    whenever u want to catch some exception u can use fault message types.Just for a example u r sending some data to SAP system.But due to some reason the R/3 system is down.so in this case if u have implemented fault message ..u can get a error message specifying r/3 is down....
    Fault message implementation.
    /people/shabarish.vijayakumar/blog/2006/11/02/fault-message-types--a-demo-part-1
    How to Guide
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40574601-ec97-2910-3cba-a0fdc10f4dce
    <b>4) I am doing file to file scenario, at sender side i have set the adapter as file and transport protocol as "FTP" . It is asking for "Server", "PORT" and "Login Details". What is this FTP, for this do i need to take any login details. I am totally not aware of FTP, could please explain more about this.</b>
    there are two transport protocol for File adapter
    1)FTP(File transfer protocol)
    to know abt FTP check here
    http://help.sap.com/saphelp_nw04/helpdata/en/43/0e16bfd7b021aee10000000a1553f6/content.htm
    2)NFS(Network File System)
    in server :Enter the host name or IP address of the FTP server.
    in PORT:Specify the port number of the FTP server.
                 The default is the standard port for the FTP server (21)
    check here
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
    Regards
    BILL
    <b>***reward with points if ity helps u!!</b>

  • Business ByDesign UI: find Business Objects and UI definitions involved

    Hello,
    I am new to SAP Business ByDesign sdk development. The most difficult part is to identify the right Standard SAP Business Objects and use them the right way.
    As I understood from another sdk developer, he has seen on an SAP sdk training that there exists functionality to see/determine in the ByDesign UI the Business Objects and UI definitions involved in a specific UI.
    In a test tennant for a customer this functionality is unavailable.
    - is this functionality released for customer use?
    - how can I activate this functionality myself?
    - what are the prerequisites to be able to use this functionality?
    thank you for your answers in advance,
    Roelof Jan Bouwknegt

    Hi Alexandre,
    have a look at the Web Dynpro component WDR_TEST_EVENTS, view BG_SIMPLE_IN_MPANE, method WDDOMODIFYVIEW.
    Here is a snippet for setting additional customizing or data for a business graphics view-element. Call this from method WDDOMODIFYVIEW.
    DATA lr_bg TYPE REF TO cl_wd_business_graphics.
    DATA lr_bg_method_handler TYPE REF TO if_wd_busin_graphics_mtd_hndl.
    DATA lr_add_cust_xml TYPE REF TO if_ixml_document.
    lr_bg ?= ir_view->get_element(  <your viewid of business graphic>  ).
    lr_bg_method_handler ?= lr_bg->_method_handler.
    lr_add_cust_xml =  get_<your additional customizing/data>.
    lr_bg_method_handler->add_direct_customizing(
    i_customizing = lr_add_cust_xml
    Kind regards,
    Silke

  • Can you Manipulate 3D object in Director Dynamically?

    Greetings,
    I am looking for some way to dynamically manipulate a 3d
    object and am wondering if Director 3d has the ability to do this
    and if so, if any of you want to take this on as a freelance
    project? (this is a serious request on a cool project, not some
    hokey offer)
    I had first hoped that Flash could do it since I am more
    familiar with flash, but I was wondering if Director can update a
    3d object on the fly as it gathers new values for a number of
    points in the 3d object. Can Director do this?
    If you know of any person, any business that knows how to do
    this PLEASE contact me to discuss more. It has been difficult for
    me to understand the capabilites of Director 3D without speaking to
    someone who is talented and competent as I am sure most of you are.
    Cheers,
    -i

    model position, model rotation, model location, model scale,
    model shader, etc. are all easily modified. the actual mesh that
    makes up the model's shape can be changed with the meshdeform
    modifier. however, these changes won't be permanent. the entire 3d
    scene will be in it's original state everytime the movie starts. if
    you want to save state you'll have to store the data defining the
    attributes externally in some way and apply them at runtime.

  • Error when accessing low level objects and converting variant to refnum Type

    Hope someone can give a clue....
    I'm using a dll, but it only has one creatable object, and I need to call two non-creatable objects.
    When the method to return the new reference is called, an error occured ("Member not found.
    in My.vi").
    The weird thing is that when I wired the new reference, I'm able to see the new methods and properties expected of the new object.
    Should I ignore this error???
    Also, does anyone know, How can I convert a variant to a ActiveX refnum??? because, when I use the To G type Lib, if a refnum type is wired, it's like this type is not supported, but the list states otherwise.
    Thank you in advance for any clue you can give me!!!

    Since I do not know what type of ActiveX object you are calling, I do not know about the error you are seeing. However, since everything seems to be working after that, I would assume it's okay. Now, you can convert a variant to an ActiveX refnum, but how you do this depends upon what type of refnum you need. Use the Variant to Data.vi to convert your variant type to a refnum by wiring in an ActiveX refnum to the "type" input. You will first need to determine what type of ActiveX refnum it is (Automation, Control, etc) and then wire that wire type into this VI.
    J.R. Allen

  • What is matchcode objects and how can we create tthem

    hai to all.
         what is matchcode objects .
         and how can we create matchcode objects
         and how will it works

    Hi
    In which version of SAP are you working?
    Matchcodes are replaced by SEARCH HELPs in latest versions
    see the doc
    1) Elementary search helps describe a search path. The elementary search help must define where the data of the hit list should be read from (selection method), how the exchange of values between the screen template and selection method is implemented (interface of the search help) and how the online input help should be defined (online behavior of the search help).
    2) Collective search helps combine several elementary search helps. A collective search help thus can offer several alternative search paths.
    3)An elementary search help defines the standard flow of an input help.
    4) A collective search help combines several elementary search helps. The user can thus choose one of several alternative search paths with a collective search help.
    5)A collective search help comprises several elementary search helps. It combines all the search paths that are meaningful for a field.
    6)Both elementary search helps and other search helps can be included in a collective search help. If other collective search helps are contained in a collective search help, they are expanded to the level of the elementary search helps when the input help is called.
    CREATION:
    Go to SE11 Tcode
    select search help
    give the 'z' search help name and create
    select the selection method ur table name eg : 'mara'
    dialog module 'display value immediately'.
    add the field whatever u want and lpos = 1 and spos = 1 and check import and export parameter.
    where left position when displaying and spos = search position
    and then save and activate ..
    See the links:
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee38446011d189700000e8322d00/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee45446011d189700000e8322d00/content.htm
    https://forums.sdn.sap.com/click.jspa?searchID=3173469&messageID=2176485
    https://forums.sdn.sap.com/click.jspa?searchID=3173469&messageID=3601619
    pls go through this for search help creation
    http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee2b446011d189700000e8322d00/content.htm
    Search Help Exits:
    Re: dynamic values for search help
    Re: Dynamic search  help
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee52446011d189700000e8322d00/content.htm
    http://www.sapdevelopment.co.uk/dictionary/shelp/shelp_exit.htm
    https://forums.sdn.sap.com/click.jspa?searchID=4390517&messageID=1712818
    Collective search help Combine several elementary search helps. A collective search help thus can offer several alternative search paths.
    A Collective search help provides alternative search
    Paths by combining elementary search helps.
    Only one search help can be attached to a field, table or data element. Several search paths are therefore attached with a collective search help.
    A collective search help also has interface parameters like
    an elementary search help.
    Like an elementary search help, a collective search help has an interface of IMPORT and EXPORT parameters with which the search help exchanges data. Using this interface, the collective search help can be attached to fields, tables and data elements exactly like an elementary search help.
    Parameter assignment needs to be done for each of the
    Included search helps.
    When you define a collective search help, there are no components for describing the dialog behavior and data selection; instead the included search helps are listed here. You must assign the parameters of the collective search help to the interface parameters of the included search help for each inclusion.
    User may choose the tab and thus the elementary
    search maethod.
    When we execute the search help SCUSTOM, we are confronted with a dialog which gives us an option of either restricting
    By 1)Search for customer according to booking
    2)Search for customer according to name.
    These are effectively the elementary search helps (SCUSTOM_BOOK and SCUSTOM_NAME) which have been included in the collective search help SCUSTOM.
    HOT KEY
    The hot key is used to select the elementary search help from the collective search help and to enter the restrictions in the dialog box for restricting values directly from the entry field. If the user often searches for values using the same search help, this procedure can save time.
    Steps to create a Collective Search Help
    1)Enter the search help name and click on create.
    2)Choose Collective search help radio button option as the search help type.
    3)Enter the search help parameters.
    4)Instead of the selection method, we enter the included
    search helps for the collective search help.
    5)We need to assign parameters for each of the included
    search helps.
    6)Complete the parameter assignment by clicking on the push button
    7)Collective search help offers the user to obtain F4 help
    using any of the included search helps.

  • Determine whether parameter is dynamic or static?

    I'm having some challenges with applying connection information to my reports. I'm seeing that I need to use one method for reports that contain dynamic parameters, and another method for ones that do not. It's insane to me how difficult it's been to find a solid way to handle setting connection information, and there appears to be a million ways to do it, but I digress.
    What's the best way to load a report and determine whether or not it contains parameters that are dynamic or not? Any advice would be appreciated!

    Ok... I'll take you down the rabbit hole, which will probably slightly change the topic of this thread This all stems from a post I made back in 2011 which you and Don were active on:
    http://scn.sap.com/thread/1887128
    I never did quite figure out the issue described in that thread, and finally began to tackle it again. My CR viewer needs to support reports that utilize ODBC (RDO) and OLE DB (ADO) connection types. As it turns out, reports utilizing OLE DB (ADO) connection types were actually working as expected, no login screen was being shown prior to the dynamic parameter being displayed, it was only reports utilizing the ODBC connection type. So I downloaded the "CodeBuilder-RasConnectionInfo" utility and worked with the code it generated, which looked like an entirely different method of setting the connection info. After using this new method, my ODBC based reports began to work just fine, whereas my OLE DB (ADO) reports were now displaying the logon prompt prior to displaying the dynamic parameters. The code I've been using all along has been working so well and is very trusted that thought one approach I would take is to detect if the crystal report contained dynamic parameters, and only use the new connection code if it did, otherwise it would revert back to what I was always using. I'm now changing my tune on this, and don't think that's the right approach. I'm actually comfortable with making the statement that my viewer only supports dynamic parameters when utilizing OLE DB (ADO) connection types. But just in case you are curious, here are the two blocks of code:
    Here is what I was always using, where dynamic parameters show a logon prompt for ODBC connections types, but not OLE DB (ADO) connection types:
    http://resources.rock-pond.com/orig.txt
    Here is what I used from the code generator, where dynamic parameters do not show a logon prompt for ODBC connection types, but do for OLE DB (ADO) connection types (In this example, there are minor changes to the code depending on whether the report utilizes ole db (ado) vs ODBC... The example here is for odbc
    http://resources.rock-pond.com/new.txt
    Ideally I would find one method that work work against both connection types and display dynamic parameters without the logon prompt, but I haven't found the answer yet.
    I'm currently using 13.0.5.891 on the development system, and am testing the functionality against a 13.0.8 version of the runtimes. If you've got any thoughts or direction I might take, let me know.

  • How to compare 2 Objects( and )?

    Should I write an interface?

    Java has 2 interfaces that would be of interest to you.
    They both are designed to return an integer that describes the relationship between two objects.
    Suppose you have two objects: objectA and objectB
    The return value is as following:
    if (returnValue < 0) then objectA precedes objectB. (A < B)
    if (returnValue > 0) then objectA follows objectB. (A > B)
    if (returnValue == 0) then objectA and objectB are equivalent (A == B).
    It is up to you to do the comparing and determine which is the correct return value...
    Here are the two interfaces:
    1) Comparable interface (java.lang.Comparable)
    You would use this interface when you have a class that exhibits some natural order..
    You add this interface to the class, and, within the class, implement the following method:
       public int compareTo( Object obj )
       The variable obj in this case refers to the "other" object that you want to compare.
       public class MyClass implements Comparable // <--- notice the last two words!!
              other methods.
          public boolean isTallerThan( MyClass mc )
             // just some method i made up to compare...
          public int compareTo( Object objectB )
             // You are comparing "this" object with the "otherObject"...
             // Note that objectA is "this".
             MyClass otherObject = (MyClass)objectB;
             // Do whatever you need to compare the two.
             if (this.isTallerThan(otherObject) )
                 return -1;
             else if ( otherObject.isTallerThan(this) )
                 return +1;
             else
                 return 0; // they are of equal height...whatever...
       2) Comparator interface (java.util.Comparator)
    You could use this interface if you have a different set of standards with which to compare two different objects. Usually, it is it's own class, designed for only this purpose. You implement the following method:
       public int compare( Object objA, Object objB )
       Notice that in this case you have to explicitly pass in both objects to be compared, whereas in the Comparable interface, objA is implicitly assumed to be the object on which the method is called (or as I like to call it, this).
    Here is an example:
       public class MyComparator implements Comparator
          public int compare( Object objA, Object objB )
             do whatever comparisons you need to determine whether
             objA < objB (-1 is returned)
             objA > objB (+1 is returned)
             or
             objA == ObjB (0 is returned)

  • Authorization Object and Authorization...!!!

    Hi BW Experts,
    Could anyone plz tell me what is the difference between Authorization Object and Authorization..!!!
    Thanks in Advance.
    Regards,
    Giftedbrain.

    Giftedbrain,
    Authorization Object:
    An authorization object groups up to ten fields that are related by AND.
    An authorization object allows complex tests of an authorization for multiple conditions. Authorizations allow users to execute actions within the system. For an authorization check to be successful, all field values of the authorization object must be appropriately maintained in the user master.
    Authorization objects are divided into classes for comprehensibility. An object class is a logical combination of authorization objects and corresponds, for example, to an application (financial accounting, human resources, and so on). The line of the authorization object class is colored orange in the profile generator.
    For information about maintaining the authorization values, double click an authorization object.
    The line of the authorization object is colored green in the profile generator.
    Authorization:
    Definition of an authorization object, that is, a combination of permissible values in each authorization field of an authorization object.
    An authorization enables you to perform a particular activity in the SAP System, based on a set of authorization object field values.
    Authorizations allow you to specify any number of single values or value ranges for a field of an authorization object. You can also allow all values, or allow an empty field as a permissible value.
    If you change authorizations, all users whose authorization profile contains these authorizations are affected.
    As a system administrator, you can change authorizations in the following ways:
    ·        You can extend and change the SAP defaults with role maintenance.
    ·        You can change authorizations manually. These changes take effect for the relevant users as soon as you activate the authorization.
    The programmer of a function decides whether, where and how authorizations are to be checked. The program determines whether the user has sufficient authorization for a particular activity. To do this, it compares the field values specified in the program with the values contained in the authorizations of the user master record.
    The line of the authorization is colored yellow in the profile generator.
    -Doodle

Maybe you are looking for

  • IPC Java userexit-pricing routines

    Hi experts, I am new to IPC  java pricing routines and i have a requirement like this, 1. The user enters manually in Quote the new price. (say cond type ZNEW) 2. The cond record for ZTKE is available with the price as well as Max price and Min Price

  • Unable to connect my Apple TV to my wireless network

    Hi I have an Apple TVMC572LL/A I had to replace my wireless router.  I am now using a dual band router. I am unable to connect to the 5GHz signal offered by the router. It is a Netgear N750.  Is there an issue with this generation Apple TV and 5GHz?

  • When I edit photos in iPhoto it deletes them

    Hi, I'm having an issue with iPhoto '09: when I edit my photos it deletes them. It doesn't seem to happen if I adjust the temperature or tint, but if I manipulate any elements between (and including) exposure and de-noise it deletes my photo. The wei

  • Is there a printable DVD label that will not cause my Super Drive to crash?

    CD Stomper and Avery paper labels cause the Super Drive to: reject the CD/DVD disk; report that the disk is damaged/unreadable; or just grind to a halt. Replaced the iMac internal Super Drive - still has same problem. Disks were prepared using the Su

  • BOE XIR2 SP5 All processing servers are down and not starting up

    Hi Guys, My all processing servers are down and not starting up I restarted all the service by ccm.sh I killed all the servives manually and started again Still  only processing servers go down  any clue guys I  really stucked here I cheked logs I go