ABAP Program to Download and Create Customise Z tables.

*&---------------------------------------------------------------------*
*& Report YFI_NIP
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT  YCREATE_TABLE.

DATA : LT_FIELDS TYPE TABLE OF DD03P,
       WA_FIELD TYPE DD03P,
       TABLE_HEADER TYPE DD02V,
       TECHN_SET TYPE DD09V.

DATA : GOTSTATE TYPE  DDGOTSTATE,
       DD02V_WA TYPE  DD02V,
       DD09L_WA TYPE  DD09V.
DATA : L_NAME TYPE  DDOBJNAME.
DATA : DD03P_TAB LIKE  DD03P  OCCURS 0 WITH HEADER LINE.

DATA : WA_3PTAB TYPE DD03P.

DATA : IT_PACK LIKE TDEVC OCCURS 0 WITH HEADER LINE.

DATA : W_PACKAGE LIKE TDEVC-DEVCLASS.

DATA : DFIES_TAB LIKE  DFIES OCCURS 0 WITH HEADER LINE.

DATA : DD01V_WA TYPE  DD01V.
DATA : DD07V_TAB LIKE DD07V OCCURS 0 WITH HEADER LINE.
DATA : DD07V_TAB_DOWN LIKE DD07V OCCURS 0 WITH HEADER LINE.
DATA : WA_DD07V TYPE DD07V.

DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.

DATA : DD04V_WA TYPE  DD04V.

TYPES: BEGIN OF ST_HEADER,
     FIELDNAME(100),
     END OF ST_HEADER.

DATA : WA_HEADER TYPE ST_HEADER,
       IT_HEADER TYPE STANDARD TABLE OF ST_HEADER.
DATA:LD_FILENAME TYPE STRING,
     LD_PATH     TYPE STRING,
     LD_FULLPATH TYPE STRING,
     LD_RESULT   TYPE I.

DATA : W_FILE TYPE STRING.

DATA: IT_UPLOAD TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
      WA_UPLOAD  LIKE IT_UPLOAD.


DATA: GV_REQ_NO TYPE E070-TRKORR,
      GT_AUTHORLIST  TYPE TABLE OF BAPISCTS12,
      GS_AUTHORLIST  TYPE BAPISCTS12,
      GT_TASK_LIST  TYPE TABLE OF BAPISCTS07.


DATA : WA_OPTIONS TYPE CTU_PARAMS ,
     IT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,
     WA_MESSTAB LIKE BDCMSGCOLL.

DATA : W_REQDESC LIKE  E07T-AS4TEXT.


********************************************************************
SELECTION-SCREEN:BEGIN OF BLOCK A2 WITH FRAME TITLE  TEXT-002.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_CRT   RADIOBUTTON    GROUP GR1 USER-COMMAND COM DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(26) PCLIC.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.


PARAMETERS:   P_DOWN   RADIOBUTTON    GROUP GR1.

SELECTION-SCREEN COMMENT 5(50) PCLIC2.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN:END OF BLOCK A2.


SELECTION-SCREEN:BEGIN OF BLOCK A1 WITH FRAME TITLE  TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(32) PCLIC3.

PARAMETERS : P_TAB LIKE RSRD1-TBMA_VAL .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(32) PCLIC4 MODIF ID DIS.

PARAMETERS : P_FILE(128) MODIF ID DIS .
SELECTION-SCREEN END OF LINE.


SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(32) PCLIC5 MODIF ID DIS.

PARAMETERS : FILE_DOM(128) MODIF ID DIS.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF LINE.



PARAMETERS: R_TABLE   RADIOBUTTON    GROUP GR2 USER-COMMAND COM DEFAULT 'X' MODIF ID DIS.
SELECTION-SCREEN COMMENT 5(50) PCLIC6 MODIF ID DIS.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R_STRUCT   RADIOBUTTON    GROUP GR2 MODIF ID DIS.
SELECTION-SCREEN COMMENT 5(50) PCLIC7 MODIF ID DIS.
SELECTION-SCREEN END OF LINE.


SELECTION-SCREEN SKIP.


SELECTION-SCREEN:END OF BLOCK A1.


INITIALIZATION.
  MOVE 'Create Table' TO PCLIC.
  MOVE 'Download Table/Structure Details' TO PCLIC2.
  MOVE 'Table Name' TO PCLIC3.
  MOVE 'Enter File Name' TO PCLIC4.
  MOVE 'Enter File Name for Value Range' TO PCLIC5.

  MOVE 'Table' TO PCLIC6.
  MOVE 'Structure' TO PCLIC7.


AT SELECTION-SCREEN OUTPUT.
  IF P_DOWN = 'X'.
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'DIS'.
        SCREEN-ACTIVE = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.

  ELSE.
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'DIS'.
        SCREEN-ACTIVE = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.

  ENDIF.


************************************************************
*   At selection screen events                             *
************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

  PERFORM GET_FILE USING P_FILE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE_DOM.

  PERFORM GET_FILE2 USING FILE_DOM.




START-OF-SELECTION.

  IF P_TAB IS INITIAL.
    MESSAGE E001(00) WITH 'Pls enter table name'.
  ELSE.
    IF P_TAB+0(1) NE 'Y' AND   P_TAB+0(1) NE 'Z'.
      MESSAGE E001(00) WITH 'Pls enter Y or Z initial in table name'.
    ENDIF.
  ENDIF.



  IF P_DOWN = 'X'.
    PERFORM DOWN_LOAD_TABLE.

  ELSE.
