Dynamically retreiving fields of a table

Hi,
I have a text file in the application server containing data corresponding to the fields of table EPROVAL15.I have declared an internal table and work area of the table type .While I am trying to split the file into respective fields it's throwing an error which is "field should be declared of character type".since fields such as 'VAL0000' or 'VAL0015' are of decimal format,so split statement doesnot work for such data type.Can any1 suggest how to split the file so that data from the text file get appended to the internal table?
I thought of declaring a structure containing the same number fields as the table EPROFVAL15 with data type as char,but then that would be time consuming process as the table contains many fields.Can any one provide a solution to it?
I would like to know ,if there is a table containing more than 100 fields and we want to append values from text file to it through an internal table ,then in the split statement do we need to provide every field  name (the usual process that we do) ?i feel it's a time consuming process to mention all the field name manually.is there any way out by which the fields can be called  dynamically for appending the data from the text file into it?

Hi Brad,
The text file is delimited by' | '.
following is the sample code .
data: gt_IEPROFVAL15  type  IEPROFVAL15,
       gwa_IEPROFVAL15  type  EPROFVAL15.
split g_temp1 at '|' into gwa_IEPROFVAL15-PROFILE  gwa_IEPROFVAL15-VALUEDAY gwa_IEPROFVAL15-VAL0000
                                  gwa_IEPROFVAL15-VAL0015   gwa_IEPROFVAL15-VAL0030  gwa_IEPROFVAL15-VAL0045.
The above split statement contains fields up till VAL2345(presently i have shown fields up till VAL0045).The syntactical error is
' gwa_IEPROFVAL15-VAL0000 must be a character type data object'.
Is there any way by which data conversion can take place explictly ?
If i declare a structure containing the same fields as that of table EPROVAL15(with the data type being char instead of integer) to be used in the split statement  then again it's a tedious process.
Hope the problem stated is clear to you.

