Read dynamic field symbol Work Area before append to dynamic table

Hi experts:
I have a dynamic work area but before doing an append to the dynamic table, I need to do some validation on some fields of the work area in order to decide to append it or not, but I don't know how...
More or less this is the example
loop at so_kschl.
    field = so_kschl-low.
    if <t_dyntable>-field = 0. "if the value of this field in dinamic table is 0.
don't append
    else.
       APPEND <fs_dyntable> TO <t_dyntable>.  
    endif.
endloop.
Thank you very much for your help.
Miriam

Check this example, you read the component of the dynamic work area and assign it to a field-symbols. In this case, I validate that the entry is always 'a'.
DATA: i_lvc TYPE lvc_t_fcat WITH HEADER LINE,
      i_table TYPE REF TO data,
      l_style TYPE lvc_fname,
      l_warea TYPE REF TO data,
      l_name(7) VALUE 'VARCHAR'..
FIELD-SYMBOLS: <fs> TYPE table,
              <fs2> TYPE ANY,
              <fs3> TYPE ANY.
PARAMETERS p_char TYPE c LOWER CASE.
START-OF-SELECTION.
  i_lvc-fieldname = 'Varchar'.
  i_lvc-inttype = 'C'.
  i_lvc-intlen = 1.
  APPEND i_lvc.
  CALL METHOD cl_alv_table_create=>create_dynamic_table
  EXPORTING
  it_fieldcatalog = i_lvc[]
  IMPORTING
  ep_table = i_table
  e_style_fname = l_style.
  ASSIGN i_table->* TO <fs>.
  CREATE DATA l_warea LIKE LINE OF <fs>.
  ASSIGN l_warea->* TO <fs2>.
  <fs2> = p_char.
  ASSIGN COMPONENT l_name OF STRUCTURE <fs2> TO <fs3>.
  IF <fs3> = 'a'.
    WRITE: 'Component VARCHAR is a'.
*  APPEND <fs2> TO <fs>.
  ELSE.
    WRITE: 'Component VARCHAR is not a'.
  ENDIF.