***Upload From Excel To Itab
    IF P_FILE IS INITIAL.
      MESSAGE E001(00) WITH 'Pls enter file name'.
    ENDIF.


    SELECT * FROM TDEVC INTO TABLE IT_PACK WHERE DEVCLASS LIKE 'Z%'.

    LOOP AT IT_PACK.
      IF IT_PACK-DEVCLASS+0(2) = 'ZA'  OR IT_PACK-DEVCLASS+0(2) = 'ZM'.
        W_PACKAGE = IT_PACK-DEVCLASS.
        EXIT.
      ENDIF.
    ENDLOOP.

    IF W_PACKAGE IS INITIAL.
      SELECT * FROM TDEVC INTO TABLE IT_PACK WHERE DEVCLASS LIKE 'Y%'.

      LOOP AT IT_PACK.
        IF IT_PACK-DEVCLASS+0(2) = 'YA'  OR IT_PACK-DEVCLASS+0(2) = 'YM'.
          W_PACKAGE = IT_PACK-DEVCLASS.
          EXIT.
        ENDIF.
      ENDLOOP.

    ENDIF.


    PERFORM UPLOAD USING P_FILE.
    PERFORM UPLOAD2 USING FILE_DOM.

***Call Transaction method
    PERFORM CHECK_DOMAIN.
    PERFORM CHECK_DELE.
    PERFORM CREATE_TABLE.

  ENDIF.


*&---------------------------------------------------------------------*
*&      Form  GET_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_FILE  text
*----------------------------------------------------------------------*
FORM GET_FILE  USING    P_P_FILE.

  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    CHANGING
      FILE_NAME = P_FILE.

ENDFORM.                    " GET_FILE
*&---------------------------------------------------------------------*
*&      Form  DOWN_LOAD_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DOWN_LOAD_TABLE .



  L_NAME = P_TAB.

  CALL FUNCTION 'DDIF_TABL_GET'
    EXPORTING
      NAME          = L_NAME
      STATE         = 'A'
      LANGU         = SY-LANGU
    IMPORTING
      GOTSTATE      = GOTSTATE
      DD02V_WA      = DD02V_WA
      DD09L_WA      = DD09L_WA
    TABLES
      DD03P_TAB     = DD03P_TAB
*     DD05M_TAB     =
*     DD08V_TAB     =
*     DD12V_TAB     =
*     DD17V_TAB     =
*     DD35V_TAB     =
*     DD36M_TAB     =
    EXCEPTIONS
      ILLEGAL_INPUT = 1
      OTHERS        = 2.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.


  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      TABNAME              = 'DD03P'
*   FIELDNAME            = ' '
     LANGU                = SY-LANGU
*   LFIELDNAME           = ' '
*   ALL_TYPES            = ' '
*   GROUP_NAMES          = ' '
*   UCLEN                =
*   DO_NOT_WRITE         = ' '
* IMPORTING
*   X030L_WA             =
*   DDOBJTYPE            =
*   DFIES_WA             =
*   LINES_DESCR          =
   TABLES
     DFIES_TAB            = DFIES_TAB
*   FIXED_VALUES         =
* EXCEPTIONS
*   NOT_FOUND            = 1
*   INTERNAL_ERROR       = 2
*   OTHERS               = 3
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.


  LOOP AT DFIES_TAB.
    WA_HEADER-FIELDNAME = DFIES_TAB-FIELDNAME  .
    APPEND WA_HEADER TO IT_HEADER.
    CLEAR :WA_HEADER.
  ENDLOOP.


* DISPLAY SAVE DIALOG WINDOW

  CONCATENATE 'Table' P_TAB INTO W_FILE SEPARATED BY SPACE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      WINDOW_TITLE      = W_FILE
      DEFAULT_EXTENSION = 'XLS'
      DEFAULT_FILE_NAME = W_FILE
    CHANGING
      FILENAME          = LD_FILENAME
      PATH              = LD_PATH
      FULLPATH          = LD_FULLPATH
      USER_ACTION       = LD_RESULT.


  CHECK LD_RESULT EQ '0'.

*-- Download to excel sheet.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME              = LD_FULLPATH
      FILETYPE              = 'ASC'
      WRITE_FIELD_SEPARATOR = 'X'
    TABLES
      DATA_TAB              = DD03P_TAB
      FIELDNAMES            = IT_HEADER
    EXCEPTIONS
      FILE_OPEN_ERROR       = 1
      FILE_WRITE_ERROR      = 2
      OTHERS                = 3.


  CLEAR DD07V_TAB_DOWN.
  REFRESH DD07V_TAB_DOWN.

  LOOP AT DD03P_TAB WHERE VALEXI = 'X'.

    IF DD03P_TAB-DOMNAME+0(1) = 'Z' OR DD03P_TAB-DOMNAME+0(1) = 'Y'.

      CALL FUNCTION 'DDIF_DOMA_GET'
        EXPORTING
          NAME          = DD03P_TAB-DOMNAME
          STATE         = 'A'
          LANGU         = SY-LANGU
        IMPORTING
*         GOTSTATE      =
          DD01V_WA      = DD01V_WA
        TABLES
          DD07V_TAB     = DD07V_TAB
        EXCEPTIONS
          ILLEGAL_INPUT = 1
          OTHERS        = 2.
    ENDIF.

    LOOP AT DD07V_TAB.
      DD07V_TAB_DOWN = DD07V_TAB.
      APPEND DD07V_TAB_DOWN.
    ENDLOOP.

  ENDLOOP.

  CLEAR DFIES_TAB.
  REFRESH DFIES_TAB.
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      TABNAME              = 'DD07V'
*   FIELDNAME            = ' '
     LANGU                = SY-LANGU
*   LFIELDNAME           = ' '
*   ALL_TYPES            = ' '
*   GROUP_NAMES          = ' '
*   UCLEN                =
*   DO_NOT_WRITE         = ' '
* IMPORTING
*   X030L_WA             =
*   DDOBJTYPE            =
*   DFIES_WA             =
*   LINES_DESCR          =
   TABLES
     DFIES_TAB            = DFIES_TAB