Similar Messages

  • Dynamic value help for a table field to fill two fields, how to?

    Hi all gurus,
    In SRM 7 I defined a dynamic value help for a single field (ZZ_PROLE_R3) of my header custom table.
    That's the code from WDDOMODIFYVIEW in the webdynpro /SAPSRM/WDC_DODC_CT, view V_DODC_CT:
    DATA: lo_tabnode        TYPE REF TO IF_WD_CONTEXT_NODE.
          DATA: lo_tabnode_info   TYPE REF TO IF_WD_CONTEXT_NODE_INFO.
          DATA: tab_value         TYPE WDR_CONTEXT_ATTR_VALUE_LIST,
                wa_value          TYPE WDR_CONTEXT_ATTR_VALUE.
          lo_tabnode = wd_context->GET_CHILD_NODE( name = 'THCUS' ). "the custom table node
          lo_tabnode_info = lo_tabnode->get_node_info( ).
          wd_this->GET_VALHELP_ZZ_PROLE_R3( EXPORTING iv_guid = lv_guid
                                            IMPORTING ZZ_PROLE_R3_VALHELP = tab_value ). "this method returns the dyn value table
          lo_tabnode_info->set_attribute_value_set( name = 'ZZ_PROLE_R3'
                                                     value_set = tab_value ).
    The method GET_VALHELP_ZZ_PROLE_R3 dynamically builds the value help table tab_value; such table is made up by two fields:
    value : contains the value of the field
    text   : contains a description of the value
    The above solution works; now I'd like to enhance it. The custom table THCUS contains also a field called ZZ_PROLE_R3_DESC, which represents the description of ZZ_PROLE_R3. It is, exactly, the TEXT field in tab_value.
    So I'd like to do as follows:
    - the user clicks on the search help for ZZ_PROLE_R3 field of the table;
    - the above described value help appears;
    - after the selection, both ZZ_PROLE_R3 and ZZ_PROLE_R3_DESC are filled with the selected couple value - text chosen from the value help.
    Could anyone help me achieving such a behaviour?
    Again, a little request... when I open the above value help dialog box, the window itself has a label "Floorplan Manager application for OIF.." that obviously I'd like to redefine (e.g. "Role selection value help"). Is there any way to do that?
    Thanks in advance

    Chris Paine wrote:
    It seems to me - given that your code is in wddomodifyview that you are trying to have different dropdowns per row
    - I'm not sure where you are populating lv_guid - but I'd guess it is an attribute of the row selected? If it isn't then I can't see any reason that you would do this code in wddomodifyview and not wddoinit.
    Hi Chris and thanks for your help,
    lv_guid is the GUID of the document's header; I need to pass it to the method that populates my value help table because the values in it are derived from some fields on the document. (the situation actually is more complex; there's an RFC call on the backend for which the document is intended for to retrieve the data that populate the value help...).
    I'm quite unexperienced on webdynpro and terminology; if dropdown menus are fixed selection option that appears on a field, I guess this is not my case. I did a pair of screenshot to provide an idea of what the solution by now is, and what "I would like to have":
    [Pre-selection (F4 icon on the field in table)|http://imagebin.ca/view/npIsaqF.html]
    [Value Help popup for the field ZZ_PROLE_R3|http://imagebin.ca/view/8fZUh3T.html]
    [Result by now |http://imagebin.ca/view/3PaqdvE.html]
    [Result I'd like to have.|http://imagebin.ca/view/dExR0J.html]
    Chris Paine wrote:
    However - by your comment on the "value help dialog box" I am guessing you are using an input field? If this is the case then I would strongly suggest that you change/enhance the structure of the context node THCUS (btw, better coding practise to refer to it as wd_this->wdctx_thcus when using the get child node construct) so that you refer to an actual SAP ddic search help, if you then associate in the structure the value and text fields then populating the text field should happen automatically. Also you'd have the nice side effect that your value help dialog would be named after the associated ddic search help.
    Thanks for the code suggestion, I'll apply that. For what concerns the context node THCUS... It is, by standard, a node which I can't explictly find in the context for the view V_DODC_CT. The problem is that ZZ_PROLE_R3 and the corresponding description field ZZ_PROLE_R3_DESC of the table must be filled with data retrieved dynamically @ runtime from the backend. So I guess I can't populate a val help referring to a dictionary table/field; I'd rather do as follows:
    - retrieve what's the target backend for the document (to do so, I have to process the document .. that's why the header guid passed to my method);
    - RFC call to a custom method that extracts possible values for the specific backend;
    - bind the ammissible values to the value help.
    Chris Paine wrote:
    I realise that this is rather a lot - so if you have any specific question please do respond - hopefully I or someone else will be able to clarify.
    Thanks again for your help; additional info as well as code examples would be highly appreciated

  • Dynamic field labels in table control

    Hi experts,
        My requirement is to display dynamic field labels in table control can we do this. I am much aware
    that we can do it in alv_grid. Please let me know.
    Thanks in advance.
    Sri

    Hi Anubhab,
         Thanks. With your help i could able to solve the problem. Let me put this in some
    more detail.
    When we are pulling the field from a table to table control we need to make sure the fields should have a data elements. After pulling all the fields to a table control ,we need to drag out  and delete the current table control column headings and then drop in the (new) I/O fields into their place.  I then set the text on these new fields within the PBO.  If we try to drop the (new) I/O fields on top of the existing ones with out deleting it won't work.
    Thanks & Regards.
    Srikanth

  • Dynamic filling of input fields in a table

    Hi,
    There are input fields in a two tables these are to be filled parallely at run time. the no of entries depend on the entires in internal table.
    If internal table has more entries, then a certain entries is filled up; say 9 times the control should be given to a new tables and the remaining entries should be filled in the input fields of other table .
    I appreciate help.

    Hi,
    Actually there is two HTML tables, each table has nine rows. if the no of entries in the internal table exceeds nine then the second table should be filled after the first HTML table has filled with all the nine entries.
    Both tables contains same input fields. How to fill both tables dynamically. I think now it makes sense.

  • Tables in dynamic text field???

    Hi,
    I am trying to organize an html text in flash dynamic text
    field into tables, I tried using
    testText=<textformat
    tabstops='[50,100]'><b>Name\tAge\tDepartment</b>\nTim\t32\tFinance\n<u>Edwin</u>\t46\tMar keting</textformat>
    but this works only when text variable testText is set inside
    flash script. When loaded dynamicly using LoadVars all
    <textformat tabstops... tabs are just not seen and are omitted.
    I tried to google some answers and I found that textformat tabs
    work only for embedded text. Ok, so I used actionscript command
    myText.embedFonts = true;
    but then I lost all visible text. How come that Flash doesn't
    have some easy way to create so basic thing as tables? Thanks for
    any answer,
    Zbynek
    here is my fla script:

    nobody any ideas?!

  • Is it possible to display only dynamically selected fields in the out put?

    Is it possible to display only dynamically selected fields in the out put? i need to display set of columns in the selection criteria, but in the output i have display only input given fields. because i need to convert it into .csv file. So i have to display selected fields from internal table. In oracle they are using"execute immediate". is there any equivalent in SAP?
    thanks in advance.

    Hi Remya,
    Are you talking about dynamic programming in ABAP ?
    If yes, there are concepts like RTTS which facilitates it.
    Yes, the select query also supports dynamic selection of fields. ( Please care about ( ) in dynamic sql ).
    Do more research on Field Symbols and statements like ASSIGN COMPONENT OF.
    Regards,
    Philip.

  • Making a dynamically generated field as Read Only

    Hi All,
    I am extending a standard CO and in that I wanted to make an entire table as read only. I checked by personalizing the page from front end, but as the items are dynamically generated fields , they are not visible in personalize page.
    So is there any way to cach these fields and make them read only programmatically.
    Thanks,
    Srikanth

    Hi Pratap,
    I have looked into the view source and took the name of a input type ( There is no ID for the field) and used it in findIndexedChild, but it returns a null. I guess this is happening is the current CO is a mere region level CO and it is not being given the access.
    The code in the class file is as follows :
    public static void processTable(OAPageContext oapagecontext, OAWebBean oawebbean)
    oapagecontext.startTimedProcedure("CrossTableCO", "processTable");
    String s = null;
    String s1 = null;
    int i = oawebbean.getIndexedChildCount();
    String as[[][]] = new String[7];
    int j = 0;
    String as1[[][]] = new String[i][6];
    for(int k = 0; k < oawebbean.getIndexedChildCount(); k++)
    UINode uinode = oawebbean.getIndexedChild(k);
    if(!(uinode instanceof OAMessageStyledTextBean))
    continue;
    OAMessageStyledTextBean oamessagestyledtextbean = (OAMessageStyledTextBean)uinode;
    if(oamessagestyledtextbean.isRendered())
    oamessagestyledtextbean.setRendered(false);
    oamessagestyledtextbean.setAttributeValue("benCustomBeanRender", "Y");
    if("TotalPlanLabel".equals(oamessagestyledtextbean.getUINodeName()))
    s1 = oamessagestyledtextbean.getLabel();
    continue;
    if(s == null)
    s = oamessagestyledtextbean.getViewUsageName();
    as[j][0] = oamessagestyledtextbean.getViewAttributeName();
    as[j][1] = oamessagestyledtextbean.getSortByAttributeName();
    as[j][2] = oamessagestyledtextbean.getLabel();
    as[j][3] = oamessagestyledtextbean.getExportByViewAttrName();
    as[j][4] = oamessagestyledtextbean.getDestination();
    as[j][5] = oamessagestyledtextbean.getUINodeName();
    as[j][6] = oamessagestyledtextbean.getDataType();
    if(as[j][4] != null && as[j][5] != null)
    as1[j][0] = as[j][5];
    as1[j][1] = as[j][0];
    as1[j][2] = s;
    as1[j][3] = as[j][4];
    as1[j][4] = as[j][6];
    as1[j][5] = as[j][3];
    j++;
    continue;
    if("TotalPlanLabel".equals(oamessagestyledtextbean.getUINodeName()))
    s1 = "XXHideXXTotalXX";
    oawebbean.setAttributeValue("CrossTableUpdateInfo", as1);
    oawebbean.setAttributeValue("CrossTableRenderCount", Convert.getString(j));
    if(s == null)
    return;
    OAViewObject oaviewobject = (OAViewObject)oapagecontext.getApplicationModule(oawebbean).findViewObject(s);
    if(oaviewobject == null || !oaviewobject.isPreparedForExecution() || oaviewobject.first() == null)
    return;
    } else
    oawebbean.addIndexedChild(createTable(oawebbean, oaviewobject, as, j, s1));
    oawebbean.setAttributeValue("CrossTableRowCount", Convert.getString(oaviewobject.getRowCountInRange()));
    oapagecontext.endTimedProcedure("CrossTableCO", "processTable");
    return;
    private static UINode createTable(OAWebBean oawebbean, OAViewObject oaviewobject, String as[][], int i, String s)
    int j = oaviewobject.getRowCountInRange();
    DataTextNode datatextnode = new DataTextNode(new DataBoundValue("text"));
    String as1[] = new String[j + 1];
    CrossTableData acrosstabledata[] = new CrossTableData[i];
    int k = -1;
    for(int l = 0; l < i; l++)
    acrosstabledata[l] = new CrossTableData(new CrossTableCellData[j + 1]);
    for(int i1 = 0; i1 <= j; i1++)
    if(i1 > 0)
    try
    if(s != null && j > 1 && CT_NUM_MINUS_ONE.equals(oaviewobject.getRowAtRangeIndex(i1 - 1).getAttribute("GroupOiplId")))
    as1[i1] = s;
    else
    as1[i1] = (String)oaviewobject.getRowAtRangeIndex(i1 - 1).getAttribute("Name");
    catch(Exception exception)
    datatextnode = null;
    as1[i1] = "";
    if(k < 0 && j > 1 && "XXHideXXTotalXX".equals(s) && CT_NUM_MINUS_ONE.equals(oaviewobject.getRowAtRangeIndex(i1 - 1).getAttribute("GroupOiplId")))
    k = i1;
    for(int j1 = 0; j1 < i; j1++)
    if(i1 == 0)
    acrosstabledata[j1].getData()[i1] = new CrossTableCellData(as[j1][2]);
    else
    acrosstabledata[j1].getData()[i1] = new CrossTableCellData(null, as[j1][2], oaviewobject, i1 - 1, as[j1][0], as[j1][1], as[j1][3], as[j1][4], as[j1][5], as[j1][6]);
    TableBean tablebean = new TableBean("CrossTable", new ArrayDataSet(acrosstabledata), null, null, datatextnode, new ArrayDataSet(as1, "text"));
    tablebean.setWidth("100%");
    tablebean.setSummary(" ");
    tablebean.setNameTransformed(false);
    tablebean.setTableFormat(new DictionaryData("tableBanding", "rowBanding"));
    tablebean.setID((new StringBuilder()).append("CrossTable").append(oawebbean.getID()).toString());
    oawebbean.setAttributeValue("CrossTableId", tablebean.getID());
    DictionaryData adictionarydata[] = new DictionaryData[j + 1];
    Object obj = null;
    Object obj1 = null;
    for(int k1 = 0; k1 <= j; k1++)
    OAWebBean oawebbean1 = createColumn(k1);
    if(k1 == k)
    oawebbean1.setRendered(false);
    tablebean.addIndexedChild(oawebbean1);
    if(k1 == 0)
    adictionarydata[k1] = new DictionaryData("columnDataFormat", "textFormat");
    continue;
    try
    String s1 = (String)oaviewobject.getRowAtRangeIndex(k1 - 1).getAttribute("TextFormat");
    if("Y".equalsIgnoreCase(s1))
    adictionarydata[k1] = new DictionaryData("columnDataFormat", "textFormat");
    else
    adictionarydata[k1] = new DictionaryData("columnDataFormat", "numberFormat");
    catch(Exception exception1)
    adictionarydata[k1] = new DictionaryData("columnDataFormat", "numberFormat");
    tablebean.setColumnFormats(new ArrayDataSet(adictionarydata));
    return tablebean;
    private static OAWebBean createColumn(int i)
    OAFlowLayoutBean oaflowlayoutbean = new OAFlowLayoutBean();
    OAMessageTextInputBean oamessagetextinputbean = new OAMessageTextInputBean();
    OAMessageStyledTextBean oamessagestyledtextbean = new OAMessageStyledTextBean();
    OAMessageDateFieldBean oamessagedatefieldbean = new OAMessageDateFieldBean();
    OASwitcherBean oaswitcherbean = new OASwitcherBean();
    Hashtable hashtable = new Hashtable();
    hashtable.put("CtPPRTrgCol", new DataBoundValue(new CrossTableColumnData(i, "Name")));
    oaswitcherbean.setNamedChild("input", oamessagetextinputbean);
    oaswitcherbean.setNamedChild("date", oamessagedatefieldbean);
    oaswitcherbean.setChildNameBinding(new CrossTableColumnData(i, "Render"));
    oaflowlayoutbean.addIndexedChild(oaswitcherbean);
    oaflowlayoutbean.addIndexedChild(oamessagestyledtextbean);
    oamessagetextinputbean.setNameBinding(new CrossTableColumnData(i, "Name"));
    oamessagetextinputbean.setTextBinding(new CrossTableColumnData(i, "Text1"));
    oamessagetextinputbean.setAttributeValue(DESCRIPTION, new DataBoundValue(new CrossTableColumnData(i, "Label")));
    oamessagetextinputbean.setAttributeValue(COLUMNS_ATTR, "12");
    oamessagetextinputbean.setAttributeValue(PRIMARY_CLIENT_ACTION_ATTR, OAWebBeanUtils.getFirePartialActionForSubmit(oamessagetextinputbean, null, "update", hashtable, null));
    oamessagetextinputbean.setDataType("NUMBER");
    oamessagetextinputbean.setAttributeValue(READ_ONLY_ATTR, new DataBoundValue(new CrossTableColumnData(i, "ReadOnly")));
    oamessagetextinputbean.setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, new DataBoundValue(new CrossTableColumnData(i, "SubmitValidator")));
    oamessagedatefieldbean.setNameBinding(new CrossTableColumnData(i, "Name"));
    oamessagedatefieldbean.setTextBinding(new CrossTableColumnData(i, "Text1"));
    oamessagedatefieldbean.setValueBinding(new CrossTableColumnData(i, "Text1"));
    oamessagedatefieldbean.setAttributeValue(DESCRIPTION, new DataBoundValue(new CrossTableColumnData(i, "Label")));
    oamessagedatefieldbean.setAttributeValue(COLUMNS_ATTR, "12");
    oamessagedatefieldbean.setAttributeValue(PRIMARY_CLIENT_ACTION_ATTR, OAWebBeanUtils.getFirePartialActionForSubmit(oamessagedatefieldbean, null, "update", hashtable, null));
    oamessagedatefieldbean.setDataType("DATE");
    oamessagedatefieldbean.setAttributeValue(READ_ONLY_ATTR, new DataBoundValue(new CrossTableColumnData(i, "ReadOnly")));
    oamessagestyledtextbean.setTextBinding(new CrossTableColumnData(i, "Text2"));
    return oaflowlayoutbean;
    Pls let me know for any clarifications.
    Thanks,
    Srikanth

  • Number of fields in the table

    Hi experts,
    How do you obtain the number of fields of a particular table ?
    I want the count of the fields of a table.
    Thanks in advance,
    Chithra.

    Check the code below:
    DATA: d_ref TYPE REF TO data,
    i_alv_cat TYPE TABLE OF lvc_s_fcat,
    ls_alv_cat LIKE LINE OF i_alv_cat,
    fname TYPE fieldname,
    ncomp(9) TYPE n,
    rcount(9) TYPE n,
    fcount(3) TYPE n.
    TYPES: BEGIN OF itab1,
    message(50) TYPE c,
    END OF itab1.
    DATA: g_itab1 TYPE STANDARD TABLE OF itab1.
    DATA: wa_itab1 TYPE itab1.
    ncomp = 1.
    rcount = 0.
    TYPES: tabname LIKE dcobjdef-name,
    fieldname LIKE dcobjdef-name.
    PARAMETER: p_tablen TYPE tabname. "Input table field
    DATA: BEGIN OF itab OCCURS 0.
    INCLUDE STRUCTURE dntab.
    DATA: END OF itab.
    FIELD-SYMBOLS : <f_fs> TYPE table,
    <f_fs2> TYPE ANY,
    <f_fs3> TYPE ANY,
    <f_fs4> TYPE ANY.
    REFRESH itab.
    CALL FUNCTION 'NAMETAB_GET' "Fetches the fields
    EXPORTING
    langu = sy-langu
    tabname = p_tablen
    TABLES
    nametab = itab
    EXCEPTIONS
    no_texts_found = 1.
    LOOP AT itab .
    ls_alv_cat-fieldname = itab-fieldname.
    ls_alv_cat-ref_table = p_tablen.
    ls_alv_cat-ref_field = itab-fieldname.
    ls_alv_cat-seltext = itab-fieldtext.
    ls_alv_cat-reptext = itab-fieldtext.
    APPEND ls_alv_cat TO i_alv_cat.
    fcount = fcount + 1.
    ENDLOOP.
    WRITE:/ fcount.
    WRITE: ' number of column'.
    internal table build
    CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
    it_fieldcatalog = i_alv_cat
    IMPORTING
    ep_table = d_ref.
    ASSIGN d_ref->* TO <f_fs>. " Dynamic table creation with fields of the
    *table
    DATA: l_field TYPE fieldname,
    l_field1 TYPE fieldname.
    SELECT * FROM (p_tablen) INTO CORRESPONDING FIELDS OF TABLE <f_fs>.
    "Fetching of the data from the table
    rcount = 0.
    LOOP AT <f_fs> ASSIGNING <f_fs2>.
    rcount = rcount + 1.
    DO fcount TIMES.
    "Here u can check the validations and process
    ASSIGN COMPONENT ncomp OF STRUCTURE <f_fs2> TO <f_fs4>.
    IF NOT <f_fs4> IS INITIAL.
    MOVE <f_fs4> TO l_field1.
    ncomp = ncomp + 1.
    ELSE.
    CONCATENATE 'IN ROW' rcount 'COLUMN' ncomp 'IS BLANK' INTO wa_itab1.
    APPEND wa_itab1 TO g_itab1.
    ncomp = ncomp + 1.
    ENDIF.
    ENDDO.
    CLEAR:ncomp.
    ENDLOOP.
    LOOP AT g_itab1 INTO wa_itab1.
    WRITE:/ wa_itab1 'is blank'.
    ENDLOOP.
    regards
    Kannaiah

  • How to handle field symbols internal table values?

    HI all,
              I declared field string as below.The below code is working fine.
    Data : ITAB TYPE STANDARD TABLE OF YAPOPLN, (Custom table).
              wa_itab like line of ITAB.
    field-symbol : <fs> type ITAB.
    ASSIGN PARAM TO <FS>
    LOOP AT <FS> INTO WA_ITAB.
    WRITE:/ 'ABC'.
    ENDLOOP.
    But my requirement is that I dont want all the fields of the table YAPOPLN.My output contains only 2 fields of the table YAPOPLN,which contains total 4 fields.According to my requirement only 2 fields will be getting into one parameter PARAM(this is function module parameter,which is from ALV classes) from the user entered output,which contains only 2 fields.So the above code is not working properly because wa_itab contains 4 fields and giving short dump.
    If I am declaring the internal table with the required fields(only 2 fields) and referring that internal table to field symbol <FS>
    Data : BEGIN OF ITAB1 OCCURS 0,
             FIELD1 LIKE YAPOPLN-FIELD1,
             FIELD2 LIKE YAPOPLN-FIELD2,
             END OF ITAB1.
    field-symbol : <fs> LIKE ITAB1 OR  <FS> TYPE ANY.
    DATA :WA_ITAB1 LIKE LINE OF ITAB1.
    ASSIGN PARAM TO <FS>
    LOOP AT <FS> INTO WA_ITAB.
    WRITE:/ 'ABC'.
    ENDLOOP.
    But when I am compiling this code i am getting the below error.I am gettting the same below error when even <FS> is also declared as <FS> TYPE ANY.
    .'FS' is not an internal table or defined in TABLES.
    Can anyone help me in this regard?
    Thanks,
    Balaji

    Hello,
    Try this way:
    If both the type of internal tables are same then you can directly assign dynamic internal table to static internal table.
    itab = <itab>.
    Suppose you have field symbol internal table <itab> which is different in structure from ITAB.
    Now, you can create <wa> as follow:
    FIELD-SYMBOLS <wa>.
    DATA wa TYPE REF TO DATA.
    CREATE DATA wa TYPE LINE OF <itab>.
    ASSIGN wa->* to <wa>.
    This way your work area is read.
    Using [ASSIGN COMPONENT|http://help.sap.com/saphelp_nw04/helpdata/EN/fc/eb3923358411d1829f0000e829fbfe/content.htm] syntax you can read required component of <wa>.
    Finally you can use that value to load static internal table.
    You can also refer to my thread on [Dynamic table|Re: Creating Dynamic table].
    Hope this helps!
    Thanks,
    Augustin.
    Edited by: Augustarian on Aug 20, 2009 10:06 AM

  • How to move field symbol internal table to internal table with header line?

    Dear all,
    hi...hereby i would like to ask how i can move field symbol internal table to a internal table?
    as i know field symbol internal table is without header line..
    so, may i know how to do this....to move field symbol internal table to internal table which consist of header line and field and record will same as field symbol internal table...in additional, my field symbol internal table is dynamic table mean everytime will have flexible columns..?
    Please advise...
    Thanks
    Regard,
    ToToRo.
    Edited by: @ToToRo@ on Aug 20, 2009 6:16 AM

    Hello,
    Try this way:
    If both the type of internal tables are same then you can directly assign dynamic internal table to static internal table.
    itab = <itab>.
    Suppose you have field symbol internal table <itab> which is different in structure from ITAB.
    Now, you can create <wa> as follow:
    FIELD-SYMBOLS <wa>.
    DATA wa TYPE REF TO DATA.
    CREATE DATA wa TYPE LINE OF <itab>.
    ASSIGN wa->* to <wa>.
    This way your work area is read.
    Using [ASSIGN COMPONENT|http://help.sap.com/saphelp_nw04/helpdata/EN/fc/eb3923358411d1829f0000e829fbfe/content.htm] syntax you can read required component of <wa>.
    Finally you can use that value to load static internal table.
    You can also refer to my thread on [Dynamic table|Re: Creating Dynamic table].
    Hope this helps!
    Thanks,
    Augustin.
    Edited by: Augustarian on Aug 20, 2009 10:06 AM

  • HR-How to use dynamic selection fields in prog ..?

    Hii
         I have written a prog to select data pertaining to details of all employees who belong to a particular country . For this i have provided a dynamic selection field for selecting country (through Selection View).But when i am getting all the records for all countries.
                    How to use the dynamic selection fields in program or they behave in the same way as the standard selection given by the LDB .As if we enter a value in the std screen then the GET event acts accordingly .
    Ajitabh Pradhan

    Hi Ajitabh,
    First off, is the Dynamic Selection working? If so, try the following code.. I am assuming, you only want to look at Permanent Address.
    tables: pernr.
    infotypes: 0001,0006.
    start-of-selection.
    get pernr.
      rp-provide-from-last p0001 space pn-begda pn-endda.
      check pnp-sw-found eq 1.
      rp-provide-from-last p0006 1 pn-begda pn-endda.
      check pnp-sw-found eq 1.
      write:/ pernr-pernr,p0001-ename,p0006-land1.
    end-of-selection.
    Regards,
    Suresh Datti

  • How to create dynamic strcture for a interrnal table

    first i created one internal table . with five fields . suppose i want add two more fields in internal table.
    what is the code for the this . if any one konow

    REPORT  ZTEST05.
    PARAMETERS dbtab TYPE tabname DEFAULT 'SPFLI'.
    TYPE-POOLS rsds.
    DATA tadir_wa  TYPE tadir.
    DATA selid     TYPE  rsdynsel-selid.
    DATA field_tab TYPE TABLE OF rsdsfields.
    DATA table_tab TYPE TABLE OF rsdstabs.
    DATA table     LIKE LINE OF table_tab.
    DATA cond_tab  TYPE  rsds_twhere.
    DATA cond      LIKE LINE OF cond_tab.
    DATA dref      TYPE REF TO data.
    DATA alv       TYPE REF TO cl_salv_table.
    FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
    SELECT SINGLE *
           FROM tadir
           INTO tadir_wa
           WHERE pgmid = 'R3TR' AND
                 object = 'TABL' AND
                 obj_name = dbtab.
    IF sy-subrc <> 0.
      MESSAGE 'Database not found' TYPE 'I' DISPLAY LIKE 'E'.
      LEAVE PROGRAM.
    ENDIF.
    table-prim_tab = dbtab.
    APPEND table TO table_tab.
    CALL FUNCTION 'FREE_SELECTIONS_INIT'
      EXPORTING
        kind         = 'T'
      IMPORTING
        selection_id = selid
      TABLES
        tables_tab   = table_tab
      EXCEPTIONS
        OTHERS       = 4.
    IF sy-subrc <> 0.
      MESSAGE 'Error in initialization' TYPE 'I' DISPLAY LIKE 'E'.
      LEAVE PROGRAM.
    ENDIF.
    CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
      EXPORTING
        selection_id  = selid
        title         = 'Free Selection'
        as_window     = ' '
      IMPORTING
        where_clauses = cond_tab
      TABLES
        fields_tab    = field_tab
      EXCEPTIONS
        OTHERS        = 4.
    IF sy-subrc <> 0.
      MESSAGE 'No free selection created' TYPE 'I'.
      LEAVE PROGRAM.
    ENDIF.
    READ TABLE cond_tab WITH KEY tablename = dbtab INTO cond.
    IF sy-subrc <> 0.
      MESSAGE 'Error in condition' TYPE 'I' DISPLAY LIKE 'E'.
      LEAVE PROGRAM.
    ENDIF.
    CREATE DATA dref TYPE TABLE OF (dbtab).
    ASSIGN dref->* TO <table>.
    TRY.
        SELECT *
               FROM (dbtab)
               INTO TABLE <table>
               WHERE (cond-where_tab).
      CATCH cx_sy_dynamic_osql_error.
        MESSAGE 'Error in dynamic Open SQL' TYPE 'I' DISPLAY LIKE 'E'.
        LEAVE PROGRAM.
    ENDTRY.
    TRY.
        cl_salv_table=>factory(
          IMPORTING r_salv_table = alv
          CHANGING  t_table      = <table> ).
        alv->display( ).
      CATCH cx_salv_msg.
        MESSAGE 'Error in ALV display' TYPE 'I' DISPLAY LIKE 'E'.
    ENDTRY.

  • Add a custom-field in the table MARC and manage it in MM01/MM02/MM03

    Good day to all of you!
    I have this task: To add a custom-field to the table MARC. This custom-field will be managed through the MM01/MM02/MM03 transaction as follows:
    In the Basic Data 1 or Basic Data 2 the custom-field data will be added. Let's say the field is MATNR OBSOLETE.
    I have searched and implemented the things in customizing: Made a copy of function group MGD1, added the field on the screen.
    MY PROBLEM! How to manage it??? When the user enters MM01/MM02/MM03 and update this field, the field should be updated in MARC.
    1. I am not sure that this custom-field should be on Basic Data1 or Basic Data2.They want it at plant level.
    2. How to manage the data transfer from SAP Standard Program and my Custom Function Group.
    PLs: Do not paste me link to sap technical site with that example, because there takes the custom fields and UPDATE a CUSTOM TABLE. I need to update MARC!
    All the documentations i have read until now tell you how to add the field, ONLY the first part of the SOLUTION.
    Any help, pls?
    Good day and thank you!

    Hi Alex,
    In which way you are trying to update that custom filed. Have you written any logic in EXITS/BADIS?
    http://pavelgk.pbworks.com/f/6729224-Implement-Screen-Exit-for-MM01-Adding-New-Fields-in-Screen.pdf
    and
    Just read the OSS note mentioned earlier.
    Symptom
    You want to integrate customer-specific fields in material master maintenance.
    Other terms
    SAPLMGMM, RMDATIND, ALE, CI_MMH1, EXIT_SAPLMGMU_001 
    Solution
    To add customer-specific fields to an existing material master table (such as MARA or MARC) , you can proceed as follows as of Release 3.0C:
          1. Use an append structure to add the fields to the required table in the Dictionary (this is not a modification; for details, see the SAP document "ABAP/4 Dictionary"). In Release 3.x, the length of the field names must be the same as  the standard five character fields. This is necessary because of dynamic assignments. As of Release 4.0A, the lengths of the field names can be longer than five characters. If the changes of the fields should be recorded in the change document and taken into account during ALE distribution, set the 'Change document-relevant' indicator for the corresponding data elements. For table MARA in Release 3.x, you must also enhance the database view MARU because the database changes are carried out using this view. This small modification is no longer necessary as of Release 4.0A because the database view MARU is enhanced automatically when you enhance table MARA or the include EMARA (which is the data part of table MARA).
          2. Enhancing online maintenance in customized material master maintenance:
          Define a subscreen with your customer-specific fields in a customer-specific function group created as a copy of the standard function group MGD1.
          In Customizing, assign this subscreen to a maintenance screen using the "Copy customized material master" function. For details, see the Implementation Guide (IMG). As of Release 4.0A, program COPYMGD1 is available. You can use this program to create customer-specific function groups as required. This program is also incorporated in the Customizing function 'Configure customized material master'. Ensure that each field of the subscreen has a field statement in the flow logic, otherwise the data is not transported correctly. You can use subscreen SAPLMGD1 2002 as an example.
          If you want these fields to be subject to standard field selection, you must add new entries for them to the central field table for material master maintenance (T130F): 
          Application examples for standard field selection:
          The field is mandatory and is to be flagged with a "?".
          The field belongs exclusively to the purchasing user department. Purchasing data and MRP data are both contained on one screen. However, the MRP controller is not to see the purchasing data.
          The following data is required for each field:
                a) Field name        (T130F-FNAME)
                b) Field selection group (T130F-FGRUP)
                Here, you should use a standard field group if the customer field is subject to the same field selection as the standard fields of the standard field group. If it is not, use a customer-specific field group.
                You must then check and, if necessary, modify the attribute of the field group using the function "Maintain field selection for data screens" in Customizing under "Logistics Basic Data -> Material Master".
                Field groups 111 through 120 that are not used in the standard system are reserved as customer-specific field groups. As of Release 3.0F, additional customer field groups are available. (For details, see the IMG).
                c) Maintenance status (T130F-PSTAT)
                List of the user departments that may maintain the field. You can display possible values by using the input help for the maintenance status field in the Customizing activity "Configure Material Master" when maintaining logical screens.
                d) Reference        (T130F-KZREF)
                This indicator must be set if the field from the reference material should be proposed during creation with reference.
    Note: You cannot yet use Customizing to enhance table T130F; you can use only transaction SE16 (Data Browser) or transaction SM31. Future releases will include a separate Customizing function for maintaining customer-specific fields. See Note 306966. By implementing this note you can add entries to table T130F within Customizing. This type of maintenance is possible as of Release 4.5B.
    You may change the entries for standard fields only with regard to the reference data and field selection group. Changing other data for standard fields constitutes a modification. Therefore, you cannot use the Customizing function "Assign Fields to Field Groups" to change this data.
    In addition, you must not add new standard fields to table T130F.
          3. If you want to maintain customer-specific fields using data transfer by direct input or via ALE distribution, proceed as follows:
          Add the fields to central field table T130F (see above).
          Add the customer-specific fields to the data structures for the data transfer (for example, BMMH1 for the main data).
          Also, add the customer-specific fields to the tables in which the incorrect data is stored during direct input. These tables have the same name as the corresponding master data table and also have the suffix _TMP.
          For example: If you add customer-specific fields to table MARA, you should add the same fields to table MARA_TMP.
          If you use ALE, you must also add fields to the IDoc. To process enhanced IDocs, you can use enhancement MGV00001 with customer exit EXIT_SAPLMV01_002 for creating the IDocs and customer exit EXIT_SAPLMV02_002 for posting the IDocs.
          Prior to Release 3.0E, enhancing structure BMMH1 constitutes a modification. In this case, you must add the new fields tot the end of the structure before the last field (SENDE = record end indicator).
          As of Release 3.0F, structure BMMH1 contains the customer include CI_MMH1, which is part of the enhancement MGA0001. Here, you must proceed as follows:
                a) Add the customer-specific fields to include CI_MMH1.
                The names of the fields in CI_MMH1 must be identical to those of the corresponding fields in material master tables MARA, MARC and so on.
                Important: The fields must be CHAR type fields. Therefore, create CHAR type data elements whose lengths are identical to the output length of your fields in  table MARA and so on. Use these data elements in include CI_MMH1, but use the field names from table MARA and so on.
                b) Activate include CI_MMH1.
                c) If you have not used customer structure ZMMH1 before, create it as a copy of structure BMMH1 and delete the standard fields that you do not require. You are not permitted to delete field STYPE and include CI_MMH1 when doing this. If you have already used structure ZMMH1, add include CI_MMH1 to it.
                d) Activate structure ZMMH1. This also adds the customer-specific fields to ZMMH1.
    Run program RMDATING. This program generates routines which are supplied to your customer-specific fields from the input file. As of Release 4.5A, you also need to activate the routines/function modules generated by program RMDATING (especially, the MAT_MOVE_BMMH1_XXXX modules). Details about this subject (especially the procedure when using customer structure ZMMH1) are described in the IMG for transferring the material data under item 'Maintain Transfer Structure'. Also, check the declaration of structure WA in program RMMMBIMC to see whether it is declared with sufficient length. If necessary, enhance the declaration (for the time being, this still constitutes a minor modification).
    In addition, lengthen domain DI_DATA with CHAR 5000. As of Release 3.1H, this has already been done.
    Important: When using customer-specific fields, you can use only structure ZMMH1 to transfer the data. Otherwise, after the next SAP upgrade which contains new standard fields in structure BMMH1, the input files no longer match. If you want these new standard fields to be transferred, add them after your customer-specific fields (the order of the fields in structure ZMMH1 does not need to be the same as the order of the fields in BMMH1).
    If you want foreign key dependencies or fixed domain values to be checked, or another check for a customer field, this is possible up to and including Release 3.0D only by modifying the corresponding check function modules. As of Release 3.0E, you can use function exit EXIT_SAPLMGMU_001 (SAP enhancement MGA00001) for these purposes.
    If you want to use engineering change management to schedule future changes for your customer-specific fields or you want to use the 'Display at Key Date' function, execute program GENERATE in addition. This program generates the necessary assignments for interpreting the change documents. With regard to engineering change management, you must read Notes 60281, 60973, and 48962.
    To date, it is not possible to integrate customer-specific tables in material master maintenance without making a modification. However, you can create customer-specific development objects containing the essential additional logic. You can then integrate these development objects in your system as part of only a minor modification.
    check this link. It may helps you to solve your issue.
    Thanks
    Sravan

  • Significance of STAT field in JEST table

    In one of my report I need to extract the status of a equipment from JEST table, the field is STAT. Incidentally the table contains other two fields INACT and CHGNR.
    I am not getting the meaning and significance of each of the fields in this JEST table. Can anyone tell me the significance of this STAT field and its possible set of values.
    Please help me. It is a bit urgent.
    Thanks in advance.

    If you need to extract the status of a particular object, you can try using FM: STATUS_READ with the object number and 'X' for Only Active.
    Coming to your question, Field INACT of table JEST identifies whether the status is currently active or inactive. Field CHGNR determines the sequence in which the status'es are changed.
    Possible set of values determines on the Status Profile which is configurable and differs from System to System.
    Check in table TJ30 with the status profile to know the various status'es defined for the profile. For their descriptions you can check table: TJ30T or alternatively you can try view V_TJ30T.
    So for your sequence i would advice:
    1. Execute FM: STATUS_OBJECT_READ with Object Number to retreive the status profile.
    2. Execute FM: STATUS_READ to extract the active status of the object.
    3. Extract the description of the status from table TJ30T with the status profile and status.
    Hope that helps.

  • Dynamic screen field values

    Hi,
    One quick question, I have created a screen with reference to a custome table fields and it is working fine. When I enter values for the first time, the values look ok in debug but when I change the values on the screen, the new values are not updated in the screen fields in debug. Old values are shown in the debug.
    I guess there is some kind of logic to do this. Like using the dynamic screen fields read or ....
    Can someone help me on this?
    Regards,
    Roopesh Singh

    hi there...
    when u first enter the values, they get into the work area related to the screen fields.....
    but when u change the values, they dont get changed in the workarea associated with the fields. since the data does not get updated in the fields, it wont show in the debugging mode. so chk ur code and make sure u update the data in the variables associated with the fields.
    do reward if helpful or get back with further queries.

