Method t create dynamic structure if the field name contains space

HI all,
I am creating a dynamic internal table. Everything id fine but when creating dynamic structure if field name contains space its giving me dump.Can you please suggest me any other methos which takes space in the field name.
Iam using the following method:
  gr_struct_typ  ?= cl_abap_structdescr=>create( p_components = gt_component ).
In the gt_component i have one of the field with space like ( RU STAND) and its giving error.
Any help will be appreciated.
thanks
Suku.

Hello Sukumar
If the space in the fieldname is a mistake then you could simply use:
CONDENSE ld_fieldname NO-GAPS.
However, I guess your fieldname should contain this space:
>...suggest me any other methos which takes space in the field name.
>
Well, have you ever seen a field or column name in SAP standard containing a space in its name???
Regards
  Uwe

Similar Messages

  • Create Dynamic Structure based on Field-Symbol

    Hi Experts!!
    I need to create a structure with dynamic structure included within.
    I have a parameter on sel. screen in which we provide table name.
    PARAMETERS: p_table TYPE tabname.
    FIELD-SYMBOLS: <gt_data> TYPE ANY TABLE.
    CREATE DATA gr_data TYPE TABLE OF (p_table).
    ASSIGN gr_data-* TO <gt_data>.
    Now I need a structure like below:
    TYPES: BEGIN OF type_test,
    struct TYPE <gt_data>, " dynamic structure based on table name entered on sel. screen
    fld1 TYPE c,
    fld2 TYPE n,
    END OF type_test.
    Can somebody suggest how to achieve this?
    Your help is highly appreciated. Thanks a lot

    You can view this thread where our friend Marcin rocks .. Dynamically create a type
    FIELD-SYMBOLS: <gt_data> TYPE ANY TABLE.
    FIELD-SYMBOLS: <gs_wa> TYPE ANY.
    data:wf_ref type ref to data.
    DATA:i_comp TYPE cl_abap_structdescr=>component_table,
         i_tot_comp TYPE cl_abap_structdescr=>component_table.
    CREATE DATA gr_data TYPE TABLE OF (p_table).
    ASSIGN gr_data-* TO <gt_data>.
    create data wf_ref like line of <gt_data>.
    assign wf_ref->* to <gs_wa>.
    *--Getting Compoents from existing type
      lf_struct ?= cl_abap_typedescr=>describe_by_name( '<GS_WA>' ).
      i_comp = lf_struct->get_components( ).
      APPEND LINES OF i_comp TO i_tot_comp.
    The idea is Get all the field details available it to i_tot_comp, then append individual fields manually to
    i_tot_comp as explained in the link and create a dynamic structure and table.

  • Populate information when double click on the field name

    I have this tree structure with the field names as shown at this picture.
    <a href="http://img164.imageshack.us/img164/426/treeaf0.jpg">http://img164.imageshack.us/img164/426/treeaf0.jpg</a>
    When I double click on the field name, I would like to populate the values related to the fieldname to the tab form next to the tree structure as should in the picture.
    How am I suppose to do this?
    My codes as shown below:
    *& Report  ZSCSDM_RULES_ENGINE_TRANSFORM_v4
    *& with Column Tree Structure & ABAP Generic code
    REPORT  ZSCSDM_MODIFY_TRANSFORM_HERA.
    GLOBAL DECLARATION
    ======================================================================
    SCREEN 9000 TABS (WIZARD-GENERATED CODES. DO NOT CHANGE)-------------*
    *&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'TRANSFORM'
    Rayden Tree Control Code.
    CLASS CL_TREE DEFINITION DEFERRED.
    CLASS CL_GUI_CFW DEFINITION LOAD.
    TYPES : ITEM_TABLE_TYPE LIKE STANDARD TABLE OF MTREEITM
              WITH DEFAULT KEY.
    DATA: BEGIN OF ITAB_MO OCCURS 1.
            INCLUDE STRUCTURE ZSCSDM_MO.
    DATA:END OF ITAB_MO.
    DATA: BEGIN OF ITAB_OF OCCURS 1.
            INCLUDE STRUCTURE ZSCSDM_OF.
    DATA:END OF ITAB_OF.
    DATA: BEGIN OF ITAB_OS OCCURS 1.
            INCLUDE STRUCTURE ZSCSDM_OS.
    DATA:END OF ITAB_OS.
    DATA: BEGIN OF ITAB_TREE OCCURS 1,
            UNIKEY(100) TYPE C,
            PARENT(100) TYPE C,
            TYPE(10) TYPE C,
            IN_AREA(1) TYPE C,
            NAME(14) TYPE C,
            DESC(255) TYPE C,
            TAG(50) TYPE C,
          END OF ITAB_TREE.
    DATA: TREE TYPE REF TO CL_GUI_COLUMN_TREE,
          DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          REPID TYPE SY-REPID,
          DYNNR TYPE SY-DYNNR,
          TREE_APPLICATION TYPE REF TO CL_TREE,
          LEVEL TYPE I,
          AREA_COUNT TYPE I,
          AREA_TEXT(30) TYPE C,
          AREA_DESC(30) TYPE C,
          AREA_KEY(30) TYPE C,
          OBJECT_TEXT(30) TYPE C,
          NODE_DISABLE(1) TYPE C,
          NODE_EXPAND(1) TYPE C,
          NODE_IMAGE(46) TYPE c,
          NODE_EXP_IMAGE(46) TYPE C,
          FIELD_KEY(30) TYPE C,
          SELECTED_KEY(30) TYPE C,
          SELECTED_ITEM(30) TYPE C,
          FIELD_COUNT(9) TYPE N,
          TAG_VALUE(255) TYPE C,
          TAG_1(255) TYPE C,
          TAG_2(255) TYPE C,
          PARENT_TAG_VALUE(50) TYPE C,
          TEMP_VALUE(100) TYPE C,
          COUNTER TYPE I,
          IN_AREA(1) TYPE C,
          STR_COUNTER TYPE STRING.
    DATA: EVENT TYPE CNTL_SIMPLE_EVENT,
          EVENTS TYPE CNTL_SIMPLE_EVENTS,
          NODE_TABLE TYPE TREEV_NTAB,
          ITEM_TABLE TYPE ITEM_TABLE_TYPE,
          NODE TYPE TREEV_NODE,
          ITEM TYPE MTREEITM,
          ITAB_TREE_WA LIKE LINE OF ITAB_TREE,
          NODE_WA LIKE LINE OF NODE_TABLE,
          ITEM_WA LIKE LINE OF ITEM_TABLE,
          OF_WA LIKE LINE OF ITAB_OF,
          HIERARCHY_HEADER TYPE TREEV_HHDR.
    FIELD-SYMBOLS: <FS_ITAB_TREE_ANY> TYPE ANY,
                   <FS_NODE_ANY> TYPE ANY,
                   <FS_OF_DESC> TYPE ANY.
    CONSTANTS: BEGIN OF C_TRANSFORM,
                 TAB1 LIKE SY-UCOMM VALUE 'TRANSFORM_FC1',
                 TAB2 LIKE SY-UCOMM VALUE 'TRANSFORM_FC2',
               END OF C_TRANSFORM.
    *&SPWIZARD: DATA FOR TABSTRIP 'TRANSFORM'
    CONTROLS:  TRANSFORM TYPE TABSTRIP.
    DATA:      BEGIN OF G_TRANSFORM,
                 SUBSCREEN   LIKE SY-DYNNR,
    PROG        LIKE SY-REPID VALUE 'ZSCSDM_MODIFY_TRANSFORM_V5',
                 PRESSED_TAB LIKE SY-UCOMM VALUE C_TRANSFORM-TAB1,
               END OF G_TRANSFORM.
    DATA:      OK_CODE LIKE SY-UCOMM.
    SCREEN 9001 FIELDS---------------------------------------------------*
    TABLES: ZSCSDM_MO, ZSCSDM_OF, ZSCSDM_OS, ZSCSDM_REF.
    DATA: REF_COND TYPE ZSCSDM_REF-REF_COND,
          G_EDITOR_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
          G_EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
    Rayden Dynamic generate ABAP Code.
    SCREEN 9002 FIELDS---------------------------------------------------*
    DATA: CODE_EDITOR_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
          CODE_EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
    TYPES: BEGIN OF DYN_CODE,
            LINE(255),
          END OF DYN_CODE.
    DATA: DYN_CODE_TABLE TYPE TABLE OF DYN_CODE.
    INITIALIZATION-------------------------------------------------------*
    DATA: INIT_MODE_9001 TYPE I VALUE 0. "0 = CREATE, 1 = EDIT
    SCREEN 9001 PBO AND PAI---------------------------------------------------*
    DATA: DETAILS_SCREEN(10) TYPE C VALUE 'Transform',
          RETURN_RESULT TYPE CHAR9.
    CONSTANTS: G_EDITOR_LENGTH TYPE I VALUE 255.
    DATA: BEGIN OF G_EDITOR_LINE OCCURS 0,
            REF_COND TYPE ZSCSDM_REF-REF_COND,
          END OF G_EDITOR_LINE.
    TYPES: BEGIN OF G_EDITOR_TABLE_LINE,
             LINE(G_EDITOR_LENGTH) TYPE C,
           END OF G_EDITOR_TABLE_LINE.
    DATA: G_EDITOR_TABLE TYPE TABLE OF G_EDITOR_TABLE_LINE,
          G_EDITOR_CONTENTS LIKE STANDARD TABLE OF LINE.
    DATA: INSERT_COUNTER TYPE I, INSERT_VALUE(G_EDITOR_LENGTH) TYPE C.
    *DATA: NONE_BLANK_COUNTER TYPE I, NONE_BLANK_CHECK(G_EDITOR_LENGTH) TYPE C,
         INSERT_COUNTER TYPE I, INSERT_VALUE(G_EDITOR_LENGTH) TYPE C,
         OFFSET_LEN_3AT TYPE I,OFFSET_LEN_DOT TYPE I.
    SAVE STATUS (SUCCESS=S OR FAIL=F)------------------------------------*
    DATA: SAVE_STATUS(1) TYPE C.
    Rayden Tree Control Code.
          CLASS CL_TREE DEFINITION
    CLASS CL_TREE DEFINITION.
      PUBLIC SECTION.
        METHODS : HANDLE_ITEM_DOUBLE_CLICK
                    FOR EVENT ITEM_DOUBLE_CLICK
                    OF CL_GUI_COLUMN_TREE
                    IMPORTING NODE_KEY ITEM_NAME.
    ENDCLASS.                    "CL_TREE DEFINITION
          CLASS CL_TREE IMPLEMENTATION
    CLASS CL_TREE IMPLEMENTATION.
      METHOD HANDLE_ITEM_DOUBLE_CLICK.
        SELECTED_KEY = NODE_KEY.
        SELECTED_ITEM = ITEM_NAME.
        CLEAR: TAG_VALUE.
        PERFORM CLEAR_SCREEN.
        IF ITEM_NAME = 'OBJECT'.
          READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY UNIKEY = SELECTED_KEY.
          IF ITAB_TREE_WA-TYPE = 'OBJECT'.
            ZSCSDM_MO-OBJECT_ID = ITAB_TREE_WA-NAME.
            ZSCSDM_MO-OBJECT_DESC = ITAB_TREE_WA-DESC.
          ENDIF.
          IF ITAB_TREE_WA-TYPE = 'FILE'.
            ZSCSDM_OF-FILE_NAME = ITAB_TREE_WA-NAME.
            ZSCSDM_OF-FILE_DESC = ITAB_TREE_WA-DESC.
            " Get the OBJECT of the FILE
            SPLIT ITAB_TREE_WA-TAG AT 'T' INTO TAG_1 TAG_2.
            READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY TAG = TAG_1.
            READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY UNIKEY = ITAB_TREE_WA-PARENT.
            ZSCSDM_MO-OBJECT_ID = ITAB_TREE_WA-NAME.
            ZSCSDM_MO-OBJECT_DESC = ITAB_TREE_WA-DESC.
          ENDIF.
          IF ITAB_TREE_WA-TYPE = 'FIELD'.
            ZSCSDM_OS-FIELD_NAME = ITAB_TREE_WA-NAME.
            ZSCSDM_OS-FIELD_DESC = ITAB_TREE_WA-DESC.
            " Get the FILE of the FIELD
            SPLIT ITAB_TREE_WA-TAG AT 'F' INTO TAG_1 TAG_2.
            READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY TAG = TAG_1.
            ZSCSDM_OF-FILE_NAME = ITAB_TREE_WA-NAME.
            ZSCSDM_OF-FILE_DESC = ITAB_TREE_WA-DESC.
            " Get the OBJECT of the FILE
            SPLIT ITAB_TREE_WA-TAG AT 'T' INTO TAG_1 TAG_2.
            READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY TAG = TAG_1.
            READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY UNIKEY = ITAB_TREE_WA-PARENT.
            ZSCSDM_MO-OBJECT_ID = ITAB_TREE_WA-NAME.
            ZSCSDM_MO-OBJECT_DESC = ITAB_TREE_WA-DESC.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "HANDLE_ITEM_DOUBLE_CLICK
    ENDCLASS.                    "CL_TREE IMPLEMENTATION
    PROCESSING BLOCK
    ======================================================================
    INITIALIZATION.
      PERFORM GET_MEMORY.
      ZSCSDM_OS-TG_LAST_CHGED_BY = SY-UNAME.
      ZSCSDM_OS-TG_LAST_CHGED_ON = SY-DATUM.
    START-OF-SELECTION.
      CREATE OBJECT TREE_APPLICATION.
      CALL SCREEN 9000.
    MODULE PBO_9000 OUTPUT
    MODULE PBO_9000 OUTPUT.
      IF G_TRANSFORM-PRESSED_TAB = 'TRANSFORM_FC1'.
        SET PF-STATUS 'SCREEN_9000' EXCLUDING 'SYN'.
      ELSEIF G_TRANSFORM-PRESSED_TAB = 'TRANSFORM_FC2'.
        SET PF-STATUS 'SCREEN_9000'.
      ENDIF.
      SET TITLEBAR 'RWB_TRANSFORM'.
      IF TREE IS INITIAL.
        REPID = SY-REPID.
        DYNNR = SY-DYNNR.
        PERFORM INIT_TREE.
      ENDIF.
    ENDMODULE.                    "PBO_9000 OUTPUT
    MODULE PBO_9001 OUTPUT
    MODULE PBO_9001 OUTPUT.
      IF INIT_MODE_9001 = 0. "ON FIRST LOAD
        CREATE OBJECT G_EDITOR_CONTAINER
          EXPORTING
            CONTAINER_NAME = 'REF_COND'
          EXCEPTIONS
            CNTL_ERROR = 1
            CNTL_SYSTEM_ERROR = 2
            CREATE_ERROR = 3
            LIFETIME_ERROR = 4
            LIFETIME_DYNPRO_DYNPRO_LINK = 5.
        CREATE OBJECT G_EDITOR
          EXPORTING
            PARENT = G_EDITOR_CONTAINER
            WORDWRAP_MODE =
            CL_GUI_TEXTEDIT=>WORDWRAP_OFF
              CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
            CL_GUI_TEXTEDIT=>WORDWRAP_AT_WINDOWBORDER
            WORDWRAP_POSITION = G_EDITOR_LENGTH
            WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
        SELECT REF_COND INTO G_EDITOR_LINE FROM ZSCSDM_REF
          WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
          AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND REF_COND_TYPE = 'T'
          AND REF_CON_ID = 1.
          APPEND G_EDITOR_LINE-REF_COND TO G_EDITOR_TABLE.
        ENDSELECT.
        CALL METHOD G_EDITOR->SET_TEXT_AS_R3TABLE
          EXPORTING
            TABLE = G_EDITOR_TABLE.
        CALL METHOD CL_GUI_CFW=>FLUSH.
        REFRESH G_EDITOR_TABLE.
        SELECT COUNT(*) INTO INIT_MODE_9001 FROM ZSCSDM_OS
          WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
          AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND TG_CREATED_BY <> ''.
        IF INIT_MODE_9001 = 0. "CREATE MODE
          INIT_MODE_9001 = 1.
          ZSCSDM_OS-TG_CREATED_BY = SY-UNAME.
          ZSCSDM_OS-TG_CREATED_ON = SY-DATUM.
          ZSCSDM_OS-TG_STATUS = 'A'.
          ZSCSDM_OS-TRANS_BY_DIRECT = 'X'.
        ELSE. "UPDATE MODE
          SELECT TG_CREATED_BY TG_CREATED_ON TG_LAST_CHGED_BY TG_LAST_CHGED_ON
                 TG_STATUS TRANS_BY_DIRECT TRANS_TABLE TRANS_FIELD
                 TRANS_BY_DEFAULT TRANS_DEF_VAL TRANS_BY_CONCAT
                 CONCAT_FIELD_1 CONCAT_FIELD_2 CONCAT_FIELD_3 CONCAT_FIELD_4 CONCAT_FIELD_5
                 CONCAT_FIELD_6 CONCAT_FIELD_7 CONCAT_FIELD_8 CONCAT_FIELD_9 CONCAT_FIELD_10
                 TRANS_BY_REF
            INTO (ZSCSDM_OS-TG_CREATED_BY, ZSCSDM_OS-TG_CREATED_ON,
                 ZSCSDM_OS-TG_LAST_CHGED_BY, ZSCSDM_OS-TG_LAST_CHGED_ON,
                 ZSCSDM_OS-TG_STATUS, ZSCSDM_OS-TRANS_BY_DIRECT,
                 ZSCSDM_OS-TRANS_TABLE, ZSCSDM_OS-TRANS_FIELD,
                 ZSCSDM_OS-TRANS_BY_DEFAULT, ZSCSDM_OS-TRANS_DEF_VAL,
                 ZSCSDM_OS-TRANS_BY_CONCAT, ZSCSDM_OS-CONCAT_FIELD_1,
                 ZSCSDM_OS-CONCAT_FIELD_2, ZSCSDM_OS-CONCAT_FIELD_3,
                 ZSCSDM_OS-CONCAT_FIELD_4, ZSCSDM_OS-CONCAT_FIELD_5,
                 ZSCSDM_OS-CONCAT_FIELD_6, ZSCSDM_OS-CONCAT_FIELD_7,
                 ZSCSDM_OS-CONCAT_FIELD_8, ZSCSDM_OS-CONCAT_FIELD_9,
                 ZSCSDM_OS-CONCAT_FIELD_10, ZSCSDM_OS-TRANS_BY_REF) FROM ZSCSDM_OS
            WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
            AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
          ENDSELECT.
        ENDIF.
      ENDIF.
      PERFORM CHANGE_TRANSFORM_TYPE.
    ENDMODULE.                    "PBO_9001 OUTPUT
    *&SPWIZARD: OUTPUT MODULE FOR TS 'TRANSFORM'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: SETS ACTIVE TAB
    MODULE TRANSFORM_ACTIVE_TAB_SET OUTPUT.
      TRANSFORM-ACTIVETAB = G_TRANSFORM-PRESSED_TAB.
      CASE G_TRANSFORM-PRESSED_TAB.
        WHEN C_TRANSFORM-TAB1.
          G_TRANSFORM-SUBSCREEN = '9001'.
        WHEN C_TRANSFORM-TAB2.
          G_TRANSFORM-SUBSCREEN = '9002'.
        WHEN OTHERS.
    *&SPWIZARD:      DO NOTHING
      ENDCASE.
    ENDMODULE.                    "TRANSFORM_ACTIVE_TAB_SET OUTPUT
    MODULE USER_COMMAND_9000 INPUT
    MODULE USER_COMMAND_9000 INPUT.
      CASE SY-UCOMM.
          G_TRANSFORM-PRESSED_TAB = TRANSFORM-ACTIVETAB.
          " IF G_TRANSFORM-PRESSED_TAB =
        WHEN 'TRANSFORM_FC1'.
          SET PF-STATUS 'SCREEN_9000' EXCLUDING 'SYN'.
          MODIFY SCREEN.
        WHEN 'TRANSFORM_FC2'.
          SET PF-STATUS 'SCREEN_9000'.
          MODIFY SCREEN.
        WHEN 'EXIT' OR 'CANCEL'.
          LEAVE PROGRAM.
        WHEN 'BACK'.
          CLEAR SY-UCOMM.
          SAVE_STATUS = ''.
          PERFORM SET_MEMORY.
          SUBMIT ZSCSDM_RULES_ENGINE_NAV_V5.
        WHEN 'SAVE'.
          PERFORM GET_MEMORY_SAVE_STATUS.
          IF SAVE_STATUS = 'S'.
            PERFORM SET_MEMORY.
            SUBMIT ZSCSDM_RULES_ENGINE_NAV_V5.
          ELSE.
            PERFORM SET_MEMORY_SAVE_STATUS_RESET.
          ENDIF.
      ENDCASE.
    ENDMODULE.                    "USER_COMMAND_9000 INPUT
    MODULE USER_COMMAND_9001 INPUT
    MODULE USER_COMMAND_9001 INPUT.
      CASE SY-UCOMM.
        WHEN 'SAVE'.
          CLEAR SY-UCOMM.
          PERFORM CHANGE_TRANSFORM_TYPE.
          PERFORM VALIDATE_DIRECT_FIELD.
          PERFORM VALIDATE_CONCAT_FIELD.
          PERFORM SAVE_TRANSFORM_TYPE.
          SELECT FIELD_STATUS CREATED_BY CREATED_ON LAST_CHGED_BY LAST_CHGED_ON
                 COLUMN_NO KEY_FIELD SEARCH_HELP HASH_TOTAL_IND
                 VG_CREATED_BY VG_CREATED_ON VG_LAST_CHGED_BY VG_LAST_CHGED_ON
                 CHECK_DATA_TYPE DT_ERR_TEXT LN_ERR_TEXT DP_ERR_TEXT SN_ERR_TEXT
                 FIELD_DOMAIN FIELD_DATA_TYPE FIELD_LENGTH FIELD_DECIMAL
                 FIELD_NEGATIVE DOMAIN_POSS_VAL DOMAIN_ERR_TEXT
                 MAND_OPT MAND_ERR_TEXT UNIQUE_CHECK UNIQUE_ERR_TEXT
            INTO (ZSCSDM_OS-FIELD_STATUS, ZSCSDM_OS-CREATED_BY, ZSCSDM_OS-CREATED_ON,
                 ZSCSDM_OS-LAST_CHGED_BY, ZSCSDM_OS-LAST_CHGED_ON,
                 ZSCSDM_OS-COLUMN_NO, ZSCSDM_OS-KEY_FIELD,
                 ZSCSDM_OS-SEARCH_HELP, ZSCSDM_OS-HASH_TOTAL_IND,
                 ZSCSDM_OS-VG_CREATED_BY, ZSCSDM_OS-VG_CREATED_ON,
                 ZSCSDM_OS-VG_LAST_CHGED_BY, ZSCSDM_OS-VG_LAST_CHGED_ON,
                 ZSCSDM_OS-CHECK_DATA_TYPE, ZSCSDM_OS-DT_ERR_TEXT,
                 ZSCSDM_OS-LN_ERR_TEXT, ZSCSDM_OS-DP_ERR_TEXT,
                 ZSCSDM_OS-SN_ERR_TEXT, ZSCSDM_OS-FIELD_DOMAIN,
                 ZSCSDM_OS-FIELD_DATA_TYPE, ZSCSDM_OS-FIELD_LENGTH,
                 ZSCSDM_OS-FIELD_DECIMAL, ZSCSDM_OS-FIELD_NEGATIVE,
                 ZSCSDM_OS-DOMAIN_POSS_VAL, ZSCSDM_OS-DOMAIN_ERR_TEXT,
                 ZSCSDM_OS-MAND_OPT, ZSCSDM_OS-MAND_ERR_TEXT,
                 ZSCSDM_OS-UNIQUE_CHECK, ZSCSDM_OS-UNIQUE_ERR_TEXT) FROM ZSCSDM_OS
            WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
            AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
          ENDSELECT.
          CALL FUNCTION 'ZSCSDM_FM_RULES_ENGINE_MODIFY'
            EXPORTING
              IN_OBJECT_ID        = ZSCSDM_MO-OBJECT_ID
              IN_FILE_NAME        = ZSCSDM_OF-FILE_NAME
              IN_FIELD_NAME       = ZSCSDM_OS-FIELD_NAME
              IN_FIELD_DESC       = ZSCSDM_OS-FIELD_DESC
              IN_FIELD_STATUS     = ZSCSDM_OS-FIELD_STATUS
              IN_CREATED_BY       = ZSCSDM_OS-CREATED_BY
              IN_CREATED_ON       = ZSCSDM_OS-CREATED_ON
              IN_LAST_CHGED_BY    = ZSCSDM_OS-LAST_CHGED_BY
              IN_LAST_CHGED_ON    = ZSCSDM_OS-LAST_CHGED_ON
              IN_COLUMN_NO        = ZSCSDM_OS-COLUMN_NO
              IN_KEY_FIELD        = ZSCSDM_OS-KEY_FIELD
              IN_SEARCH_HELP      = ZSCSDM_OS-SEARCH_HELP
              IN_HASH_TOTAL_IND   = ZSCSDM_OS-HASH_TOTAL_IND
              IN_VG_CREATED_BY    = ZSCSDM_OS-VG_CREATED_BY
              IN_VG_CREATED_ON    = ZSCSDM_OS-VG_CREATED_ON
              IN_VG_LAST_CHGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY
              IN_VG_LAST_CHGED_ON = ZSCSDM_OS-VG_LAST_CHGED_ON
              IN_CHECK_DATA_TYPE  = ZSCSDM_OS-CHECK_DATA_TYPE
              IN_DT_ERR_TEXT      = ZSCSDM_OS-DT_ERR_TEXT
              IN_LN_ERR_TEXT      = ZSCSDM_OS-LN_ERR_TEXT
              IN_DP_ERR_TEXT      = ZSCSDM_OS-DP_ERR_TEXT
              IN_SN_ERR_TEXT      = ZSCSDM_OS-SN_ERR_TEXT
              IN_FIELD_DOMAIN     = ZSCSDM_OS-FIELD_DOMAIN
              IN_FIELD_DATA_TYPE  = ZSCSDM_OS-FIELD_DATA_TYPE
              IN_FIELD_LENGTH     = ZSCSDM_OS-FIELD_LENGTH
              IN_FIELD_DECIMAL    = ZSCSDM_OS-FIELD_DECIMAL
              IN_FIELD_NEGATIVE   = ZSCSDM_OS-FIELD_NEGATIVE
              IN_DOMAIN_POSS_VAL  = ZSCSDM_OS-DOMAIN_POSS_VAL
              IN_DOMAIN_ERR_TEXT  = ZSCSDM_OS-DOMAIN_ERR_TEXT
              IN_MAND_OPT         = ZSCSDM_OS-MAND_OPT
              IN_MAND_ERR_TEXT    = ZSCSDM_OS-MAND_ERR_TEXT
              IN_UNIQUE_CHECK     = ZSCSDM_OS-UNIQUE_CHECK
              IN_UNIQUE_ERR_TEXT  = ZSCSDM_OS-UNIQUE_ERR_TEXT
              IN_TG_CREATED_BY    = ZSCSDM_OS-TG_CREATED_BY
              IN_TG_CREATED_ON    = ZSCSDM_OS-TG_CREATED_ON
              IN_TG_LAST_CHGED_BY = ZSCSDM_OS-TG_LAST_CHGED_BY
              IN_TG_LAST_CHGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON
              IN_TG_STATUS        = ZSCSDM_OS-TG_STATUS
              IN_TRANS_BY_DIRECT  = ZSCSDM_OS-TRANS_BY_DIRECT
              IN_TRANS_TABLE      = ZSCSDM_OS-TRANS_TABLE
              IN_TRANS_FIELD      = ZSCSDM_OS-TRANS_FIELD
              IN_TRANS_BY_DEFAULT = ZSCSDM_OS-TRANS_BY_DEFAULT
              IN_TRANS_DEF_VAL    = ZSCSDM_OS-TRANS_DEF_VAL
              IN_TRANS_BY_CONCAT  = ZSCSDM_OS-TRANS_BY_CONCAT
              IN_CONCAT_FIELD_1   = ZSCSDM_OS-CONCAT_FIELD_1
              IN_CONCAT_FIELD_2   = ZSCSDM_OS-CONCAT_FIELD_2
              IN_CONCAT_FIELD_3   = ZSCSDM_OS-CONCAT_FIELD_3
              IN_CONCAT_FIELD_4   = ZSCSDM_OS-CONCAT_FIELD_4
              IN_CONCAT_FIELD_5   = ZSCSDM_OS-CONCAT_FIELD_5
              IN_CONCAT_FIELD_6   = ZSCSDM_OS-CONCAT_FIELD_6
              IN_CONCAT_FIELD_7   = ZSCSDM_OS-CONCAT_FIELD_7
              IN_CONCAT_FIELD_8   = ZSCSDM_OS-CONCAT_FIELD_8
              IN_CONCAT_FIELD_9   = ZSCSDM_OS-CONCAT_FIELD_9
              IN_CONCAT_FIELD_10  = ZSCSDM_OS-CONCAT_FIELD_10
              IN_TRANS_BY_REF     = ZSCSDM_OS-TRANS_BY_REF
            IMPORTING
              OUT_RESULT          = RETURN_RESULT.
          IF RETURN_RESULT = 'SUCCESS'.
            MESSAGE S001(ZSCSDM_DMT).
            IF ZSCSDM_OS-TRANS_BY_REF = 'X'.
             NONE_BLANK_COUNTER = 0.
              INSERT_COUNTER = 1.
              DELETE FROM ZSCSDM_REF WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
              AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND REF_COND_TYPE = 'T' AND
              REF_CON_ID = 1.
              CALL METHOD G_EDITOR->GET_TEXT_AS_R3TABLE
                IMPORTING
                  TABLE = G_EDITOR_CONTENTS.
             LOOP AT G_EDITOR_CONTENTS INTO NONE_BLANK_CHECK.
               IF NONE_BLANK_CHECK <> ''.
                 NONE_BLANK_COUNTER = NONE_BLANK_COUNTER + 1.
               ENDIF.
             ENDLOOP.
              CLEAR INSERT_VALUE.
              LOOP AT G_EDITOR_CONTENTS INTO INSERT_VALUE.
                IF INSERT_VALUE <> ''.
                  ZSCSDM_REF-OBJECT_ID = ZSCSDM_MO-OBJECT_ID.
                  ZSCSDM_REF-FILE_NAME = ZSCSDM_OF-FILE_NAME.
                  ZSCSDM_REF-FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
                  ZSCSDM_REF-REF_COND_TYPE = 'T'.
                  ZSCSDM_REF-REF_CON_ID = 1.
                  ZSCSDM_REF-REF_COND_ROW = INSERT_COUNTER.
                  ZSCSDM_REF-CREATED_BY = ZSCSDM_OS-CREATED_BY.
                  ZSCSDM_REF-CREATED_ON = ZSCSDM_OS-VG_CREATED_ON.
                  ZSCSDM_REF-LAST_CHANGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY.
                  ZSCSDM_REF-LAST_CHANGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON.
                  ZSCSDM_REF-REF_RULE_STATUS = ZSCSDM_OS-TG_STATUS.
                  ZSCSDM_REF-NOT_EXIST_IND = ''.
                  ZSCSDM_REF-REF_COND = INSERT_VALUE.
                  ZSCSDM_REF-REF_ERR_TEXT = 'Reference Error: The reference condition did not return any results.'.
                  INSERT INTO ZSCSDM_REF VALUES ZSCSDM_REF.
                 IF INSERT_COUNTER = NONE_BLANK_COUNTER.
                   OFFSET_LEN_3AT = STRLEN( INSERT_VALUE ) - STRLEN( '@@@' ).
                   IF OFFSET_LEN_3AT >= 0.
                     IF INSERT_VALUE+OFFSET_LEN_3AT(3) NE '@@@'.
                       OFFSET_LEN_DOT = STRLEN( INSERT_VALUE ) - STRLEN( `.` ).
                       INSERT_COUNTER = INSERT_COUNTER + 1.
                       ZSCSDM_REF-OBJECT_ID = ZSCSDM_MO-OBJECT_ID.
                       ZSCSDM_REF-FILE_NAME = ZSCSDM_OF-FILE_NAME.
                       ZSCSDM_REF-FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
                       ZSCSDM_REF-REF_COND_TYPE = 'T'.
                       ZSCSDM_REF-REF_CON_ID = 1.
                       ZSCSDM_REF-REF_COND_ROW = INSERT_COUNTER.
                       ZSCSDM_REF-CREATED_BY = ZSCSDM_OS-CREATED_BY.
                       ZSCSDM_REF-CREATED_ON = ZSCSDM_OS-VG_CREATED_ON.
                       ZSCSDM_REF-LAST_CHANGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY.
                       ZSCSDM_REF-LAST_CHANGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON.
                       ZSCSDM_REF-REF_RULE_STATUS = ZSCSDM_OS-TG_STATUS.
                       ZSCSDM_REF-NOT_EXIST_IND = ''.
                       ZSCSDM_REF-REF_ERR_TEXT = 'Reference Error: The reference condition did not return any results.'.
                       IF INSERT_VALUE+OFFSET_LEN_DOT(1) EQ '.'.
                         ZSCSDM_REF-REF_COND = '@@@'.
                       ELSE.
                         ZSCSDM_REF-REF_COND = '.@@@'.
                       ENDIF.
                     ENDIF.
                   ELSE.
                     OFFSET_LEN_DOT = STRLEN( INSERT_VALUE ) - STRLEN( `.` ).
                     INSERT_COUNTER = INSERT_COUNTER + 1.
                     ZSCSDM_REF-OBJECT_ID = ZSCSDM_MO-OBJECT_ID.
                     ZSCSDM_REF-FILE_NAME = ZSCSDM_OF-FILE_NAME.
                     ZSCSDM_REF-FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
                     ZSCSDM_REF-REF_COND_TYPE = 'T'.
                     ZSCSDM_REF-REF_CON_ID = 1.
                     ZSCSDM_REF-REF_COND_ROW = INSERT_COUNTER.
                     ZSCSDM_REF-CREATED_BY = ZSCSDM_OS-CREATED_BY.
                     ZSCSDM_REF-CREATED_ON = ZSCSDM_OS-VG_CREATED_ON.
                     ZSCSDM_REF-LAST_CHANGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY.
                     ZSCSDM_REF-LAST_CHANGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON.
                     ZSCSDM_REF-REF_RULE_STATUS = ZSCSDM_OS-TG_STATUS.
                     ZSCSDM_REF-NOT_EXIST_IND = ''.
                     ZSCSDM_REF-REF_ERR_TEXT = 'Reference Error: The reference condition did not return any results.'.
                     IF INSERT_VALUE+OFFSET_LEN_DOT(1) EQ '.'.
                       ZSCSDM_REF-REF_COND = '@@@'.
                     ELSE.
                       ZSCSDM_REF-REF_COND = '.@@@'.
                     ENDIF.
                   ENDIF.
                   INSERT INTO ZSCSDM_REF VALUES ZSCSDM_REF.
                 ENDIF.
                  INSERT_COUNTER = INSERT_COUNTER + 1.
                ENDIF.
              ENDLOOP.
            ELSE.
              DELETE FROM ZSCSDM_REF WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
              AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND REF_COND_TYPE = 'T' AND
              REF_CON_ID = 1.
            ENDIF.
            SAVE_STATUS = 'S'.
            PERFORM SET_MEMORY_SAVE_STATUS.
            SAVE_STATUS = ''.
          ELSE.
            SAVE_STATUS = 'F'.
            PERFORM SET_MEMORY_SAVE_STATUS.
            SAVE_STATUS = ''.
            MESSAGE E101(ZSCSDM_DMT).
          ENDIF.
      ENDCASE.
    ENDMODULE.                    "USER_COMMAND_9001 INPUT
    *&SPWIZARD: INPUT MODULE FOR TS 'TRANSFORM'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: GETS ACTIVE TAB
    MODULE TRANSFORM_ACTIVE_TAB_GET INPUT.
      OK_CODE = SY-UCOMM.
      CASE OK_CODE.
        WHEN C_TRANSFORM-TAB1.
          G_TRANSFORM-PRESSED_TAB = C_TRANSFORM-TAB1.
        WHEN C_TRANSFORM-TAB2.
          G_TRANSFORM-PRESSED_TAB = C_TRANSFORM-TAB2.
        WHEN OTHERS.
    *&SPWIZARD:      DO NOTHING
      ENDCASE.
    ENDMODULE.                    "TRANSFORM_ACTIVE_TAB_GET INPUT
    MODULE STATUS_9002 OUTPUT
    MODULE STATUS_9002 OUTPUT.
      IF CODE_EDITOR IS INITIAL.
        CREATE OBJECT CODE_EDITOR_CONTAINER
           EXPORTING
             CONTAINER_NAME = 'GEN_CODE'
           EXCEPTIONS
             CNTL_ERROR = 1
             CNTL_SYSTEM_ERROR = 2
             CREATE_ERROR = 3
             LIFETIME_ERROR = 4
             LIFETIME_DYNPRO_DYNPRO_LINK = 5.
        CREATE OBJECT CODE_EDITOR
          EXPORTING
            PARENT = CODE_EDITOR_CONTAINER
            WORDWRAP_MODE =
            CL_GUI_TEXTEDIT=>WORDWRAP_OFF
              CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
            CL_GUI_TEXTEDIT=>WORDWRAP_AT_WINDOWBORDER
            WORDWRAP_POSITION = G_EDITOR_LENGTH
            WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
      ENDIF.
    ENDMODULE.                    "STATUS_9002 OUTPUT
    MODULE USER_COMMAND_9002 INPUT
    MODULE USER_COMMAND_9002 INPUT.
    ENDMODULE.                    "USER_COMMAND_9002 INPUT
    MODULE F4_INPUT INPUT
    MODULE F4_INPUT INPUT.
      TYPES: BEGIN OF VALUES,
        FIELD_NAME TYPE ZSCSDM_OS-FIELD_NAME,
        FIELD_DESC TYPE ZSCSDM_OS-FIELD_DESC,
      END OF VALUES.
      DATA: PROGNAME TYPE SY-REPID, DYNNUM TYPE SY-DYNNR.
      DATA: FILENAME_A TYPE ZSCSDM_OS-FILE_NAME,
            F4_VALUES TYPE TABLE OF VALUES.
      PROGNAME = SY-REPID.
      DYNNUM   = SY-DYNNR.
      SELECT FILE_NAME INTO (FILENAME_A) FROM ZSCSDM_OF
        WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME_TRANS = ZSCSDM_OF-FILE_NAME.
      ENDSELECT.
      SELECT FIELD_NAME FIELD_DESC FROM ZSCSDM_OS
        INTO CORRESPONDING FIELDS OF TABLE F4_VALUES
        WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = FILENAME_A
        AND FIELD_STATUS = 'A'.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD    = 'FIELD_NAME'
          DYNPPROG    = PROGNAME
          DYNPNR      = DYNNUM
          DYNPROFIELD = 'ZSCSDM_OS-TRANS_FIELD'
          VALUE_ORG   = 'S'
        TABLES
          VALUE_TAB   = F4_VALUES.
    ENDMODULE.                    "F4_INPUT INPUT
    *&      Form  GET_MEMORY
          text
    FORM GET_MEMORY.
      DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
      SY_MOD = SY-MODNO.
      CONDENSE SY_MOD NO-GAPS.
      CONCATENATE 'TraObjectID-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT ZSCSDM_MO-OBJECT_ID FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraObjectDesc-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT ZSCSDM_MO-OBJECT_DESC FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFileName-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT ZSCSDM_OF-FILE_NAME FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFileDesc-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT ZSCSDM_OF-FILE_DESC FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFieldName-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT ZSCSDM_OS-FIELD_NAME FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFieldDesc-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT ZSCSDM_OS-FIELD_DESC FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
    ENDFORM.                    "GET_MEMORY
    *&      Form  GET_MEMORY_SAVE_STATUS
          text
    FORM GET_MEMORY_SAVE_STATUS.
      DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
      DATA: CHECK_SAVE_STATUS(1) TYPE C.
      SY_MOD = SY-MODNO.
      CONDENSE SY_MOD NO-GAPS.
      CONCATENATE 'Save-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT CHECK_SAVE_STATUS FROM MEMORY ID MEM_STR.
      FREE MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      SAVE_STATUS = CHECK_SAVE_STATUS.
    ENDFORM.                    "GET_MEMORY_SAVE_STATUS
    *&      Form  SET_MEMORY
          text
    FORM SET_MEMORY.
      DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
      SY_MOD = SY-MODNO.
      CONDENSE SY_MOD NO-GAPS.
      CONCATENATE 'DtlScreen-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT DETAILS_SCREEN TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraObjectID1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT ZSCSDM_MO-OBJECT_ID TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraObjectDesc1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT ZSCSDM_MO-OBJECT_DESC TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFileName1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT ZSCSDM_OF-FILE_NAME TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFileDesc1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT ZSCSDM_OF-FILE_DESC TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFieldName1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT ZSCSDM_OS-FIELD_NAME TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
      CONCATENATE 'TraFieldDesc1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      EXPORT ZSCSDM_OS-FIELD_DESC TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
    ENDFORM.                    "SET_MEMORY
    *&      Form  SET_MEMORY_SAVE_STATUS
          text
    FORM SET_MEMORY_SAVE_STATUS.
      DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
      DATA: CHECK_SAVE_STATUS(1) TYPE C.
      SY_MOD = SY-MODNO.
      CONDENSE SY_MOD NO-GAPS.
      CONCATENATE 'Save-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      IMPORT CHECK_SAVE_STATUS FROM MEMORY ID MEM_STR.
      IF CHECK_SAVE_STATUS <> 'F'.
        FREE MEMORY ID MEM_STR.
        CHECK_SAVE_STATUS = SAVE_STATUS.
        EXPORT CHECK_SAVE_STATUS TO MEMORY ID MEM_STR.
      ENDIF.
      CLEAR MEM_STR.
    ENDFORM.                    "SET_MEMORY_SAVE_STATUS
    *&      Form  SET_MEMORY_SAVE_STATUS_RESET
          text
    FORM SET_MEMORY_SAVE_STATUS_RESET.
      DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
      DATA: CHECK_SAVE_STATUS(1) TYPE C.
      SY_MOD = SY-MODNO.
      CONDENSE SY_MOD NO-GAPS.
      CONCATENATE 'Save-' SY-UNAME '-' SY_MOD INTO MEM_STR.
      FREE MEMORY ID MEM_STR.
      CHECK_SAVE_STATUS = ''.
      EXPORT CHECK_SAVE_STATUS TO MEMORY ID MEM_STR.
      CLEAR MEM_STR.
    ENDFORM.                    "SET_MEMORY_SAVE_STATUS_RESET
    *&      Form  CHANGE_TRANSFORM_TYPE
          text
    FORM CHANGE_TRANSFORM_TYPE.
      IF ZSCSDM_OS-TRANS_BY_DIRECT = 'X'.
        LOOP AT SCREEN.
          IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
        CALL METHOD G_EDITOR->SET_READONLY_MODE
          EXPORTING
            READONLY_MODE = CL_GUI_TEXTEDIT=>TRUE.
        SET CURSOR FIELD 'ZSCSDM_OS-TRANS_FIELD'.
      ELSEIF ZSCSDM_OS-TRANS_BY_DEFAULT = 'X'.
        LOOP AT SCREEN.
          IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
        CALL METHOD G_EDITOR->SET_READONLY_MODE
          EXPORTING
            READONLY_MODE = CL_GUI_TEXTEDIT=>TRUE.
        SET CURSOR FIELD 'ZSCSDM_OS-TRANS_DEF_VAL'.
      ELSEIF ZSCSDM_OS-TRANS_BY_CONCAT = 'X'.
        LOOP AT SCREEN.
          IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
            SCREEN-INPUT = '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
        CALL METHOD G_EDITOR->SET_READONLY_MODE
          EXPORTING
            READONLY_MODE = CL_GUI_TEXTEDIT=>TRUE.
        SET CURSOR FIELD 'ZSCSDM_OS-CONCAT_FIELD_1'.
      ELSEIF ZSCSDM_OS-TRANS_BY_REF = 'X'.
        LOOP AT SCREEN.
          IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
            SCREEN-INPUT = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
        CALL METHOD G_EDITOR->SET_READONLY_MODE
          EXPORTING
            READO

    Hello Swathi
    I have never used method SET_USER_COMMAND (cl_gui_alv_grid) before so I do not really know its function.
    However, you event handler FORM routine belongs to the old-fashioned fm-based ALV lists (e.g. REUSE_ALV_GRID_DISPLAY_LVC) so I doubt whether this will work together.
    If you have define a column as HOTSPOT then this trigger the class event HOTSPOT_CLICK.
    Correspondingly a double-click on the ALV grid triggers event DOUBLE_CLICK.
    For a sample report regarding ALV event handling have a look at the links provided in
    2 ALVS IN ONE SCREEN
    Regards
      Uwe

  • Create dynamic structures dictionary

    hi,
    Is there anyway to create dynamic structures, fields and domains in dictionary with abap code insted of going through SE11 and then create?
    tks in advanced

    Function groups SIFD and SDIF have a few function modules for this purpose. None are released for use by the customer and should be treated with care.
    Thomas

  • Creating dynamic internal table(Not field symbol table)

    Hi Experts,
    I am facing problem creating Intarnal table
    I have fieldcatalog, I want create dynamic internal table(Not field symbol table).
    I have written----
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
       i_style_table             =
         it_fieldcatalog           = it_fldcat
          it_fieldcatalog           = me->gt_fieldcat
       i_length_in_byte          =
        IMPORTING
          ep_table                  = lt_new_table
       e_style_fname             =
        EXCEPTIONS
         generate_subpool_dir_full = 1
         OTHERS                    = 2.
        ASSIGN lt_new_table->* TO <gt_dyn_repdata>.
        CREATE DATA ls_new_line LIKE LINE OF <gt_dyn_repdata>.
        ASSIGN ls_new_line->* TO <gs_dyn_repdata>.
    above logic creating dynamic field symbol table.... But I want create normal internal table.
    Thanks,
    Rajasekhar

    Hi
    What do you mean?
    It needs to use the field-symbol, this is the price to pay if it wants a dynamic object
    Max

  • How I create a structure in the ABAP DICTIONARY?

    I need a structure for a FORM, how can I create a structure in the ABAP DICTIONARY?
    Thanks!!

    Hi Carlos,
    Go to SE11(ABAP Dictionary).
    Select the Data Type radio button.
    Specify the name for your structure.
    Note structure in customer namespace should start with Z or Y.
    Press the create button.
    Then in the next dialog box select the structure radio button.
    Then you will get in to the structure screen.
    Give a meaningful description for your structure.
    Add the relevant fields and finally activate.
    Regards,
    Abdul

  • Dynamic form... field names and values...

    Boy-Howdy. I wish I had the opportunity to stop by this forum and hang out at a time when I am not having issue, but, alas... I appreciate the brain power of the great minds that populate this forum.
    I have an issue: I think I am close on this but cannot identify where my syntax is going awry. Here is a simplified edition of my situation.
    I have a form with a set of dropdown menus that filter a recordset. The group of drop downs are dynamic from a database and will vary depending on what category of products a visitor is viewing.
    If I browse to FRUIT: I get three options that let me filter for:
    Fruit Type
    - Apples
    - Bananas
    - Pears
    Fruit Grown By:
    - Organic
    - Any
    Fruit From:
    - Domestic
    - South America
    - European
    However, if I browse to LUMBER I get:
    Wood Type:
    - Pine
    - Walnut
    - Oak
    Wood Prep:
    - Pre Cut
    - RAW Timber
    Wood Origin:
    - North America
    - South America
    - Europe
    I have the variable naming and database values worked out. My only issue is when I browse to friuit and select apples I want apples to remain selected as I page through results.
    So, the dropdown field names are dynamic. Currently set to zgen1, zgen2, zgen3. I set a variable named sr and increment it to build the progressive 1,2,3 after the field name zgen.
    <cfparam name="sr" default="1">
    <cfoutput group="ft_id" query="oompa2">
    <strong>#f_ftrname#:</strong><br>
    <select name="zgen#variables.sr#">
    <OPTION value="">select...</OPTION>
    <cfoutput>
    <OPTION value="#ft_id#_#fs_id#">#ft_options#</OPTION>
    </cfoutput>
    </select>
    <br><br>
    <cfset sr=#sr# + 1>
    </cfoutput>
    But when zgen1 has a value (in this case "Apples") I can't figure out how to dynamically test for the presence of a value for each dropdown. I have dynamically created the field names (cfset xvalue="FORM.zgen#variables.sr#") to test against. However this creates a value of FORM.zgen1, FORM.zgen2, FORM.zgen3 as it loops when I want it to be Apples, Organic, Domestic.
    Example:
    The code:
    <OPTION value="#ft_id#_#fs_id#"<cfif xvalue IS "#ft_id#_#fs_id#"> SELECTED</cfif>>#ft_options#</OPTION>
    which is translating to:
    <OPTION value="15_5"<cfif FORM.zgen1 IS "15_5"> SELECTED</cfif>>Apples</OPTION>
    When I want it to be:
    <OPTION value="15_5"<cfif 15_5 IS "15_5"> SELECTED</cfif>>Apples</OPTION>
    I hope I am making sense. I would greatly appreciate it if someone could help me noodle this. I have a feeling it is not as complicated as my mind is trying to make it. Thoughts?

    Three selects related type code was not the way to go - because I need each filter to be independent. I created a custom tag that argues the state for each separately up to ten filters.

  • Is there any way to read the field name,through the property binded to it.

    Hi
    I want to know that,is there any method exits with which i can find the field names of the screen,if i have the property attribute with me.
    as my req is to make the validation for the property attr,& check  how many fields are binded with the single property attr,i have read the property attr dynamically,now need to find the fields linked,& need to check how many fields have not field value,& through the error msg.

    just read the attribute binded to properties using code wizard ( Control + F7).
    Code generalted will be like :
    DATA lo_nd_cn_check TYPE REF TO if_wd_context_node.
        DATA lo_el_cn_check TYPE REF TO if_wd_context_element.
        DATA ls_cn_check TYPE wd_this->element_cn_check.
        DATA lv_ca_check LIKE ls_cn_check-ca_check.
      navigate from <CONTEXT> to <CN_CHECK> via lead selection
        lo_nd_cn_check = wd_context->get_child_node( name = wd_this->wdctx_cn_check ).
      get element via lead selection
        lo_el_cn_check = lo_nd_cn_check->get_element(  ).
      get single attribute
        lo_el_cn_check->get_attribute(
          EXPORTING
            name =  `CA_CHECK`
          IMPORTING
            value = lv_ca_check ).
    Here i have read attribute CA_CHECK.

  • Script : how to change the Field name in standard program(ZM_MEDRUCK)

    Hi Experts,
    I am working with SAP SCRIPT. i need to change the Field Name that is PO NO to Document No & PO DATE to Document Date.
    These are assigned in data declaration as gv_name and gv_date.
    Can anyone help me to change this Fields.
    Regards,
    Vijayan.R

    Hi,
    You can archive this by making change in SAP script only. You don't need to touch the standard prgm.
    Debug the script and find it out which fields (In script editor) are printing these text on layout... then just replace them by creating your own text...
    You can create a text in TTDTG table,, like ZZPO_NAME = ( Document Name),, and use this filed in the script editor.
    &ZZPO_NAME&

  • How to capture the field name on a form when it's double-clicked?

    Hello,
    I plan to create a two field Help table that uses the thirty or so unique field names on the user form in field one. The second field is a Memo type field that contains the Help information for each field.
    Once I know the field name clicked, I will probably use a query to retrieve the help information. I'm planning to use the Double-Click event so the users can double-click any field on the form to be presented the specific field related information
    from the Help table.
    How can I capture the name of the field that was double-clicked, so I can proceed with this project? Thank you.
    Cordially,
    John
    Thank you, John Portland, Maine

    Thank you, Hans,
    How about this code:
    Dim varClickedFieldName as String
    varClickedFieldName = ScreenActiveControl.ControlSource
    Or would you recommend other code?
    Cordially,
    John
    Thank you, John Portland, Maine

  • How to retrieve the Field Name of a Table

    Hi guys,
    I'm trying to retrieve the field name of a table in java, but i don't know how to do it. Could somebody help me?Let say i have a table name Itemmaster, then
    i want to retrieve its field and display to dos prompt.
    Example :
    Item No.
    Description
    Quantity
    It is possible to retrieve the fields?
    What could be the possible command in java using packages Java.sql.*?
    Thanks in advanced...
    Best regards,
    Dharry

    The ResultSet class, which is how query results are returned in JDBC, has methods to get at the metadata for the table queried, including column names:
    ResultSet resultSet=statement.executeQuery("select * from table");
    resultSetMetadata=resultSet.getMetaData();
    resultSetMetadata.getColumnLabel(column+1);

  • How can i get value when the field name is user's defined

    Hi,
    I have a one java method:
    public ResultSet countUserDb(String id) {
    ResultSet rs = null;
    con = dbcon.connect();
    String queryString = ("select count as count from
    db_allocation where user_id='"+id+"'");
    Statement stmt = con.createStatement();
    rs = stmt.executeQuery(queryString);
    When i call it in a jsp file.
    ResultSet counter =db.countUserDb(request.getParameter("id"));
    if(counter.next())
    int x=rs.getInt("count");
    Tomcat said incorrect column name.How can i get the result set when the field name is user's defined.
    Best regards
    Ricky

    You should give the user defined name in the ResultSet.getXXX method to retrieve the column value.
    Example
    SQL:
    Select ename as employeename from emp;
    You should say :
    ResultSet.getString("employeename"); to get the value.
    Alternatively you can retrieve it using column number:
    ResultSet.getString(1);
    Chandar

  • Can we display the field name vertically

    Hi BI Experts ,
    Iam using Bex Analyzer to run reports.
    1.in report i want to display the field name vertically. is there any possibilities.
    2.i had tried using format cells in excel settings , but i have to make settings every time after running the report.
    3. i need this settings should be done before running the report and user can see the report such a way that field name should be displayed vertically.
    Please suggest me is there any way to do this.
    Thanks
    Tulsi

    Hello,  
    You can create a workbook, do the necessary format and turn off the format refresh in the Bex Tool bar property. You can turn off the same in Query Property.
    [Thanks|http://chandranonline.blogspot.com/]
    [Chandran|http://chandranonline.blogspot.com/]

  • Changing the field name at runtime in rpt file

    Hi everybody
    I'm using C# and Crystal Report XI (Deverlop license) to develop windows application in VS.net 2003.
    Please help me to change the field name of the bounded column of Crystal report file at the runtime.
    (In some case client's database had changed the structure as fieldname, fieldtype. Then they request a utility to change the field names in the .rpt file programmatically )
    Thanks
    GiangSon
    My email address: [email protected]

    user11200661 wrote:
    That's fine but still i want to prefix the schema name within the .sql file. My .sql should contain the name of that parameter only as i want to get that parameter replaced by the schema name at runtime. Some other users are using the same .sql file and they have access to that specific schema only. i want to make the .sql file more general so that it can be used by everyone without altering it every time.Sorry, your requirement no longer makes sense.
    If people have to access a specific schema because they need the script for general use, then you will have to hard code the schema name into it.
    If the script is to prompt for the schema name and connect to that schema and then use that schema name inside the called sql script, then people would not be able to use it generically, as it would be reliant upon the schema name being passed in.
    It sounds as if you're trying to write one generic thing that needs to do two different tasks.
    Just have two scripts and make life simple.

  • How can i get the value when the field name is user defined

    Hi,
    I have a one java method:
    public ResultSet countUserDb(String id) {
    ResultSet rs = null;
    con = dbcon.connect();
    String queryString = ("select count(*) as count from
    db_allocation where user_id='"+id+"'");
    Statement stmt = con.createStatement();
    rs = stmt.executeQuery(queryString);
    When i call it in a jsp file.
    ResultSet counter =db.countUserDb(request.getParameter("id"));
    if(counter.next())
    int x=rs.getInt("count");
    Tomcat said incorrect column name.How can i get the result set when the field name is user's defined.
    Best regards
    Ricky

    Hi Ricky
    To access pseudo columns you can specify an alias or use the index on the column (e.g. getInt(1)).
    Chris
    NB: you should use bind variables instead of concatenating the id to the SQL statement.

Maybe you are looking for

  • Not able to view users in F4 with Last Name, First name with tcode-PA20

    When we go to PA20 tcode and input personel id the details are shown for person. But When I select F4 at the Personel Number and enter  Last Name and First Name - It shows No Values selected Which authorizations are required for populating F4 data in

  • Backup fail on Time Machine and My Passport for Mac on Yosemite

    Cannot seem to get Time Machine to do a full backup of my NEW My Passport for Mac. I've: - Updated firmware on WD external drive (and formatted correctly for Apple) - Updated to latest IOS 10.10.3 (Yosemite) - Verified and repaired Mac HD via iOS Dis

  • Error "BBP_BD 002: An Exception occured" when changing doc type

    Hi All, We are using the BADI BBP_TARGET_OBJTYPE to determine a PR or PO and change the doc type if PR is determined. PR/PO is determined correctly but when we tried to assign new doc type for PR getting error "BBP_BD 002: An Exception occured" . Bel

  • Business Connector and sap router on same server?

    Hello, We are investigating currently in order to install "Business Connector" and "Sap router" on a same dedicated server. I would like to know if it is possible or not recommended, etc... if there are some guidelines. If someone has experience in t

  • MEDIASOURCE- won't burn a cd! Can't find a cd recorder device is fo

    Hey, i just got a creative zen 20 gig installed the media source program fine. And i got to work fine it finds cds, rips them onto the computer and to the zen, but it when i try to burn a cd using the program it says it can't find a cd recording devi