*   FIXED_VALUES         =
* EXCEPTIONS
*   NOT_FOUND            = 1
*   INTERNAL_ERROR       = 2
*   OTHERS               = 3
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

  CLEAR : IT_HEADER,IT_HEADER[].

  LOOP AT DFIES_TAB.
    WA_HEADER-FIELDNAME = DFIES_TAB-FIELDNAME  .
    APPEND WA_HEADER TO IT_HEADER.
    CLEAR :WA_HEADER.
  ENDLOOP.

* DISPLAY SAVE DIALOG WINDOW

  CONCATENATE 'Value Range for Domains in Table' P_TAB INTO W_FILE SEPARATED BY SPACE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      WINDOW_TITLE      = W_FILE
      DEFAULT_EXTENSION = 'XLS'
      DEFAULT_FILE_NAME = W_FILE
    CHANGING
      FILENAME          = LD_FILENAME
      PATH              = LD_PATH
      FULLPATH          = LD_FULLPATH
      USER_ACTION       = LD_RESULT.


  CHECK LD_RESULT EQ '0'.

*-- Download to excel sheet.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME              = LD_FULLPATH
      FILETYPE              = 'ASC'
      WRITE_FIELD_SEPARATOR = 'X'
    TABLES
      DATA_TAB              = DD07V_TAB_DOWN
      FIELDNAMES            = IT_HEADER
    EXCEPTIONS
      FILE_OPEN_ERROR       = 1
      FILE_WRITE_ERROR      = 2
      OTHERS                = 3.


ENDFORM.                    " DOWN_LOAD_TABLE
*&---------------------------------------------------------------------*
*&      Form  UPLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_FILE  text
*----------------------------------------------------------------------*
FORM UPLOAD  USING    P_P_FILE.

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                = P_P_FILE
      I_BEGIN_COL             = 1
      I_BEGIN_ROW             = 2
      I_END_COL               = 70
      I_END_ROW               = 9999
    TABLES
      INTERN                  = IT_UPLOAD
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2
      OTHERS                  = 3.



  IF IT_UPLOAD[] IS INITIAL.
    MESSAGE 'No data Uploaded' TYPE 'I'.
  ENDIF.

  LOOP AT IT_UPLOAD INTO WA_UPLOAD.
    CASE WA_UPLOAD-COL.
      WHEN '0001'.
        WA_3PTAB-TABNAME = WA_UPLOAD-VALUE.

      WHEN '0002'.
        WA_3PTAB-FIELDNAME = WA_UPLOAD-VALUE.

      WHEN '0003'.
        WA_3PTAB-DDLANGUAGE = WA_UPLOAD-VALUE.

      WHEN '0004'.
        WA_3PTAB-POSITION = WA_UPLOAD-VALUE.

      WHEN '0005'.
        WA_3PTAB-KEYFLAG = WA_UPLOAD-VALUE.

      WHEN '0006'.
        WA_3PTAB-MANDATORY = WA_UPLOAD-VALUE.

      WHEN '0007'.
        WA_3PTAB-ROLLNAME = WA_UPLOAD-VALUE.

      WHEN '0008'.
        WA_3PTAB-CHECKTABLE = WA_UPLOAD-VALUE.

      WHEN '0009'.
        WA_3PTAB-ADMINFIELD = WA_UPLOAD-VALUE.

      WHEN '0010'.
        WA_3PTAB-INTTYPE = WA_UPLOAD-VALUE.

      WHEN '0011'.
        WA_3PTAB-INTLEN = WA_UPLOAD-VALUE.

      WHEN '0012'.
        WA_3PTAB-REFTABLE = WA_UPLOAD-VALUE.

      WHEN '0013'.
        WA_3PTAB-PRECFIELD = WA_UPLOAD-VALUE.

      WHEN '0014'.
        WA_3PTAB-REFFIELD = WA_UPLOAD-VALUE.

      WHEN '0015'.
        WA_3PTAB-CONROUT = WA_UPLOAD-VALUE.

      WHEN '0016'.
        WA_3PTAB-NOTNULL = WA_UPLOAD-VALUE.

      WHEN '0017'.
        WA_3PTAB-DOMNAME = WA_UPLOAD-VALUE.

      WHEN '0018'.
        WA_3PTAB-ROUTPUTLEN = WA_UPLOAD-VALUE.

      WHEN '0019'.
        WA_3PTAB-MEMORYID = WA_UPLOAD-VALUE.

      WHEN '0020'.
        WA_3PTAB-LOGFLAG = WA_UPLOAD-VALUE.