Similar Messages

  • Field-symbols working

    Hi Friends,
    I am facing some problems with regards to handling of Field-symbols.
    1.  How can we do a move-corresponding like thing with a FIELD_SYMBOL. We have two Field-symbols and both are referring to lines in Internal tables. But there are some less fields in the Second Field-symbol(Work Area i.e. TYPE TABLE) than the First FIELD-SYMBOL(Work Area i.e. TYPE TABLE). I need to move the values in the Second using the First Field-symbol. How can we do this.
    I cannot do an Assign component as I cannot provide the Fieldname in the Second Field-symbol(Work Area).
    2. the Second problem is how can we clear any particular Field in the field-symbol(TYPE TABLE).
    Thanks and Regards,
    Arunava

    Hello Arunava,
    When you declare your field symbols, declare it like this:
    FIELD-SYMBOLS: <fs1> like line of ITAB1,
                   <fs2> like line of ITAB2.
    Then for
    1. After you have assigned the record to corresponding field symbols, you can do this statement
        MOVE-CORRESPONDING <fs1> to <fs2>
    2. You can do like this to clear individual fields
       LOOP AT ITAB1 assigning <fs1>.
          CLEAR <fs1>-field1.
          MODIFY ITAB1.
       ENDLOOP.

  • Read Dynamic Field Symbol

    Hello ,
    I have a field symbol where i am not aware of fields (Column Name) , i mean column names are Dynamic.
    Problem is i need to read this field symbol value , how can i do it . It will always have 1 record
    Example
    Field Symbol looks something like this
    <FS> Column Name dynamic -
    >
    A B C
    Record
    1 2 3
    So now i have to refer to Second Column (i.e. is B in this case) , how should i do
    What i tried .
    1. <FS>-(Column Name in variable in brackets) - It doesnt work , Error Message unable to interpret the number B
    2. <FS>[1] - Error out.

    For a structured data object <s>, you can use the statement
    <b>
    ASSIGN COMPONENT <comp> OF STRUCTURE <s> TO <FS>.
    </b>
    to assign one of its components <comp> to the field symbol <FS>. You can specify the
    component <comp> either as a literal or a variable. If <comp> is of type C or a structure which
    has no internal tables as components, it specifies the name of the component. If <comp> has any
    other elementary data type, it is converted to type I and specifies the number of the component.
    In the assignment is successful, SY-SUBRC is set to 0. Otherwise, it returns 4.

  • Read Data from the dynamic Field Symbol with key ?

    Dear All,
    I've  2 dynamic internal tables in the form of field symbols.
    Now,I want to loop the item field symbol, read the header field symbol content and then move the corresponding into a final field symbol.
    How to read the field symbol with key ?
    When I'm trying to give the key clause in the paranthesis it's giving a syntax error.
    Any clues ?
    FYI .....
    * Get the Dynamic Field and Value for the Date/Year and convert it into Year value
      LOOP AT <fs_t_son> ASSIGNING <wa_son>.
        ASSIGN COMPONENT gwa_znrows_def-fieldname OF STRUCTURE <wa_son> TO <fs_year>.
        IF sy-subrc = 0.
          CLEAR gv_string.
          MOVE <fs_year> TO gv_string.
          CLEAR gv_year.
          gv_year = gv_string.
          <fs_year> = gv_year.
        ELSE.
    * When the Date/year Field is not in the Table then -->
    * Get the Dynamic Field and Value
          ASSIGN COMPONENT gwa_znrows_def-kfldname OF STRUCTURE <wa_rson> TO <fs_value>.
    * Populate field for Dynamic Where condition
          CLEAR gv_value.
          CONCATENATE '''' <fs_value> '''' INTO gv_value.
          CONCATENATE gwa_znrows_def-kfldname '=' gv_value INTO gt_where SEPARATED BY space.
          APPEND gt_where.
          CLEAR gt_where.
          READ TABLE <fs_t_rson> ASSIGNING <wa_rson> ( gt_where ).  "Key clause
        ENDIF.  " if sy-subrc = 0.  "Assign
      ENDLOOP.
    Thanks & regards,
    Deepu.K

    TYPES: BEGIN OF line,
             col1 TYPE c,
             col2 TYPE c,
           END OF line.
    DATA: wa TYPE line,
          itab TYPE HASHED TABLE OF line WITH UNIQUE KEY col1,
          key(4) TYPE c VALUE 'COL1'.
    FIELD-SYMBOLS <fs> TYPE ANY TABLE.
    ASSIGN itab TO <fs>.
    READ TABLE <fs> WITH TABLE KEY (key) = 'X' INTO wa.
    The internal table itab is assigned to the generic field symbol <fs>, after which it is possible to address the table key of the field symbol dynamically. However, the static address
    READ TABLE <fs> WITH TABLE KEY col1 = 'X' INTO wa.
    is not possible syntactically, since the field symbol does not adopt the key of table itab until runtime. In the program, the type specification ANY TABLE only indicates that <fs> is a table. If the type had been ANY (or no type had been specified at all), even the specific internal table statement READ TABLE <fs>  would not have been possible from a syntax point of view.

  • How to read dynamic field symbol

    hi all,
       ASSIGN (tabname) TO <fs_tab>.
       in above code i am passing dynamic table to fs_tab
      can anyone tell me how can i read this field symbol........
      in other words i want to read dynamic field symbols

    Hi,
    you could do without the field-symbols:
    select from variable table
    grtz,
    Koen

  • Reading a field symbol whose structure is dynamic

    Hi Experts,
    I have used the concept of dynamic internal tables to select data from COSS/COSP for e.g.database tables.Field symbol of type " ANY TABLE" has been used to select data , as the dynamic structure is assigned directly to the field symbol.
    To calculate the values of various fields I need to read the this field symbol for diferent line items , but I get a compilation error saying " Key not Found ". I understand that I am not able to read the field symbol because its structure is of type 'ANY TABLE' .How do I read this field symbol ?
    The field symbol gets the structure of dynamic internal table as formed initially by using class concept.Is their any way in which I could get the structure of this field symbol or any other way to read it?
    Thanks in advance.
    Regards
    Reetwika

    Hi Ritwika,
    Even if u use the concept if dynamic internal table, u can read the each of the field of ur structure,
    if u know the name of the field.
    for example:
    MATNR being one of the field of internal table
    field-symbols : <fs> type any.
    loop at <fs_it> into <fs_wa>.
    ASSIGN COMPONENT 'MATNR' OF STRUCTURE <fs_wa> to <fs_matnr>.
    " in this case matnr field value will be assigned to the field symbol <fs_matnr>, so it can be used further.
    endloop.
    " do reply if still confused.
    Rohit G
    Edited by: Rohit Gaharwar on Aug 12, 2009 11:51 AM

  • Dynamic Field Symbols with Structures

    Hello,
    I am stuck on a piece of code and looking for some help.  I am trying to figure out how to assign values in a structure of a dynamically defined field symbol to the structure inside another dynamically defined field symbol.  Here is my code and some comments.  Basically I am uploading data via a flatfile and placing it into a dynamically defined field symbol.
    DATA:   
    lr_area     TYPE REF TO cl_sem_planarea_attributes, 
    lr_t_data   TYPE REF TO data, 
    lr_s_data   TYPE REF TO data, 
    lr_s_chas   TYPE REF TO data, 
    lr_s_kyfs   TYPE REF TO data.
    FIELD-SYMBOLS:      
    <lt_data> TYPE STANDARD TABLE,    
    <ls_data> TYPE ANY,    
    <ls_chas> TYPE ANY,    
    <ls_kyfs> TYPE ANY.
    DATA: ls_chasel TYPE upc_ys_chasel,     
    ls_charng TYPE upc_ys_charng.
    FIELD-SYMBOLS:
    <f> TYPE ANY,              
    <chas> TYPE TABLE,              
    <kyfs> TYPE ANY. 
    CALL METHOD cl_sem_planarea_attributes=>get_instance   
    EXPORTING       i_area      = i_area   
    RECEIVING       er_instance = lr_area. 
    CHECK sy-subrc = 0. 
    CREATE DATA lr_s_data TYPE (lr_area->typename_s_data). 
    ASSIGN lr_s_data->*   TO <ls_data>. 
    CREATE DATA lr_t_data TYPE (lr_area->typename_t_data). 
    ASSIGN lr_t_data->*   TO <lt_data>. 
    CREATE DATA lr_s_chas TYPE (lr_area->typename_s_chas). 
    ASSIGN lr_s_chas->*   TO <ls_chas>. 
    CREATE DATA lr_s_kyfs TYPE (lr_area->typename_s_kyfs). 
    ASSIGN lr_s_kyfs->*   TO <ls_kyfs>. 
    LOOP AT gt_file INTO ls_file.   
    CLEAR <ls_data>.   
    MOVE-CORRESPONDING ls_file TO <ls_kyfs>. " Map key figures   
    MOVE-CORRESPONDING ls_file TO <ls_chas>. " Map chars
    *    MOVE-CORRESPONDING ls_file TO <ls_data>. " Map data
    *        ASSIGN COMPONENT 'ls_chas' OF STRUCTURE <ls_Data> TO <chas> .
    *        IF sy-subrc = 0.
    **          <chas> = <ls_chas>.
    *MOVE-CORRESPONDING <ls_chas> to <chas>.
    *        ENDIF.     
    <chas> = <ls_chas>.     
    LOOP AT <chas> INTO ls_chasel.     
    READ TABLE ls_chasel-t_charng INTO ls_charng INDEX 1.     
    IF sy-subrc = 0 AND ls_charng-option = 'EQ'.       
    ASSIGN COMPONENT ls_chasel-chanm OF STRUCTURE <ls_chas> TO <ls_data>.       
    IF sy-subrc = 0.         
    <ls_data> = ls_charng-low.       
    ENDIF.     
    ENDIF.   
    ENDLOOP.   
    COLLECT <ls_data> INTO <lt_data>. 
    ENDLOOP.
    Ls_chasel has 2 components:
    Chanm (a char 30 which contains the component’s name)
    T_CHARNG (a table with values for chanm)
    Ls_data has 2 components:
    S_chas (a structure with a list of components and values – same list as would have)
    S_kyfs (a structure with a list of components and values – same list as would have)
    Lt_data is a table of ls_data
    I need to get the data in ls_chas into the ls_chas structure of ls_data and the ls_kyfs data into the ls_kyfs structure of ls_chas and append ls_chas to lt_data.  Anything that is commented out is something I tried that didn't work.  RIght now I get a dump at the 'loop at <chas> into ls_chasel' that the field symbol is not assigned.
    Thanks for your help!

    It looks like the the original poster didn't completely understand all he was doing. (This is why I always recommend getting an ABAP programmer in for what is, essentially, advanced ABAP programming, rather than someone "kind of familiar" with ABAP trying it - we're often available at very reasonable rates ).
    It seems he's using ito_chasel to set the fixed values (which is in fact quite smart!). What isn't required, so far as I can tell without implementing, are any of the statements involving <ls_kyfs> or <ls_chas>.
    The following should be sufficient (with the necessary declarations etc. - but really: omit <ls_kyfs> and <ls_chas> - I'm sure they're not needed and they confuse things).
    " Go through the data from the flat file
    LOOP AT gt_file INTO ls_file.
      CLEAR <ls_data>.
      " Transfer the characteristics
      MOVE-CORRESPONDING ls_file TO <s_chas>.
      " Transfer the key figure
      MOVE-CORRESPONDING ls_file TO <s_kyfs>.
      " Go through the fixed characteristic selections from the package
      LOOP AT ito_chasel INTO ls_chasel.
        " We only care about the first value (if there is one).
        READ TABLE ls_chasel-s_charng INTO ls_charng INDEX 1.
        " Check there is a first value and that it is fixed
        CHECK sy-subrc IS INITIAL AND ls_charng EQ 'EQ'.
        " Get access to that characteristic
        FIELD-SYMBOLS <fixed_value> TYPE ANY.
        ASSIGN COMPONENT ls_chasel-chanm OF STRUCTURE <s_chas> TO <fixed_value>.
        " Make sure that it exists in the data structure
        CHECK sy-subrc IS INITIAL.
        " Set the value
        <fixed_value> = ls_charng-low.
      ENDLOOP.
      COLLECT <ls_data> INTO <lt_data>.
    ENDLOOP.

  • Dynamic field symbol

    Hello :i would like to ask one favor , how can i define a field symbol, that can recieve a dynamic variable
    segment of code:
    CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fldcat
        IMPORTING
          ep_table        = it_dynamic.
      ASSIGN it_dynamic->* TO <dyn_table>.
    CREATE DATA wa_dynamic LIKE line of <dyn_table>.
      ASSIGN wa_dynamic->* TO <dyn_wa>. " this one 'wa_dynamic'  i need to sent to <dyn_wa>
    thanks a lot

    HI
    GOOD
    Generic Type Specification
    The following types allow you more freedom when using actual parameters. The data object only needs to have the selection of attributes specified.
    Typing
    Check for data object
    No type specification
    TYPE ANY
    All types of data object are accepted. The field symbol adopts all of the attributes of the data object.
    TYPE C, N, P, or X
    Only data objects with type C, N, P, or X are accepted. The field symbol adopts the field length and DECIMALS specification (type P) of the data object.
    TYPE TABLE
    The system checks whether the data object is a standard internal table. This is a shortened form of TYPE STANDARD TABLE (see below).
    TYPE ANY TABLE
    The system checks whether the data object is an internal table. The field symbol inherits all of the attributes (line type, table type, key) from the data object.
    TYPE INDEX TABLE
    The system checks whether the data object is an index table (standard or sorted table). The field symbol inherits all of the attributes (line type, table type, key) from the data object.
    TYPE STANDARD TABLE
    The system checks whether the data object is a standard internal table. The field symbol inherits all of the remaining attributes (line type, key) from the data object.
    TYPE SORTED TABLE
    The system checks whether the actual parameter is a sorted internal table. The field symbol inherits all of the remaining attributes (line type, key) from the data object.
    TYPE HASHED TABLE
    The system checks whether the actual parameter is a hashed internal table. The field symbol inherits all of the remaining attributes (line type, key) from the data object.
    If you specify a type generically, remember that the attributes inherited by the field symbol from the program are not statically recognizable in the program. You can, at most, address them dynamically.
    TYPES: BEGIN OF line,
             col1 TYPE c,
             col2 TYPE c,
           END OF line.
    DATA: wa TYPE line,
          itab TYPE HASHED TABLE OF line WITH UNIQUE KEY col1,
          key(4) TYPE c VALUE 'COL1'.
    FIELD-SYMBOLS <fs> TYPE ANY TABLE.
    ASSIGN itab TO <fs>.
    READ TABLE <fs> WITH TABLE KEY (key) = 'X' INTO wa.
    The internal table ITAB is assigned to the generic field symbol <FS>, after which it is possible to address the table key of the field symbol dynamically. However, the static address
    READ TABLE <fs> WITH TABLE KEY col1 = 'X' INTO wa.
    is not possible syntactically, since the field symbol does not adopt the key of table ITAB until runtime. In the program, the type specification ANY TABLE only indicates that <FS> is a table. If the type had been ANY (or no type had been specified at all), even the specific internal table statement READ TABLE <FS> would not have been possible.
    If you adopt a structured type generically (a structure, or a table with structured line type), the individual components cannot be addressed in the program either statically or dynamically. In this case, you would have to work with further field symbols and the method of assigning structures component by component.
    Specifying the Type Fully
    When you use the following types, the technical attributes of the field symbols are fully specified. The technical attributes of the data objects must correspond to those of the field symbol.
    Typing
    Technical attributes of the field symbol
    TYPE D, F, I, or T
    The field symbol has the technical attributes of the predefined elementary type
    TYPE <type>
    The field symbol has the type <type>. This is a data type defined within the program using the TYPES statement, or a type from the ABAP Dictionary
    TYPE REF TO <cif>|DATA
    The field symbol is a reference variable for the class or interface <cif>, or for a data object.
    TYPE LINE OF <itab>
    The field symbol has the same type as a line of the internal table <itab> defined using a TYPES statement or defined in the ABAP Dictionary
    LIKE <f>
    The field symbol has the same type as an internal data object <f> or structure, or a database table from the ABAP Dictionary
    When you use a field symbol that is fully typed, you can address its attributes statically in the program, since they are recognized in the source code. If you fully specify the type of a field symbol as a reference or structured data object, you can address it as you would the data object itself, once you have assigned an object to it. So, for example, you could address the components of a structure, loop through an internal table, or create an object with reference to a field symbol.
    REPORT demo_field_symbols_type .
    DATA: BEGIN OF line,
             col1(1) TYPE c,
             col2(1) TYPE c VALUE 'X',
           END OF line.
    FIELD-SYMBOLS <fs> LIKE line.
    ASSIGN line TO <fs>.
    MOVE <fs>-col2 TO <fs>-col1.
    The field symbol <FS> is fully typed as a structure, and you can address its components in the program.
    Attaching a structure to a field symbol
    The STRUCTURE addition forces a structured view of the data objects that you assign to a field symbol.
    FIELD-SYMBOLS <FS> STRUCTURE <s> DEFAULT <f>.
    The structure <s> is either a structured local data object in the program, or a flat structure from the ABAP Dictionary. <f> is a data object that must be assigned to the field symbol as a starting field. However, this assignment can be changed later using the ASSIGN statement.
    When you assign a data object to the field symbol, the system only checks that it is at least as long as the structure. You can address the individual components of the field symbol. It has the same technical attributes as the structure <s>.
    If <s> contains components with type I or F, you should remember the possible effects of alignment. When you assign a data object to a field symbol with a structure, the data object must have the same alignment, otherwise a runtime error may result. In such cases, you are advised to assign such data objects only to structured field symbols, which retain the same structure as the field symbol at least over the length of the structure.
    The STRUCTURE is obsolete; you should no longer use it. Field symbols defined using the STRUCTURE addition are a mixture of typed field symbols and a utility for casting to either local or ABAP Dictionary data types. If you want to define the type of a field symbol, include the TYPE addition in a FIELD-SYMBOLS statement. If you want to use casting, include the CASTING addition in an ASSIGN statement.
    Example using the obsolete STRUCTURE addition:
    DATA: wa(10) VALUE '0123456789'.
    DATA: BEGIN OF line1,
             col1(3),
             col2(2),
             col3(5),
          END OF line1.
    DATA: BEGIN OF line2,
             col1(2),
             col2 LIKE sy-datum,
          END OF line2.
    FIELD-SYMBOLS: <f1> STRUCTURE line1 DEFAULT wa,
                   <f2> STRUCTURE line2 DEFAULT wa.
    WRITE: / <f1>-col1, <f1>-col2, <f1>-col3,
           / <f2>-col1, <f2>-col2.
    Example using the correct syntax (TYPE and CASTING):
    DATA: wa(10) VALUE '0123456789'.
    DATA: BEGIN OF line1,
             col1(3),
             col2(2),
             col3(5),
          END OF line1.
    DATA: BEGIN OF line2,
             COL1(2),
             COL2 LIKE sy-datum,
          END OF line2.
    FIELD-SYMBOLS: <f1> LIKE line1.
    ASSIGN wa TO <f1> CASTING.
    FIELD-SYMBOLS: <f2> LIKE line2.
    ASSIGN wa TO <f2> CASTING.
    WRITE: / <f1>-col1, <F1>-col2, <F1>-col3,
           / <f2>-col1, <F2>-col2.
    In both cases, the list appears as follows:
    012 34 56789
    01 2345/67/89
    This example declares two field symbols to which different structures are attached. The string WA is then assigned to each of them. The output shows that the field symbols assign the strings component by component according to the type of the components.
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb387a358411d1829f0000e829fbfe/content.htm
    THANKS
    MRUTYUN

  • SOME FIELDS OF WORK AREA ARE CONVERTED TO ***** AT AT NEW STATEMENT

    HELLO
    SOME OF THE FIELDS OF WORK AREA ARE CONVERTED INTO *********** AT AT NEW STATEMENT .FIND BELOW THE CODE
    *& Report  YTEST_OBJECTS7
    REPORT  YTEST_OBJECTS7.
    Program Description
    Author.........: Jitendra Dash                                       *
    Creation date..: 17/09/2010                                                    *
    GAP ID/FS Id...:                                                     *
    Transport......:                                                     *
    Description u2026..:                                                     *
    CHANGE HISTORY u2013 Should be completed in reverse date order           *
    Revised by........: <Developer name>                                 *
    Change date.......: Date of creation>                                *
    CR/Defect No......:  <Change Request No>/ <Defect#<xxx>              *
    Transport.........: <Request No>                                     *
    Description.......: Description about modification                   *
    Data Declaration
    TYPES: BEGIN OF gx_input,
             NEMI      TYPE EXT_UI,
             DIVISION  TYPE SPARTE ,
             DATE      TYPE ERDAT,
             DATE1     TYPE ERDAT,
           END OF gx_input.
    TYPES: BEGIN OF gx_input1,
             NEMI      TYPE EXT_UI,
             DIVISION  TYPE SPARTE ,
             DATE      TYPE ERDAT,
             DATE1     TYPE ERDAT,
             int_ui    TYPE INT_UI,
             ANlage    type   anlage,
             SERVICE   TYPE SERCODE,
             SERVICEID TYPE SERVICE_PROV,
             SPARTE    TYPE SPARTE,
            END OF gx_input1.
    TYPES : BEGIN OF gx_euitrans,
            INT_UI TYPE INT_UI,
            EXT_UI type EXT_UI,
            END OF gx_euitrans.
    TYPES : BEGIN OF gx_eservice,
            INT_UI TYPE INT_UI,
            SERVICE TYPE SERCODE,
            SERVICEID TYPE SERVICE_PROV,
            SPARTE    TYPE SPARTE,
            END OF gx_eservice.
    TYPES : BEGIN OF gx_inst,
            int_ui TYPE INT_UI,
            ANlage type   anlage,
            END OF gx_inst.
    TYPES : BEGIN OF gx_ever,
            ANLAGE TYPE anlage,
            EINZDAT TYPE EINZDAT,
            AUSZDAT TYPE AUSZDAT,
            VERTRAG type VERTRAG,
            vkonto TYPE VKONT_KK,
            END OF gx_ever .
    TYPES : BEGIN OF gx_fkkvkp,
            VKONT type VKONT_KK,
            GPART type GPART_KK,
            END OF gx_fkkvkp.
    DATA : GIT_INPUT TYPE STANDARD TABLE OF GX_INPUT,
           git_euitrans TYPE STANDARD TABLE OF gx_euitrans,
           git_eservice TYPE STANDARD TABLE OF gx_eservice,
           git_inst TYPE STANDARD TABLE OF gx_inst,
           git_ever TYPE STANDARD TABLE OF  gx_ever,
           GIT_INPUT1 TYPE STANDARD TABLE OF GX_INPUT1,
           GIT_fkkvkp TYPE STANDARD TABLE OF GX_fkkvkp,
           WA_INPUT TYPE gx_input,
           wa_euitrans LIKE LINE OF git_euitrans,
           wa_eservice like LINE OF git_eservice,
           WA_inst LIKE LINE OF git_inst,
           wa_ever LIKE LINE OF git_ever,
           wa_INPUT1 like LINE OF git_INPUT1,
           wa_fkkvkp like LINE OF GIT_fkkvkp.
    DATA: gv_v_localfile TYPE localfile,
          gv_g_localfile type string,
          gv_g_alocalfile type string,
          gv_g_sender type SERVICE_PROV,
          gv_g_reciever type SERVICE_PROV.
    CONSTANTS : GC_AINP TYPE c LENGTH 50 VALUE '/tmp'.
    ************Selection screen for input *********************
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t1.
    PARAMETERS : p_rad1 RADIOBUTTON GROUP grp DEFAULT 'X' USER-COMMAND chk,
                 p_rad2 RADIOBUTTON GROUP grp,
                 p_file TYPE file_table-filename MODIF ID m1,
                 p_afile TYPE file_table-filename MODIF ID m2.
    SELECTION-SCREEN END OF BLOCK b1.
    ***************Initialization*****************************
    INITIALIZATION.
      t1 = text-001.
    ***Selection of Appl ser and Presen ser for I/P file******
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF p_rad1 = 'X'.
          IF screen-group1 = 'M2'.
            screen-active = 0.
            MODIFY SCREEN.
          ENDIF.
        ELSEIF p_rad2 = 'X'.
          IF screen-group1 = 'M1'.
            screen-active = 0.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    **F4 help for inputting the Filename from presentation Ser*
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          program_name  = sy-repid
          dynpro_number = sy-dynnr
          field_name    = p_file
        CHANGING
          file_name     = gv_v_localfile
        EXCEPTIONS
          mask_too_long = 1
          OTHERS        = 2.
      IF sy-subrc = 0.
        MOVE gv_v_localfile TO p_file.
        move gv_v_localfile to gv_g_localfile.
      ENDIF.
    ***F4 help for file on Application Server*******************
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_afile.
      CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
        EXPORTING
          directory        = GC_AINP
          filemask         = ' '
        IMPORTING
          serverfile       = p_afile
        EXCEPTIONS
          canceled_by_user = 1
          OTHERS           = 2.
      IF sy-subrc = 0.
        move p_afile to gv_g_alocalfile.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    START-OF-SELECTION.
      IF p_rad1 = 'X'.
    *************Upload file into Itab from pres server*********
        CALL FUNCTION 'GUI_UPLOAD'
           EXPORTING
             FILENAME                      = gv_g_localfile
      FILETYPE                      = 'ASC'
            HAS_FIELD_SEPARATOR           = '|'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
           TABLES
             DATA_TAB                      = GIT_INPUT
        EXCEPTIONS
          FILE_OPEN_ERROR               = 1
          FILE_READ_ERROR               = 2
          NO_BATCH                      = 3
          GUI_REFUSE_FILETRANSFER       = 4
          INVALID_TYPE                  = 5
          NO_AUTHORITY                  = 6
          UNKNOWN_ERROR                 = 7
          BAD_DATA_FORMAT               = 8
          HEADER_NOT_ALLOWED            = 9
          SEPARATOR_NOT_ALLOWED         = 10
          HEADER_TOO_LONG               = 11
          UNKNOWN_DP_ERROR              = 12
          ACCESS_DENIED                 = 13
          DP_OUT_OF_MEMORY              = 14
          DISK_FULL                     = 15
          DP_TIMEOUT                    = 16
          OTHERS                        = 17
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ELSEIF p_rad2 = 'X'.
    *************Upload file into Itab from Applic server*********
    ************file should be ; seperated and not tab seper******
       TRANSLATE gv_g_alocalfile USING '\/'.
       OPEN DATASET gv_g_alocalfile FOR INPUT MESSAGE gv_LC_MESSAGE in TEXT MODE ENCODING DEFAULT.
       IF sy-subrc = 0.
         DO.
           READ DATASET gv_g_alocalfile INTO wa_xls.
           IF sy-subrc IS NOT INITIAL.
             EXIT.
           ELSE.
             APPEND wa_xls TO git_xls.
           ENDIF.
         ENDDO.
       ENDIF.
       close DATASET gv_g_alocalfile.
      ENDIF.
      SELECT INT_UI EXT_UI from EUITRANS
                           into CORRESPONDING FIELDS OF TABLE git_euitrans
                           for ALL ENTRIES IN  GIT_INPUT
                           WHERE ext_ui = GIT_INPUT-NEMI.
      SElect INT_UI
             SERVICE
             SERVICEID
             SPARTE    from ESERVICE
                       into CORRESPONDING FIELDS OF TABLE git_eservice
                       FOR ALL ENTRIES IN git_euitrans
                       where INT_UI = git_euitrans-INT_UI .
      SELECT INT_UI
             ANLAGE from euiinstln
                    into CORRESPONDING FIELDS OF TABLE GIT_INST
                    FOR ALL ENTRIES IN  git_eservice
                    WHERE INT_UI = git_eservice-INT_UI.
      LOOP AT git_eservice into wa_eservice.
        READ TABLE git_euitrans into wa_euitrans
                                with KEY int_ui = wa_eservice-int_ui.
        IF SY-SUBRC = 0.
          READ TABLE git_input into wa_input
                               WITH key NEMI = wa_euitrans-EXT_UI.
          IF SY-SUBRC = 0.
            READ TABLE  GIT_INST into WA_INST
                                     with key int_ui = wa_eservice-int_ui.
             IF Sy-subrc = 0.
                  wa_input1-NEMI = wa_input-NEMI      .
                  wa_input1-DIVISION = wa_input-DIVISION.
                  wa_input1-DATE = wa_input-DATE.
                  wa_input1-DATE1 = wa_input-DATE1.
                  wa_input1-int_ui = wa_eservice-int_ui.
                  wa_input1-anlage = WA_INST-anlage.
                  wa_input1-SERVICE = wa_eservice-service.
                  wa_input1-SERVICEID = wa_eservice-serviceid.
                  wa_input1-SPARTE  = wa_eservice-sparte.
            Append wa_input1 to git_input1.
             ENDIF.
          ENDIF.
        ENDIF.
        clear : wa_eservice,wa_input,WA_INST,wa_euitrans,wa_input1 .
      ENDLOOP.
      SELECT anlage
             EINZDAT
             AUSZDAT
             VERTRAG
             VKONTO  from ever
                     into CORRESPONDING FIELDS OF TABLE git_ever
                     FOR ALL ENTRIES IN git_input1
                     WHERE anlage = git_input1-ANLAGE
                       and EINZDAT = git_input1-DATE
                       or  AUSZDAT = git_input1-DATE1.
      Select Vkont Gpart from fkkvkp
                         into CORRESPONDING FIELDS OF TABLE git_fkkvkp
                         for ALL ENTRIES IN git_ever
                         where  Vkont = git_ever-Vkonto.
    LOOP AT  git_input1 INTO wa_input1 .
    IF wa_input1-SPARTE = 01  .
    CASE wa_input1-SERVICE.
      WHEN 'FRMP'.
        gv_g_sender = wa_input1-SERVICEID.
      WHEN 'LNSP'.
        gv_g_reciever = wa_input1-SERVICEID.
    ENDCASE.
    ELSEIF wa_input1-SPARTE = 02 .
    CASE wa_input1-SERVICE.
      WHEN 'FRO'.
        gv_g_sender = wa_input1-SERVICEID.
      WHEN 'DB'.
        gv_g_reciever = wa_input1-SERVICEID.
    ENDCASE.
    ENDIF.
    data : int_ui TYPE INT_UI.
    *int_ui = wa_input1-int_ui .
    AT NEW int_ui .
    READ TABLE git_ever into wa_ever with key  anlage = wa_input1-anlage.
    READ TABLE git_fkkvkp INTO wa_fkkvkp with key Vkont = wa_ever-Vkonto.
    CALL FUNCTION 'ZIN_COMEV_CUSTDETAILNOTIF_OUT'
      EXPORTING
        Y_SENDER              = gv_g_sender
        Y_RECEIVER            = gv_g_reciever
        Y_PARTNER             = wa_fkkvkp-gpart
        Y_BASIC_PROCESS       = 'ZCDNO'
      Y_SWITCHNUM           =
      Y_SEN_LOAD            =
        Y_INTUI               = wa_input1-int_ui
      Y_TRANSACTIONID       =
        Y_DATE                = wa_input1-DATE
    IMPORTING
      X_TASK_ID             =
    TABLES
       IDOC_STATUS           =
       IDOC_CONTRL           =
       XYT_ERROR             =
    EXCEPTIONS
      GENERAL_FAULT         = 1
      NOT_FOUND             = 2
      OTHERS                = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDAT.
    ENDLOOP.
    IN THIS PROGRAM AT AT NEW STATEMENT IN LOOP SOME OF THE FIELDS OF wa_input1 IS CONVERTED TO ***** E.G  wa_input1-anlage.
    pLEASE HELP ME OUT

    HELLO
    My Q is some fields at AT NEW statement turns into *****.Please help me out
    TYPES: BEGIN OF gx_input1,
             NEMI      TYPE EXT_UI,
             DIVISION  TYPE SPARTE ,
             DATE      TYPE ERDAT,
             DATE1     TYPE ERDAT,
             int_ui    TYPE INT_UI,
             ANlage    type   anlage,
             SERVICE   TYPE SERCODE,
             SERVICEID TYPE SERVICE_PROV,
             SPARTE    TYPE SPARTE,
            END OF gx_input1.
    GIT_INPUT1 TYPE  gx_input1.
    LOOP AT  git_input1 INTO wa_input1 .
    AT NEW int_ui .----
    >hERE FIELDS OF wa_input1 ARE TURNED INTO *                                                                               
    EX: wa_input1-ANLAGE =******** AFTER AT IN COMMAND.
    END AT
    eNDLOOP

  • Dynamic access to work area fields

    Hi
    I've got a DataBase table with 20 fields with different names.
    field1
    field2
    field3.
    field20
    I'm using a work area to read values and i wanna read an specific field of this work area.
    The problem is the following:
    I don't know the name of the field i need to access, instead, i have it in a field symbol.
    Is there any way i can get the value of this field???

    Hi,
    Try the following example
      DATA: i_TAB           LIKE PA0001 OCCURS 0 WITH HEADER LINE,
            l_field(50)     TYPE C,
            l_fieldname(50) TYPE C VALUE 'UNAME'.
      FIELD-SYMBOLS: <fieldxx> TYPE ANY,
                     <valxx>   TYPE ANY.
      ASSIGN l_fieldname TO <fieldxx>.
      SELECT * FROM PA0001 INTO TABLE I_TAB.
      LOOP AT I_TAB.
        CONCATENATE 'I_TAB-' <fieldxx> INTO l_field.
        ASSIGN (l_field) TO <valxx>.
        WRITE <valxx>.
      ENDLOOP.

  • Modifying value of dynamic field-symbol

    I have a requirement in which i need to access columns of a dynamic internal table , manipulate and update back to the dynamic internal table
    Names of the columns are also not fixed. This i am determing at the runtime.
    Following is the code used :
    Loop at <dyn_table> assigning <dyn_wa>.
    lv_field = p_fields " This is the field i am taking from the selection screen which needds to be manipulated.
    ASSIGN COMPONENT lv_field OF STRUCTURE <dyn_wa> TO <fs_value>.
    refresh itab.
    split <fs_value> at ',' into table itab.
    loop at itab.
    assign other fields of the source package to new splited table.
    ASSIGN <dyn_wa> TO <dyn_wa1>.
    I have to assign the valuein itab to the third field in field symbols.
    ( so the code would be added here)*******************
    append <dyn_wa1> to <dyn_table1>.
    endloop.
    endloop.
    Kindly suggest some solution for this above requiremnt.
    Regards,
    Amruta

    Hello,
    Just try to use the below codes in appropriate place and let me know if further issues..
    LOOP AT itab.
      ASSIGN COMPONENT 3 OF STRUCTURE <dyn_wa1> to <fs_value>.
      CLEAR : <fs_value>.
      <fs_value> = itab-field name.
      APPEND <dyn_wa1> TO <dyn_table1>.
    ENDLOOP.
    Thanks!

  • Change this code to dynamic(field symbols)

    hi,
    i do this code and it working o.k. but i wont to change it to dynamic code like field symbols what is the best way to do that?
    i reward
    Regards
    LOOP AT  pro_tab into wa_pro.
          CASE wa_pro-period+0(2).
            WHEN '01'.
              MOVE wa_pro-epop TO wa_tr-month1.
            WHEN '02'.
              MOVE wa_pro-epop TO wa_tr-month2.
            WHEN '11' .
              MOVE wa_pro-epop TO wa_tr-month11.
              WHEN '12' .
              MOVE wa_pro-epop TO wa_tr-month12.
          ENDCASE.
          AT LAST.
            APPEND wa_tr TO tr_tab.
          ENDAT.
        ENDLOOP.

    Hi Ricardo.
    Try this sample code and make changes to urs.
    DATA: v_field(30) TYPE c.
    DATA: BEGIN OF itab OCCURS 0,
           period(2),
           month01(3),
           month02(3),
           month03(3),
           month04(3),
           month05(3),
          END OF itab.
    FIELD-SYMBOLS : <fs> TYPE ANY.
    FIELD-SYMBOLS : <fs1> TYPE ANY.
    itab-period = '01'.
    APPEND itab.
    itab-period = '02'.
    APPEND itab.
    itab-period = '03'.
    APPEND itab.
    itab-period = '04'.
    APPEND itab.
    itab-period = '05'.
    APPEND itab.
    LOOP AT itab.
      UNASSIGN <fs1>.
      ASSIGN itab-period TO <fs1>.
      CONCATENATE 'ITAB-' 'MONTH' itab-period INTO v_field.
      UNASSIGN <fs>.
      ASSIGN (v_field) TO <fs>.
      CASE itab-period.
        WHEN <fs1>.
          IF <fs> IS NOT ASSIGNED.
            <fs> = 0.
          ELSE.
            <fs> = <fs1>.
          ENDIF.
      ENDCASE.
    ENDLOOP.
    LOOP AT itab.
      WRITE: itab-period, itab-month01, itab-month02, itab-month03,
      itab-month04, itab-month05.
    ENDLOOP.
    <b>Assign Points if useful.</b>

  • Dynamic Field-Symbol assignment - Short Dump

    Create three programs as mentioned:
    REPORT  zforms.
    *&      Form  form_fs_assign
    *       text
    FORM form_fs_assign.
      FIELD-SYMBOLS <fs> TYPE table.
      DATA: fs_itab LIKE STANDARD TABLE OF tab_matnr WITH HEADER LINE.
      break-point.
      ASSIGN ('(ZPROGRAM1)ITAB[]') TO <fs>.
      IF sy-subrc EQ 0.
        fs_itab[] = <fs>[].
        LOOP AT fs_itab.
          WRITE / fs_itab-matnr.
        ENDLOOP.
      ELSE.
        Write:/ sy-repid, 'field-symbol not assigned'.
      ENDIF.
    ENDFORM.                    "form_fs_assign
    REPORT zprogram1.
    DATA: itab LIKE STANDARD TABLE OF tab_matnr WITH HEADER LINE.
    itab-matnr = '1111'.
    APPEND itab.
    itab-matnr = '2222'.
    APPEND itab.
    WRITE:/ sy-repid.
    PERFORM form_fs_assign IN PROGRAM zforms.
    SUBMIT zprogram2.
    REPORT zprogram2.
    break-point.
    *-- enter (ZPROGRAM1)ITAB[] in the variable and press enter
    * the yellow icon stating that it doesn't exist appears
    * but when the following form is called, it does checks
    * the <fs> assign and doesnt gives any runtime error
    * while in Pricing routine, the similar situation
    * does gives the error
    PERFORM form_fs_assign IN PROGRAM zforms.
    *Execute zprogram1 and debug, works fine..*
    *Execute zprogram2, (ZPROGRAM1)ITAB[] doesn't exist, still it doesn't leads to short dump*
    *BUT, a very similar situation in a Pricing Requirment Routine leads to a short dump:*
    *Runtime Error          GETWA_NOT_ASSIGNED*
    *ShrtText    Field symbol has not yet been assigned.*
    *Pricing Routine Code Snippet:*
    *-- {3. -
    determine qualifying prior invoices in memory----
    FIELD-SYMBOLS: <fs_vbrk> TYPE table.
                FIELD-SYMBOLS: <fs_vbpa> TYPE table.
                FIELD-SYMBOLS: <fs_komv> TYPE table.
                DATA g_it_vbrk LIKE STANDARD TABLE OF vbrkvb WITH HEADER LINE.
                DATA g_it_vbpa LIKE STANDARD TABLE OF vbpavb WITH HEADER LINE.
                DATA g_it_komv LIKE STANDARD TABLE OF konv WITH HEADER LINE.
                DATA: l_vbrk_lines TYPE i.
                ASSIGN ('(SAPLV60A)XVBRK[]') TO <fs_vbrk>. <- "Error occurs here
                ASSIGN ('(SAPLV60A)XVBPA[]') TO <fs_vbpa>.
                ASSIGN ('(SAPLV60A)XKOMV[]') TO <fs_komv>.
                g_it_vbrk[] = <fs_vbrk>.
                g_it_vbpa[] = <fs_vbpa>.
                g_it_komv[] = <fs_komv>.
                DESCRIBE TABLE g_it_vbrk LINES l_vbrk_lines.
                READ TABLE g_it_vbrk INDEX l_vbrk_lines.
    ** remember to make vkorg and vtweg check for vbrk invoices
                DELETE g_it_vbrk WHERE vbeln = g_it_vbrk-vbeln.
                DELETE g_it_vbpa WHERE vbeln = g_it_vbrk-vbeln OR parvw <> 'WE'.
                DELETE g_it_komv WHERE knumv = g_it_vbrk-vbeln OR kschl <> 'ZF02' OR kbetr = 0.

    Hello friends,
    Rich,
    The piece of code you suggested didn't work, and still led to the short dump.
    Naimesh,
    I agree that XVBRK is not declared globally, and if it is a Table, and declared as global work area using Tables, we could have used it directly using ASSIGN (VBRK)...
    But, since its not the case, I am not able to do so...
    Still, my requirement remains the same. I have to get the invoices created (in memory) but not saved during a collective billing run.
    And the required data is available in the (SAPLV60A)XVBRK internal table, from which I am able to retrieve it for the first time, but clicking on the conditions tab in the item details leads to this short dump, becs (SAPLV60A)XVBRK[] isn't available at that moment. Still, if it is not available I suppose it should just set the sy-subrc to 4 instead of ending into a short-dump.
    Jürgen Hartwig,
    I know ZPROGRAM 1 can't work in ZPROGRAM 2, but it doesnt leads to the short dump either, does it? But in case of pricing it gives the run time error, this is exception I want to handle!
    XVBRK is not declared globally, but since SAPLV60A calls a perform in SAPLV61A, it remains in the ABAP stack and we can access it using (SAPLV60A)XVBRK[] kind of assignment.
    When the same is called during Item Conditions display, its PBO is in the stack but not other forms (in which it might have defined).
    Rich, is there a way to get all the variables available in scope at any instance during runtime?
    Well, Jürgen, I though it Germany it was called "schmutzig zuweisen" :-)... by the way, the same method has been used at several places in standard SAP programs with the sy-subrc check.
    Reference Data:
    when the assignment happens successfully, the ABAP Stack looks similar to:
    Call | Program   | Subroutine
    10   | SAPLV61A  | some_subrountine
    09   | SAPLV61A  | some_subrountine
    08   | SAPLV61A  | some_subrountine
    07   | SAPLV60A  | some_subrountine
    06   | SAPLV60A  | some_subrountine
    05   | SAPLV60A  | some_subrountine
    04   | SAPLV60A  | some_subrountine
    03   | SAPLV60A  | some_subrountine
    02   | SAPLV60A  | some_XKOMV_AUBE..subrountine
    01   | SAPLV60A  | PAI_some_subrountine
    when the assignment doesnt happens, the ABAP Stack looks similar to:
    04   | SAPLV61A  | some_subrountine
    03   | SAPLV61A  | some_subrountine
    02   | SAPLV61A  | some_subrountine
    01   | SAPLV60A  | PBO_some_subrountine

  • Internal - dynamic - field-symbols

    All,
    This is my requirement
    data in itab is
    NAME     ,  COUNT ,  STRTDATE,  ENDDATE, durinmin.
    a         123      10/1/08    10/1/08    12
    a         123      10/2/08    10/5/08    30
    a         123      10/3/08    10/8/08    15
    b         123      10/1/08    10/1/08    12
    b         123      10/2/08    10/5/08    30
    b         123      10/3/08    10/8/08    15
    to be displayed like
    name   count   10/1/08     10/2/08  10/3/08
    a     123      12          30        15
    b     123      12          30        15
    This is how I am coding...
    DATA:
    r_dyn_table TYPE REF TO data,
    r_wa_dyn_table TYPE REF TO data,
    r_dock_ctnr TYPE REF TO cl_gui_docking_container,
    r_alv_grid TYPE REF TO cl_gui_alv_grid,
    t_fieldcat1 TYPE lvc_t_fcat, "with cell color
    t_fieldcat2 TYPE lvc_t_fcat, "without cell color
    wa_fieldcat LIKE LINE OF t_fieldcat1,
    wa_cellcolors TYPE LINE OF lvc_t_scol,
    wa_is_layout TYPE lvc_s_layo.
    FIELD-SYMBOLS:
    <t_dyn_table> TYPE STANDARD TABLE,
    <wa_dyn_table> TYPE ANY,
    <t_cellcolors> TYPE lvc_t_scol,
    <w_field> TYPE ANY.
    data begin of itab
    NAME     ,
      COUNT     ,
      STRTDATE,
      ENDDATE,
    durinmin(6),
    end of itab.
    build catalog
    form build_cat_for_table.
      data : fname(6) value 'Day'.
      data : cntr(3) type n, ctext(10).
      wa_fieldcat-fieldname = 'NAME'.
      wa_fieldcat-inttype = 'C'.
      wa_fieldcat-outputlen = '32'.
      wa_fieldcat-coltext = 'Name'.
      wa_fieldcat-seltext = wa_fieldcat-coltext.
      APPEND wa_fieldcat TO t_fieldcat1.
      wa_fieldcat-fieldname = 'Wtavgtime'.
      wa_fieldcat-inttype = 'C'.
      wa_fieldcat-outputlen = '6'.
      wa_fieldcat-coltext = 'Wt Avg Time'.
      wa_fieldcat-seltext = wa_fieldcat-coltext.
      APPEND wa_fieldcat TO t_fieldcat1.
    *now add all the dates.
      loop at dtrange.
        cntr = 1.
        concatenate fname cntr into fname.
        ctext = dtrange-ddate.
        wa_fieldcat-fieldname = fname.
        wa_fieldcat-inttype = 'C'.
        wa_fieldcat-outputlen = '6'.
        wa_fieldcat-coltext = ctext.
        wa_fieldcat-seltext = wa_fieldcat-coltext.
        cntr = cntr + 1.
        clear fname.
        APPEND wa_fieldcat TO t_fieldcat1.
      endloop.
    endform.
    form fill_data.
    data : fname(6) value 'Day'.
      data : cntr(3) type n, ctext(10).
      CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
      it_fieldcatalog = t_fieldcat1
      IMPORTING
      ep_table = r_dyn_table
      EXCEPTIONS
      generate_subpool_dir_full = 1
      OTHERS = 2.
      IF sy-subrc ne 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      ASSIGN r_dyn_table->* TO <t_dyn_table>.
      CREATE DATA r_wa_dyn_table LIKE LINE OF <t_dyn_table>.
      ASSIGN r_wa_dyn_table->* TO <wa_dyn_table>.
    loop at itab.
      ASSIGN COMPONENT 'NAME' OF STRUCTURE <wa_dyn_table> TO <w_field>.
      <w_field> = itab-name.
      ASSIGN COMPONENT 'Wtavgtime' oF STRUCTURE <wa_dyn_table> TO <w_field>.
      <w_field> = itab-wtavgtime.
    cntr = 0.
      do.
        cntr = 1.
        concatenate fname cntr into fname.
      assign component fname of structure <wa_dyn_table> to <w_field>.
      <w_field> = itab-
      enddo.
    endform.
    This is where I am stucked how to put the dates as the columns while displaying and then put the duration in the rows corresponding to the columns.
    Any help is appriciated.
    THERE ARE LOT OF EXAMPLES on forum but some how I am not able to grasp it in my code, may be my knowledge of field symbols falling short. I guess I need to use Header / field groups but not clicking me .
    Thanks in advance.

    Hi,
    I changed ur code a little.... i dont know whether it will work or not...
    But it will give u some idea...
    1. when preparing the Fieldcatalog.
    *now add all the dates.
    LOOP AT dtrange.
    *  cntr = 1.
    *  CONCATENATE fname cntr INTO fname.
      fname = dtrange-ddate.    "---u may need to change this (but give a date here)
      ctext = dtrange-ddate.
      wa_fieldcat-fieldname = fname.
      wa_fieldcat-inttype = 'C'.
      wa_fieldcat-outputlen = '6'.
      wa_fieldcat-coltext = ctext.
      wa_fieldcat-seltext = wa_fieldcat-coltext.
      cntr = cntr + 1.
      CLEAR fname.
      APPEND wa_fieldcat TO t_fieldcat1.
    ENDLOOP.
    2. When adding values...
    SORT itab BY name.
    LOOP AT itab.
      ASSIGN COMPONENT 'NAME' OF STRUCTURE <wa_dyn_table> TO <w_field>.
      <w_field> = itab-name.
      ASSIGN COMPONENT 'Wtavgtime' OF STRUCTURE <wa_dyn_table> TO <w_field>.
      <w_field> = itab-wtavgtime.
      cntr = 0.
    *  DO.
    *    cntr = 1.
    *    CONCATENATE fname cntr INTO fname.
    *    ASSIGN COMPONENT fname OF STRUCTURE <wa_dyn_table> TO <w_field>.
      fname = itab-strtdate.                  "---same thing here
      ASSIGN COMPONENT fname OF STRUCTURE <wa_dyn_table> TO <w_field>.
      IF <w_field> IS ASSIGND.
        <w_field> = itab-durinmin.
      ENDIF.
      AT END OF name.
        MODIFY <t_dyn_table> FROM <wa_dyn_table>.
      ENDAT.
    *  ENDDO.
    ENDLOOP.

  • Custom Field in Work Area of SOCO

    Hi,
    I have to add custom fields in 'CARRY OUT SOURCING-WORK AREA' frame. Is there any standard structure available for this? i know there are standard structures available for shopping cart and others,  but i am not sure whether any structure is available to add custom field in 'CARRY OUT SOURCING-WORK AREA' frame. Please help me in finding out the exact Include structure, which is relevant for my requirement. Also let me know if i have to implement a BADI for this.
    Thanks in Advance,
    Suresh

    Hi Suresh,
    It seems that we are looking for the same answer but i haven't found yet the exact BADI to work with it...
    Here there is some approach:
    In the BBP_SCREENVARIANT BADI there's a method called GET_SCREENVARIANT_SOCO where you can modify the standard screen call from the 0300 dynpro to a 0301 or whatever number dynpro you want to, but the problem it's that i don't know where to generate this new screen and the logic to retrieve the information to fill the new fields that i need....
    So i wish this helps you a lil' bit and if you get something please let me know, i get also a post:
    Can we hide the 'Create Contract' button in SOCO ?
    If you can post any help there i will reward points...
    BR
    Gerardo.

Maybe you are looking for

  • How to get Guid of all form libraries

    I have  a requirement where i should get guid of all form libraries so that i dont need to hardcode the Guid of form library in server object model.How can i achieve this..

  • Crossfading Music's sound when other application make a sound

    I have a problem when im listening to a music with KMPLAYER or WMP & After that other application like viber make a sound , music's sound fade out for a second and fade in again this feature bother me how can i disable it ?my sound driver is realtek

  • PO lead time

    Hi experts, Can any one suggest me here PO date -PR date i created formula with replacement path its working fine  but both date available its ok if one of the date is not avilable the out put is displaying as date but i need If one of date is not av

  • Auto recovery for standalone

    Auto recovery; What are the steps to auto recovery in case of the database is a standalone. can we write the script to do it automatically. if so links pls Thanks!

  • [Solved]Havent had internet to update in a few months

    Has anything changed in a few months with the website to where my old august packages wouldnt be able to update..... I tried pacaur, packer and yaourt with no luck. I get the following error with pacaur: M|$├1─> sudo pacaur -Syu Password: :: Synchron