Maybe you are looking for

  • Macbook Pro keeps restarting while connected to TV

    My Macbook Pro Mid 2009 keeps restarting with an error message when I play videos from it onto my TV. Below is the Error Log. Does anyone have any input or suggestions? Extra Info: OS X 10.9.5 2.8 GHZ Intel Core 2 Duo Just upgraded  to  8 GB ddr3 ram

  • How to activate the deactivated App view in itunes

    Hi, I try to sync a new App. It has worked in the past, and I can sync the iphone. Now, I have bought/downloaded a new app, I see it in iTunes, I want to sync it, but ... The Apps view is frozen/deactivated: foggy vew, I cannot activate/deactivate an

  • How to exit the execution in middle of a function module

    Hi Fox, I have a function which sometime needs more than 10 minutes to deliver a result. This is not acceptable thus this function will be given a time-out value in a second format after which the function should be stopped or killed. Do you have an

  • How to define a Value for an Attribute of an Class

    Hi, How to define a Value for an Attribute of a Class ... ( I need to change the value of an Attribute of a class in standard program .... Ex...    cl_hrce_masterswitches=>infotype_framework_is_active Here infotype_framework_is_active is the attribut

  • Since Yesterday I can't access iTunes Store

    Hi, On 8/7 i began experiencing an error to connect to iTunes Store when I am trying to buy items in the shop of a game my son plays and it has persisted for 2 days now. I have purchased items successfully in the past from this same game. There was a