********************************
      WHEN '0021'.
        WA_3PTAB-HEADLEN = WA_UPLOAD-VALUE.

      WHEN '0022'.
        WA_3PTAB-SCRLEN1 = WA_UPLOAD-VALUE.

      WHEN '0023'.
        WA_3PTAB-SCRLEN2 = WA_UPLOAD-VALUE.

      WHEN '0024'.
        WA_3PTAB-SCRLEN3 = WA_UPLOAD-VALUE.

      WHEN '0025'.
        WA_3PTAB-DTELGLOBAL = WA_UPLOAD-VALUE.

      WHEN '0026'.
        WA_3PTAB-DTELMASTER = WA_UPLOAD-VALUE.

      WHEN '0027'.
        WA_3PTAB-RESERVEDTE = WA_UPLOAD-VALUE.

      WHEN '0028'.
        WA_3PTAB-DATATYPE = WA_UPLOAD-VALUE.

      WHEN '0029'.
        WA_3PTAB-LENG = WA_UPLOAD-VALUE.

      WHEN '0030'.
        WA_3PTAB-OUTPUTLEN = WA_UPLOAD-VALUE.

      WHEN '0031'.
        WA_3PTAB-DECIMALS = WA_UPLOAD-VALUE.

      WHEN '0032'.
        WA_3PTAB-LOWERCASE = WA_UPLOAD-VALUE.

      WHEN '0033'.
        WA_3PTAB-SIGNFLAG = WA_UPLOAD-VALUE.

      WHEN '0034'.
        WA_3PTAB-LANGFLAG = WA_UPLOAD-VALUE.

      WHEN '0035'.
        WA_3PTAB-VALEXI = WA_UPLOAD-VALUE.

      WHEN '0036'.
        WA_3PTAB-ENTITYTAB = WA_UPLOAD-VALUE.

      WHEN '0037'.
        WA_3PTAB-CONVEXIT = WA_UPLOAD-VALUE.

      WHEN '0038'.
        WA_3PTAB-MASK = WA_UPLOAD-VALUE.

      WHEN '0039'.
        WA_3PTAB-MASKLEN = WA_UPLOAD-VALUE.

      WHEN '0040'.
        WA_3PTAB-ACTFLAG = WA_UPLOAD-VALUE.

      WHEN '0041'.
        WA_3PTAB-DDTEXT = WA_UPLOAD-VALUE.

      WHEN '0042'.
        WA_3PTAB-REPTEXT = WA_UPLOAD-VALUE.

      WHEN '0043'.
        WA_3PTAB-SCRTEXT_S = WA_UPLOAD-VALUE.

      WHEN '0044'.
        WA_3PTAB-SCRTEXT_M = WA_UPLOAD-VALUE.

      WHEN '0045'.
        WA_3PTAB-SCRTEXT_L = WA_UPLOAD-VALUE.

      WHEN '0046'.
        WA_3PTAB-DOMMASTER = WA_UPLOAD-VALUE.

      WHEN '0047'.
        WA_3PTAB-RESERVEDOM = WA_UPLOAD-VALUE.

      WHEN '0048'.
        WA_3PTAB-DOMGLOBAL = WA_UPLOAD-VALUE.

      WHEN '0049'.
        WA_3PTAB-DOMNAME3L = WA_UPLOAD-VALUE.

      WHEN '0050'.
        WA_3PTAB-SHLPORIGIN = WA_UPLOAD-VALUE.

      WHEN '0051'.
        WA_3PTAB-SHLPNAME = WA_UPLOAD-VALUE.

      WHEN '0052'.
        WA_3PTAB-SHLPFIELD = WA_UPLOAD-VALUE.

      WHEN '0053'.
        WA_3PTAB-TABLETYPE = WA_UPLOAD-VALUE.

      WHEN '0054'.
        WA_3PTAB-DEPTH = WA_UPLOAD-VALUE.

      WHEN '0055'.
        WA_3PTAB-COMPTYPE = WA_UPLOAD-VALUE.

      WHEN '0056'.
        WA_3PTAB-DEFFDNAME = WA_UPLOAD-VALUE.

      WHEN '0057'.
        WA_3PTAB-GROUPNAME = WA_UPLOAD-VALUE.

      WHEN '0058'.
        WA_3PTAB-REFTYPE = WA_UPLOAD-VALUE.

      WHEN '0059'.
        WA_3PTAB-PROXYTYPE = WA_UPLOAD-VALUE.

      WHEN '0060'.
        WA_3PTAB-LANGUFLAG = WA_UPLOAD-VALUE.

      WHEN '0061'.
        WA_3PTAB-EXCLASS = WA_UPLOAD-VALUE.

      WHEN '0062'.
        WA_3PTAB-LTRFLDDIS = WA_UPLOAD-VALUE.

      WHEN '0063'.
        WA_3PTAB-BIDICTRLC = WA_UPLOAD-VALUE.

      WHEN '0064'.
        WA_3PTAB-DBPOSITION = WA_UPLOAD-VALUE.

      WHEN '0065'.
        WA_3PTAB-ANONYMOUS = WA_UPLOAD-VALUE.

      WHEN '0066'.
        WA_3PTAB-OUTPUTSTYLE = WA_UPLOAD-VALUE.

      WHEN '0067'.
        WA_3PTAB-NOHISTORY = WA_UPLOAD-VALUE.

      WHEN '0068'.
        WA_3PTAB-AMPMFORMAT = WA_UPLOAD-VALUE.

      WHEN '0069'.
        WA_3PTAB-STREAMORLOC = WA_UPLOAD-VALUE.

      WHEN '0070'.
        WA_3PTAB-STRORLOCPOS = WA_UPLOAD-VALUE.


    ENDCASE.

    AT  END OF ROW.
      APPEND  WA_3PTAB TO DD03P_TAB.
      CLEAR WA_3PTAB.
    ENDAT.
  ENDLOOP.

ENDFORM.                    " UPLOAD
*&---------------------------------------------------------------------*
*&      Form  CHECK_DOMAIN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CHECK_DOMAIN .

  LOOP AT DD03P_TAB.

    IF DD03P_TAB-DOMNAME+0(1) = 'Z' OR DD03P_TAB-DOMNAME+0(1) = 'Y'.

      CALL FUNCTION 'DDIF_DOMA_GET'
        EXPORTING
          NAME          = DD03P_TAB-DOMNAME
          STATE         = 'A'
          LANGU         = SY-LANGU
        IMPORTING
*         GOTSTATE      =
          DD01V_WA      = DD01V_WA
        TABLES
          DD07V_TAB     = DD07V_TAB
        EXCEPTIONS
          ILLEGAL_INPUT = 1
          OTHERS        = 2.


      IF DD01V_WA IS INITIAL.

        MOVE-CORRESPONDING DD03P_TAB TO DD01V_WA.


        IF DD03P_TAB-VALEXI = 'X'.
          CLEAR DD07V_TAB.
          REFRESH DD07V_TAB.

          LOOP AT DD07V_TAB_DOWN WHERE DOMNAME = DD03P_TAB-DOMNAME.
            DD07V_TAB = DD07V_TAB_DOWN.
            APPEND DD07V_TAB.
            CLEAR DD07V_TAB.
          ENDLOOP.

        ENDIF.

        CALL FUNCTION 'DDIF_DOMA_PUT'
          EXPORTING
            NAME              = DD03P_TAB-DOMNAME
            DD01V_WA          = DD01V_WA
          TABLES
            DD07V_TAB         = DD07V_TAB
          EXCEPTIONS
            DOMA_NOT_FOUND    = 1
            NAME_INCONSISTENT = 2
            DOMA_INCONSISTENT = 3
            PUT_FAILURE       = 4
            PUT_REFUSED       = 5
            OTHERS            = 6.
        IF SY-SUBRC = 0.

          CALL FUNCTION 'DDIF_DOMA_ACTIVATE'
            EXPORTING
              NAME              = DD03P_TAB-DOMNAME
*     AUTH_CHK          = 'X'
*     PRID              = -1
*   IMPORTING
*     RC                =
           EXCEPTIONS
             NOT_FOUND         = 1
             PUT_FAILURE       = 2
             OTHERS            = 3
                    .
          IF SY-SUBRC <> 0.
* Implement suitable error handling here
          ENDIF.

        ENDIF.

        IF GV_REQ_NO IS INITIAL.
          PERFORM CREATE_REQUEST.
        ENDIF.

        PERFORM ASSIGN_OBJ_DOM.

      ENDIF.


    ENDIF.

  ENDLOOP.

ENDFORM.                    " CHECK_DOMAIN
*&---------------------------------------------------------------------*
*&      Form  CHECK_DELE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CHECK_DELE .

  LOOP AT DD03P_TAB.

    IF DD03P_TAB-ROLLNAME+0(1) = 'Z' OR DD03P_TAB-ROLLNAME+0(1) = 'Y'.

      CALL FUNCTION 'DDIF_DTEL_GET'
        EXPORTING
          NAME          = DD03P_TAB-ROLLNAME
          STATE         = 'A'
          LANGU         = SY-LANGU
        IMPORTING
*         GOTSTATE      =
          DD04V_WA      = DD04V_WA
*         TPARA_WA      =
        EXCEPTIONS
          ILLEGAL_INPUT = 1
          OTHERS        = 2.


      IF DD04V_WA IS INITIAL.

        MOVE-CORRESPONDING DD03P_TAB TO DD04V_WA.


        CALL FUNCTION 'DDIF_DTEL_PUT'
          EXPORTING
            NAME              = DD03P_TAB-ROLLNAME
            DD04V_WA          = DD04V_WA
          EXCEPTIONS
            DTEL_NOT_FOUND    = 1
            NAME_INCONSISTENT = 2
            DTEL_INCONSISTENT = 3
            PUT_FAILURE       = 4
            PUT_REFUSED       = 5
            OTHERS            = 6.
        IF SY-SUBRC = 0.
          CALL FUNCTION 'DDIF_DTEL_ACTIVATE'
            EXPORTING
              NAME              = DD03P_TAB-ROLLNAME
*     AUTH_CHK          = 'X'
*     PRID              = -1
*   IMPORTING
*     RC                =
           EXCEPTIONS
             NOT_FOUND         = 1
             PUT_FAILURE       = 2
             OTHERS            = 3
                    .
          IF SY-SUBRC <> 0.
* Implement suitable error handling here
          ENDIF.


        ENDIF.


        IF GV_REQ_NO IS INITIAL.
          PERFORM CREATE_REQUEST.
        ENDIF.

        PERFORM ASSIGN_OBJ_DELM.


      ENDIF.

    ENDIF.


  ENDLOOP.

ENDFORM.                    " CHECK_DELE
*&---------------------------------------------------------------------*
*&      Form  CREATE_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CREATE_TABLE .

  CLEAR : TABLE_HEADER,TECHN_SET,LT_FIELDS.
  REFRESH : LT_FIELDS.

  IF R_TABLE = 'X'.

    TABLE_HEADER-TABNAME = P_TAB.
    TABLE_HEADER-DDTEXT = 'New Table'.
    TABLE_HEADER-DDLANGUAGE = SY-LANGU.
    TABLE_HEADER-TABCLASS = 'TRANSP'.
    TABLE_HEADER-AS4USER = SY-UNAME.
    TABLE_HEADER-CONTFLAG = 'A'.
    TABLE_HEADER-MAINFLAG = 'X'.
    TABLE_HEADER-EXCLASS   = 3.


    TECHN_SET-TABNAME = P_TAB.
    TECHN_SET-TABKAT = 2.
    TECHN_SET-TABART = 'APPL1'.
    TECHN_SET-BUFALLOW = 'N'.

  ELSEIF R_STRUCT = 'X' .

    TABLE_HEADER-TABNAME = P_TAB.
    TABLE_HEADER-DDTEXT = 'New Structure'.
    TABLE_HEADER-DDLANGUAGE = SY-LANGU.
    TABLE_HEADER-TABCLASS = 'INTTAB'.
    TABLE_HEADER-AS4USER = SY-UNAME.
    TABLE_HEADER-VIEWCLASS = 'D'.
    TABLE_HEADER-VIEWGRANT = 'R'.
    TABLE_HEADER-EXCLASS   = 3.

*  ELSEIF APP_STR = 'X'.
*    TABLE_HEADER-TABNAME = P_TAB.
*    TABLE_HEADER-DDTEXT = 'Append Structure'.
*    TABLE_HEADER-DDLANGUAGE = SY-LANGU.
*    TABLE_HEADER-TABCLASS = 'APPEND'.
*    TABLE_HEADER-AS4USER = SY-UNAME.

  ENDIF.


  LOOP AT DD03P_TAB.

    WA_FIELD = DD03P_TAB.
    WA_FIELD-TABNAME = P_TAB.

    APPEND WA_FIELD TO LT_FIELDS.
    CLEAR WA_FIELD.

  ENDLOOP.

  L_NAME = P_TAB.

  CALL FUNCTION 'DDIF_TABL_PUT'
    EXPORTING
      NAME              = L_NAME
      DD02V_WA          = TABLE_HEADER
      DD09L_WA          = TECHN_SET
    TABLES
      DD03P_TAB         = LT_FIELDS " Table fields
    EXCEPTIONS
      TABL_NOT_FOUND    = 1
      NAME_INCONSISTENT = 2
      TABL_INCONSISTENT = 3
      PUT_FAILURE       = 4
      PUT_REFUSED       = 5
      OTHERS            = 6.

  IF SY-SUBRC = 0.

    WRITE: /, 'Table Created'.

  ELSE.

    WRITE: /, 'Error occurred'.

  ENDIF.


*Activating the Table


  L_NAME = P_TAB.

  CALL FUNCTION 'DDIF_TABL_ACTIVATE'

     EXPORTING

       NAME              = L_NAME

* IMPORTING

*   RC                =

  EXCEPTIONS

      NOT_FOUND         = 1

      PUT_FAILURE       = 2

      OTHERS            = 3.

  IF SY-SUBRC <> 0.

    WRITE: /, 'Table could not be activated.'.

    RETURN.

  ELSE.

    WRITE: /, 'Table has been activated.'.


    IF GV_REQ_NO IS INITIAL.
      PERFORM CREATE_REQUEST.
    ENDIF.

    PERFORM ASSIGN_OBJ_TAB.

    CONCATENATE W_REQDESC '--' GV_REQ_NO INTO W_REQDESC.


    WRITE : / W_REQDESC.

  ENDIF.



ENDFORM.                    " CREATE_TABLE
*&---------------------------------------------------------------------*
*&      Form  GET_FILE2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_FILE_DOM  text
*----------------------------------------------------------------------*
FORM GET_FILE2  USING    P_FILE_DOM.

  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    CHANGING
      FILE_NAME = FILE_DOM.

ENDFORM.                    " GET_FILE2
*&---------------------------------------------------------------------*
*&      Form  UPLOAD2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_FILE_DOM  text
*----------------------------------------------------------------------*
FORM UPLOAD2  USING    P_FILE_DOM.

  CLEAR : IT_UPLOAD, IT_UPLOAD[].

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                = P_FILE_DOM
      I_BEGIN_COL             = 1
      I_BEGIN_ROW             = 2
      I_END_COL               = 10
      I_END_ROW               = 9999
    TABLES
      INTERN                  = IT_UPLOAD
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2
      OTHERS                  = 3.



*  IF IT_UPLOAD[] IS INITIAL.
*    MESSAGE 'No data Uploaded' TYPE 'I'.
*  ENDIF.

  LOOP AT IT_UPLOAD INTO WA_UPLOAD.
    CASE WA_UPLOAD-COL.
      WHEN '0001'.
        WA_DD07V-DOMNAME = WA_UPLOAD-VALUE.

      WHEN '0002'.
        WA_DD07V-VALPOS = WA_UPLOAD-VALUE.

      WHEN '0003'.
        WA_DD07V-DDLANGUAGE = WA_UPLOAD-VALUE.

      WHEN '0004'.
        WA_DD07V-DOMVALUE_L = WA_UPLOAD-VALUE.

      WHEN '0005'.
        WA_DD07V-DOMVALUE_H = WA_UPLOAD-VALUE.

      WHEN '0006'.
        WA_DD07V-DDTEXT = WA_UPLOAD-VALUE.

      WHEN '0007'.
        WA_DD07V-DOMVAL_LD = WA_UPLOAD-VALUE.

      WHEN '0008'.
        WA_DD07V-DOMVAL_HD = WA_UPLOAD-VALUE.

      WHEN '0009'.
        WA_DD07V-APPVAL = WA_UPLOAD-VALUE.

    ENDCASE.

    AT  END OF ROW.
      APPEND  WA_DD07V TO DD07V_TAB_DOWN.
      CLEAR WA_DD07V.
    ENDAT.
  ENDLOOP.

ENDFORM.                    " UPLOAD2
*&---------------------------------------------------------------------*
*&      Form  CREATE_REQUEST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CREATE_REQUEST .


  CONCATENATE 'Request no for Table ' P_TAB INTO W_REQDESC.

  CALL FUNCTION 'IW_C_CREATE_TRANSPORT_REQUEST'
    EXPORTING
      DESCRIPTION            = W_REQDESC
      TRANSPORT_KIND         = 'K'
      LANGU                  = SY-LANGU
    IMPORTING
      COMMFILE               = GV_REQ_NO
    EXCEPTIONS
      LANGUAGE_MISSING       = 1
      NUMBER_RANGE_FULL      = 2
      UNALLOWED_TRFUNCTION   = 3
      NO_AUTHORIZATION       = 4
      CREATE_TRANSPORT_ERROR = 5
      OTHERS                 = 6.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  GS_AUTHORLIST-TASK_OWNER = SY-UNAME.
  APPEND GS_AUTHORLIST TO GT_AUTHORLIST.

  GS_AUTHORLIST-TASK_OWNER = SY-UNAME.
  APPEND GS_AUTHORLIST TO GT_AUTHORLIST.

  CALL FUNCTION 'BAPI_CTREQUEST_CREATE_TASKS'
    EXPORTING
      REQUESTID        = GV_REQ_NO
* IMPORTING
*   RETURN           =
    TABLES
      AUTHORLIST       = GT_AUTHORLIST
      TASK_LIST        = GT_TASK_LIST
            .

ENDFORM.                    " CREATE_REQUEST
*&---------------------------------------------------------------------*
*&      Form  ASSIGN_OBJ
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ASSIGN_OBJ_DOM.

  CLEAR BDCDATA.
  REFRESH BDCDATA.

  PERFORM BDC_DYNPRO      USING 'SAPLSD_ENTRY' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RSRD1-DOMA'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=CHANGE_RADIO'.
  PERFORM BDC_FIELD       USING 'RSRD1-DDTYPE'
                                ''.
  PERFORM BDC_FIELD       USING 'RSRD1-DDTYPE_VAL'
                                ''.
  PERFORM BDC_FIELD       USING 'RSRD1-DOMA'
                                'X'.
  PERFORM BDC_FIELD       USING 'RSRD1-DOMA_VAL'
                                DD03P_TAB-DOMNAME.


  PERFORM BDC_DYNPRO      USING 'SAPLSD_ENTRY' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RSRD1-DOMA_VAL'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_EDIT'.
  PERFORM BDC_FIELD       USING 'RSRD1-DOMA'
                                'X'.
  PERFORM BDC_FIELD       USING 'RSRD1-DOMA_VAL'
                                DD03P_TAB-DOMNAME.


  PERFORM BDC_DYNPRO      USING 'SAPLSD11' '1200'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD01D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_TADIR_EDIT'.

*perform bdc_field       using 'DD01D-DDTEXT'
*                              'Deletion Flag'.
*perform bdc_field       using 'DD01D-DATATYPE'
*                              'CHAR'.
*perform bdc_field       using 'DD01D-LENG'
*                              '     1'.
*perform bdc_field       using 'DD01D-OUTPUTLEN'
*                              '     1'.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO007-L_DEVCLASS'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=ADD'.
  PERFORM BDC_FIELD       USING 'KO007-L_DEVCLASS'
                                W_PACKAGE.
  PERFORM BDC_FIELD       USING 'KO007-L_AUTHOR'
                                SY-UNAME.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0300'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO008-TRKORR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=LOCK'.
  PERFORM BDC_FIELD       USING 'KO008-TRKORR'
                                GV_REQ_NO.


  PERFORM BDC_DYNPRO      USING 'SAPLSD11' '1200'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD01D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_SAVE'.

  CONCATENATE DD03P_TAB-DDTEXT '.' INTO DD03P_TAB-DDTEXT.

  PERFORM BDC_FIELD       USING 'DD01D-DDTEXT'
                                DD03P_TAB-DDTEXT.
*perform bdc_field       using 'DD01D-DATATYPE'
*                              'CHAR'.
*perform bdc_field       using 'DD01D-LENG'
*                              '     1'.
*perform bdc_field       using 'DD01D-OUTPUTLEN'
*                              '     1'.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0300'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO008-TRKORR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=LOCK'.
  PERFORM BDC_FIELD       USING 'KO008-TRKORR'
                                GV_REQ_NO.


  PERFORM BDC_DYNPRO      USING 'SAPLSD11' '1200'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD01D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_ACTIVATE'.
*perform bdc_field       using 'DD01D-DDTEXT'
*                              'Deletion Flag'.
*perform bdc_field       using 'DD01D-DATATYPE'
*                              'CHAR'.
*perform bdc_field       using 'DD01D-LENG'
*                              '     1'.
*perform bdc_field       using 'DD01D-OUTPUTLEN'
*                              '     1'.


  PERFORM BDC_DYNPRO      USING 'SAPLSEWORKINGAREA' '0205'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WEIT'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'WORK_ITEMS-OBJ_NAME(01)'.


  WA_OPTIONS-DISMODE  = 'N'.


  REFRESH:IT_MESSTAB.

  CALL TRANSACTION 'SE11' USING BDCDATA OPTIONS FROM WA_OPTIONS
           MESSAGES INTO IT_MESSTAB.

  COMMIT WORK.

ENDFORM.                    " ASSIGN_OBJ

*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0308   text
*      -->P_0309   text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO  USING     PROGRAM DYNPRO.

  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.


ENDFORM.                    " BDC_DYNPRO
*&---------------------------------------------------------------------*
*&      Form  BDC_FIELD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0313   text
*      -->P_0314   text
*----------------------------------------------------------------------*
FORM BDC_FIELD  USING    FNAM FVAL .

  CLEAR BDCDATA.
  BDCDATA-FNAM = FNAM.
  BDCDATA-FVAL = FVAL.
  APPEND BDCDATA.


ENDFORM.                    " BDC_FIELD    .
*&---------------------------------------------------------------------*
*&      Form  ASSIGN_OBJ_DELM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ASSIGN_OBJ_DELM .

  CLEAR BDCDATA.
  REFRESH BDCDATA.



  PERFORM BDC_DYNPRO      USING 'SAPLSD_ENTRY' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RSRD1-DOMA_VAL'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_EDIT'.
  PERFORM BDC_FIELD       USING 'RSRD1-TBMA_VAL'
                                ''.
  PERFORM BDC_FIELD       USING 'RSRD1-VIMA_VAL'
                                ''.
  PERFORM BDC_FIELD       USING 'RSRD1-DDTYPE'
                                'X'.
  PERFORM BDC_FIELD       USING 'RSRD1-DDTYPE_VAL'
                                DD03P_TAB-ROLLNAME.
  PERFORM BDC_FIELD       USING 'RSRD1-DOMA_VAL'
                                ''.


  PERFORM BDC_DYNPRO      USING 'SAPLSD51' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_TADIR_EDIT'.
*  PERFORM BDC_FIELD       USING 'DD04D-DDTEXT'
*                                'Deletion Flag'.
*  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
*                                'DD04D-DOMNAME'.
*  PERFORM BDC_FIELD       USING 'RADIO-ELEM'
*                                'X'.
*  PERFORM BDC_FIELD       USING 'RADIO-DOMAIN'
*                                'X'.
*  PERFORM BDC_FIELD       USING 'DD04D-DOMNAME'
*                                'ZDFLGP_222'.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO007-L_DEVCLASS'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=ADD'.
  PERFORM BDC_FIELD       USING 'KO007-L_DEVCLASS'
                                W_PACKAGE.
  PERFORM BDC_FIELD       USING 'KO007-L_AUTHOR'
                                SY-UNAME.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0300'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO008-TRKORR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=LOCK'.
  PERFORM BDC_FIELD       USING 'KO008-TRKORR'
                                GV_REQ_NO.


  PERFORM BDC_DYNPRO      USING 'SAPLSD51' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD04D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_SAVE'.

  CONCATENATE DD03P_TAB-DDTEXT '.' INTO DD03P_TAB-DDTEXT.
  PERFORM BDC_FIELD       USING 'DD04D-DDTEXT'
                                DD03P_TAB-DDTEXT.

*  PERFORM BDC_FIELD       USING 'RADIO-ELEM'
*                                'X'.
*  PERFORM BDC_FIELD       USING 'RADIO-DOMAIN'
*                                'X'.
*  PERFORM BDC_FIELD       USING 'DD04D-DOMNAME'
*                                'ZDFLGP_222'.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0300'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO008-TRKORR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=LOCK'.
  PERFORM BDC_FIELD       USING 'KO008-TRKORR'
                                GV_REQ_NO.


  PERFORM BDC_DYNPRO      USING 'SAPLSD51' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD04D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_ACTIVATE'.
*  PERFORM BDC_FIELD       USING 'DD04D-DDTEXT'
*                                'Deletion Flag'.
*  PERFORM BDC_FIELD       USING 'RADIO-ELEM'
*                                'X'.
*  PERFORM BDC_FIELD       USING 'RADIO-DOMAIN'
*                                'X'.
*  PERFORM BDC_FIELD       USING 'DD04D-DOMNAME'
*                                'ZDFLGP_222'.

  PERFORM BDC_DYNPRO      USING 'SAPLSEWORKINGAREA' '0205'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WEIT'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'WORK_ITEMS-OBJ_NAME(01)'.


  WA_OPTIONS-DISMODE  = 'N'.


  REFRESH:IT_MESSTAB.

  CALL TRANSACTION 'SE11' USING BDCDATA OPTIONS FROM WA_OPTIONS
           MESSAGES INTO IT_MESSTAB.
  COMMIT WORK.

ENDFORM.                    " ASSIGN_OBJ_DELM
*&---------------------------------------------------------------------*
*&      Form  ASSIGN_OBJ_TAB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ASSIGN_OBJ_TAB .

  CLEAR BDCDATA.
  REFRESH BDCDATA.

  PERFORM BDC_DYNPRO      USING 'SAPLSD_ENTRY' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RSRD1-TBMA_VAL'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_EDIT'.
  PERFORM BDC_FIELD       USING 'RSRD1-TBMA'
                                'X'.
  PERFORM BDC_FIELD       USING 'RSRD1-TBMA_VAL'
                                L_NAME.
*  PERFORM BDC_FIELD       USING 'RSRD1-DDTYPE_VAL'
*                                'ZZPROD_FORM'.
*  PERFORM BDC_FIELD       USING 'RSRD1-DOMA_VAL'
*                                'ZDFLGP_223'.

  PERFORM BDC_DYNPRO      USING 'SAPLSD41' '2200'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD02D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_TADIR_EDIT'.
*  PERFORM BDC_FIELD       USING 'DD02D-DDTEXT'
*                                'New Table'.

  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO007-L_DEVCLASS'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=ADD'.
  PERFORM BDC_FIELD       USING 'KO007-L_DEVCLASS'
                                W_PACKAGE.
  PERFORM BDC_FIELD       USING 'KO007-L_AUTHOR'
                                SY-UNAME.

  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0300'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO008-TRKORR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=LOCK'.
  PERFORM BDC_FIELD       USING 'KO008-TRKORR'
                                GV_REQ_NO.

  PERFORM BDC_DYNPRO      USING 'SAPLSD41' '2200'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'DD02D-DDTEXT'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WB_ACTIVATE'.

  PERFORM BDC_FIELD       USING 'DD02D-DDTEXT'
                                'New Table.'.


  PERFORM BDC_DYNPRO      USING 'SAPLSTRD' '0300'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'KO008-TRKORR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=LOCK'.
  PERFORM BDC_FIELD       USING 'KO008-TRKORR'
                                GV_REQ_NO.

  PERFORM BDC_DYNPRO      USING 'SAPLSEWORKINGAREA' '0205'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=WEIT'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'WORK_ITEMS-OBJ_NAME(01)'.

  WA_OPTIONS-DISMODE  = 'N'.


  REFRESH:IT_MESSTAB.

  CALL TRANSACTION 'SE11' USING BDCDATA OPTIONS FROM WA_OPTIONS
           MESSAGES INTO IT_MESSTAB.

  COMMIT WORK.

ENDFORM.                    " ASSIGN_OBJ_TAB

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值