Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

display variant in a copied program

Former Member
0 Likes
562

I need to copy a standard FI program BUT when I have copied it (all includes and variants) I have no disposition (display variant) like '1_SAP_2_LINE' to execute it so I can´t process anything and I need the copy it to modify the parameters and totals of an ALV.

Do you know how to copy this variants so I can execute the program ?

Thank you in advance,

4 REPLIES 4
Read only

Former Member
0 Likes
498

Hi

Can you tell me which program of FI you are referring to?

Regards,

Raj

Read only

Former Member
0 Likes
498

Hi,

you can copy all variants from standard program

by checking variant in dialog box displayed at time

of program copy

or

use FM t copy variant

RS_VARIANT_CHANGE

RS_VARIANT_CLIENTCOPY

RS_HDSYS_CLIENT_COPY_VARIANT

RS_HDSYS_COPY_ALL_VARIANTS

RS_HDSYS_COPY_VARIANT

Regards

Amole

Read only

0 Likes
498

I need to copy the display variants of sap like 1_SAP_2_LINE to execute the program. Is it possible ? The program you've proposed me copies different variants from the ones I'd like to copy.

Thank you.

Read only

Former Member
0 Likes
498

Hi,

Below is the Program which copied the Variants from one Program to another program

* ------------------------------------------------------
* Copy Variants from one Program to another.
* ------------------------------------------------------
REPORT Z_COPY_VARIANTS_PROG_TO_PROG .

* =====================================================
* Data Declarations Section
* =====================================================
TABLES : VARID , VARIS , VARIT  .
* -----------------------------------------------------
DATA : BEGIN OF MYVARID OCCURS 0 .
        INCLUDE STRUCTURE VARID .
DATA : END OF MYVARID .
* -----------------------------------------------------
DATA : BEGIN OF MYVARIS OCCURS 0 .
        INCLUDE STRUCTURE VARIS .
DATA : END OF MYVARIS .
* -----------------------------------------------------
DATA : BEGIN OF MYVARIT OCCURS 0 .
        INCLUDE STRUCTURE VARIT .
DATA : END OF MYVARIT .
* -----------------------------------------------------
DATA : BEGIN OF MYVARI  OCCURS 0 .
        INCLUDE STRUCTURE VARI  .
DATA : END OF MYVARI .

DATA : MANS(1) TYPE C .

DATA :   PROGRAMM LIKE RS38M-PROGRAMM  .
DATA : BEGIN OF MDYNPFIELDS OCCURS 1 .
        INCLUDE STRUCTURE DYNPREAD .
DATA : END OF MDYNPFIELDS .
CONSTANTS BUTTONSELECTED(1) TYPE C VALUE 'X' .

* ======================================================
* Macro for Inputing Filenames
* ======================================================
DEFINE GET_FILENAME .
  CALL FUNCTION 'WS_FILENAME_GET'
      EXPORTING
*         DEF_FILENAME     = ' '
           DEF_PATH         = &1
           MASK             = ',*.*,*.*.'
           MODE             = '0'
*         TITLE            = ' '
      IMPORTING
           FILENAME         = &2
*         RC               =
       EXCEPTIONS
            INV_WINSYS       = 1
            NO_BATCH         = 2
            SELECTION_CANCEL = 3
            SELECTION_ERROR  = 4
            OTHERS           = 5.

END-OF-DEFINITION .

* ======================================================
* Macro for Downloading to ASCII Files
* ======================================================
DEFINE DOWNLOAD_TO_ASCII .
  CALL FUNCTION 'WS_DOWNLOAD'
      EXPORTING
*         BIN_FILESIZE            = ' '
*         CODEPAGE                = ' '
           FILENAME                = &1
           FILETYPE                = 'DAT'
*         MODE                    = ' '
*         WK1_N_FORMAT            = ' '
*         WK1_N_SIZE              = ' '
*         WK1_T_FORMAT            = ' '
*         WK1_T_SIZE              = ' '
*         COL_SELECT              = ' '
*         COL_SELECTMASK          = ' '
*         NO_AUTH_CHECK           = ' '
*    IMPORTING
*         FILELENGTH              =
       TABLES
            DATA_TAB                = &2
*         FIELDNAMES              =
       EXCEPTIONS
            FILE_OPEN_ERROR         = 1
            FILE_WRITE_ERROR        = 2
            INVALID_FILESIZE        = 3
            INVALID_TABLE_WIDTH     = 4
            INVALID_TYPE            = 5
            NO_BATCH                = 6
            UNKNOWN_ERROR           = 7
            GUI_REFUSE_FILETRANSFER = 8
            OTHERS                  = 9.

END-OF-DEFINITION .

* ======================================================
* Macro for uploading Data from ASCII files
* ======================================================
DEFINE UPLOAD_FROM_ASCII .
  CALL FUNCTION 'WS_UPLOAD'
      EXPORTING
*         CODEPAGE                = ' '
           FILENAME                = &1
           FILETYPE                = 'DAT'
*         HEADLEN                 = ' '
*         LINE_EXIT               = ' '
*         TRUNCLEN                = ' '
*         USER_FORM               = ' '
*         USER_PROG               = ' '
*    IMPORTING
*         FILELENGTH              =
       TABLES
            DATA_TAB                = &2
       EXCEPTIONS
            CONVERSION_ERROR        = 1
            FILE_OPEN_ERROR         = 2
            FILE_READ_ERROR         = 3
            INVALID_TABLE_WIDTH     = 4
            INVALID_TYPE            = 5
            NO_BATCH                = 6
            UNKNOWN_ERROR           = 7
            GUI_REFUSE_FILETRANSFER = 8
            CUSTOMER_ERROR          = 9
            OTHERS                  = 10.
END-OF-DEFINITION .

* ======================================================
* Selection Screen Default
* ======================================================
PARAMETERS : P_FROM_P LIKE RS38M-PROGRAMM OBLIGATORY .
PARAMETERS : P_TO_P LIKE RS38M-PROGRAMM OBLIGATORY .
PARAMETERS : P_SAME_S RADIOBUTTON GROUP GRP1 DEFAULT 'X' .
PARAMETERS : P_DOWNLD RADIOBUTTON GROUP GRP1   .
PARAMETERS : P_UPLOAD RADIOBUTTON GROUP GRP1   .
PARAMETERS : P_FILE_D  LIKE   RLGRAP-FILENAME DEFAULT 'c:varid.txt' .
PARAMETERS : P_FILE_S  LIKE   RLGRAP-FILENAME DEFAULT 'c:varis.txt' .
PARAMETERS : P_FILE_T  LIKE   RLGRAP-FILENAME DEFAULT 'c:varit.txt' .
PARAMETERS : P_FILE    LIKE   RLGRAP-FILENAME DEFAULT 'c:vari.txt' .

* =====================================================
* At Selection Screen Events
* =====================================================
AT SELECTION-SCREEN .
  PROGRAMM = P_FROM_P .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_D .
  GET_FILENAME 'c:varid.txt' P_FILE_D .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_S .
  GET_FILENAME 'c:varis.txt' P_FILE_S .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE_T .
  GET_FILENAME 'c:varit.txt' P_FILE_T .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE .
  GET_FILENAME 'c:vari.txt' P_FILE .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FROM_P .
  CLEAR  MDYNPFIELDS . REFRESH MDYNPFIELDS .
  MDYNPFIELDS-FIELDNAME = 'P_FROM_P' .
  APPEND  MDYNPFIELDS .
  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            DYNAME               = SY-CPROG
            DYNUMB               = SY-DYNNR
       TABLES
            DYNPFIELDS           = MDYNPFIELDS
       EXCEPTIONS
            INVALID_ABAPWORKAREA = 1
            INVALID_DYNPROFIELD  = 2
            INVALID_DYNPRONAME   = 3
            INVALID_DYNPRONUMMER = 4
            INVALID_REQUEST      = 5
            NO_FIELDDESCRIPTION  = 6
            INVALID_PARAMETER    = 7
            UNDEFIND_ERROR       = 8
            DOUBLE_CONVERSION    = 9
            STEPL_NOT_FOUND      = 10
            OTHERS               = 11.

  READ TABLE MDYNPFIELDS INDEX 1 .
  PROGRAMM = MDYNPFIELDS-FIELDVALUE .
  CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
       EXPORTING
            OBJECT_TYPE          = 'PROG'
            OBJECT_NAME          = PROGRAMM
       IMPORTING
            OBJECT_NAME_SELECTED = PROGRAMM
       EXCEPTIONS
            CANCEL               = 1
            WRONG_TYPE           = 2
            OTHERS               = 3.
  P_FROM_P = PROGRAMM .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_TO_P .
  CLEAR  MDYNPFIELDS . REFRESH MDYNPFIELDS .
  MDYNPFIELDS-FIELDNAME = 'P_TO_P' .
  APPEND  MDYNPFIELDS .
  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            DYNAME               = SY-CPROG
            DYNUMB               = SY-DYNNR
       TABLES
            DYNPFIELDS           = MDYNPFIELDS
       EXCEPTIONS
            INVALID_ABAPWORKAREA = 1
            INVALID_DYNPROFIELD  = 2
            INVALID_DYNPRONAME   = 3
            INVALID_DYNPRONUMMER = 4
            INVALID_REQUEST      = 5
            NO_FIELDDESCRIPTION  = 6
            INVALID_PARAMETER    = 7
            UNDEFIND_ERROR       = 8
            DOUBLE_CONVERSION    = 9
            STEPL_NOT_FOUND      = 10
            OTHERS               = 11.

  READ TABLE MDYNPFIELDS INDEX 1 .
  PROGRAMM = MDYNPFIELDS-FIELDVALUE .
  CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
       EXPORTING
            OBJECT_TYPE          = 'PROG'
            OBJECT_NAME          = PROGRAMM
       IMPORTING
            OBJECT_NAME_SELECTED = PROGRAMM
       EXCEPTIONS
            CANCEL               = 1
            WRONG_TYPE           = 2
            OTHERS               = 3.
  P_TO_P = PROGRAMM .

* ======================================================
* Start of Selection
* ======================================================
START-OF-SELECTION .
  CASE BUTTONSELECTED.
    WHEN P_SAME_S .
      PERFORM COPY_FROM_PROG_TO_PROG .
    WHEN P_DOWNLD .
      PERFORM VDOWNLOAD .
    WHEN P_UPLOAD .
      PERFORM VUPLOAD .
  ENDCASE .

*&---------------------------------------------------*
*&      Form  COPY_FROM_PROG_TO_PROG
*&---------------------------------------------------*
*       text
*----------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------*
FORM COPY_FROM_PROG_TO_PROG.

  CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
       EXPORTING
*         DEFAULTOPTION  = 'Y'
           TEXTLINE1      = 'Are you sure you want to copy Variants ? '
*         TEXTLINE2      = ' '
            TITEL          = 'Confirmation '
*         START_COLUMN   = 25
*         START_ROW      = 6
*         CANCEL_DISPLAY = 'X'
      IMPORTING
           ANSWER         = MANS
       EXCEPTIONS
            OTHERS         = 1.

  IF MANS = 'J' .
* ------------------------------------------------------
    REFRESH MYVARID . CLEAR MYVARID .
    SELECT * FROM VARID  INTO TABLE MYVARID
                        WHERE REPORT = P_FROM_P.
    LOOP AT MYVARID .
      MYVARID-REPORT = P_TO_P .
      MODIFY MYVARID .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARID WHERE REPORT = P_TO_P .
      INSERT VARID FROM TABLE MYVARID .
    ENDIF .
* ----------------------------------------------------
    REFRESH MYVARIS . CLEAR MYVARIS .
    SELECT * FROM VARIS  INTO TABLE MYVARIS
                        WHERE REPORT = P_FROM_P.
    LOOP AT MYVARIS .
      MYVARIS-REPORT = P_TO_P .
      MODIFY MYVARIS .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARIS WHERE REPORT = P_TO_P .
      INSERT VARIS FROM TABLE MYVARIS .
    ENDIF .
* -----------------------------------------------------
    REFRESH MYVARIT . CLEAR MYVARIT .
    SELECT * FROM VARIT  INTO TABLE MYVARIT
                        WHERE REPORT = P_FROM_P.
    LOOP AT MYVARIT .
      MYVARIT-REPORT = P_TO_P .
      MODIFY MYVARIT .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARIT WHERE REPORT = P_TO_P .
      INSERT VARIT FROM TABLE MYVARIT .
    ENDIF .
* -----------------------------------------------------
    REFRESH MYVARI . CLEAR MYVARI .
    SELECT * FROM VARI   INTO TABLE MYVARI
                        WHERE REPORT = P_FROM_P.
    LOOP AT MYVARI  .
      MYVARI-REPORT = P_TO_P .
      MODIFY MYVARI  .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARI WHERE REPORT = P_TO_P .
      INSERT VARI FROM TABLE MYVARI .
    ENDIF .

  ENDIF .

ENDFORM.                               " COPY_FROM_PROG_TO_PROG

*&-----------------------------------------------------*
*&      Form  VDOWNLOAD
*&-----------------------------------------------------*
*       text
*------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*------------------------------------------------------*
FORM VDOWNLOAD.
  REFRESH MYVARID . CLEAR MYVARID .
  SELECT * FROM VARID  INTO TABLE MYVARID
                      WHERE REPORT = P_FROM_P.
  DOWNLOAD_TO_ASCII  P_FILE_D  MYVARID .

* -----------------------------------------------------
  REFRESH MYVARIS . CLEAR MYVARIS .
  SELECT * FROM VARIS  INTO TABLE MYVARIS
                      WHERE REPORT = P_FROM_P.
  DOWNLOAD_TO_ASCII P_FILE_S  MYVARIS .

* -----------------------------------------------------
  REFRESH MYVARIT . CLEAR MYVARIT .
  SELECT * FROM VARIT  INTO TABLE MYVARIT
                      WHERE REPORT = P_FROM_P.
  DOWNLOAD_TO_ASCII P_FILE_T  MYVARIT .

* ----------------------------------------------------
  REFRESH MYVARI . CLEAR MYVARI .
  SELECT * FROM VARI   INTO TABLE MYVARI
                      WHERE REPORT = P_FROM_P.
  DOWNLOAD_TO_ASCII P_FILE  MYVARI .

ENDFORM.                               " VDOWNLOAD

*&-----------------------------------------------------*
*&      Form  VUPLOAD
*&-----------------------------------------------------*
*       text
*------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*------------------------------------------------------*
FORM VUPLOAD.
  CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
       EXPORTING
*         DEFAULTOPTION  = 'Y'
           TEXTLINE1      =
           'Are you sure you want to upload Variants ? '
*         TEXTLINE2      = ' '
            TITEL          = 'Confirmation '
*         START_COLUMN   = 25
*         START_ROW      = 6
*         CANCEL_DISPLAY = 'X'
      IMPORTING
           ANSWER         = MANS
       EXCEPTIONS
            OTHERS         = 1.

  IF MANS = 'J' .
* -----------------------------------------------------
    REFRESH MYVARID . CLEAR MYVARID .
    UPLOAD_FROM_ASCII P_FILE_D MYVARID .
    LOOP AT MYVARID .
      MYVARID-REPORT = P_TO_P .
      MODIFY MYVARID .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARID WHERE REPORT = P_TO_P .
      INSERT VARID FROM TABLE MYVARID .
    ENDIF .
* -----------------------------------------------------
    REFRESH MYVARIS . CLEAR MYVARIS .
    UPLOAD_FROM_ASCII P_FILE_S MYVARIS  .
    LOOP AT MYVARIS .
      MYVARIS-REPORT = P_TO_P .
      MODIFY MYVARIS .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARIS WHERE REPORT = P_TO_P .
      INSERT VARIS FROM TABLE MYVARIS .
    ENDIF .
* -----------------------------------------------------
    REFRESH MYVARIT . CLEAR MYVARIT .
    UPLOAD_FROM_ASCII P_FILE_T MYVARIT  .
    LOOP AT MYVARIT .
      MYVARIT-REPORT = P_TO_P .
      MODIFY MYVARIT .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARIT WHERE REPORT = P_TO_P .
      INSERT VARIT FROM TABLE MYVARIT .
    ENDIF .
* ------------------------------------------------------
    REFRESH MYVARI . CLEAR MYVARI .
    UPLOAD_FROM_ASCII P_FILE  MYVARI   .
    LOOP AT MYVARI  .
      MYVARI-REPORT = P_TO_P .
      MODIFY MYVARI  .
    ENDLOOP .
    IF SY-SUBRC = 0 .
      DELETE FROM VARI WHERE REPORT = P_TO_P .
      INSERT VARI FROM TABLE MYVARI .
    ENDIF .

  ENDIF .

ENDFORM.                               " VUPLOAD

see the below link for another Program also

http://sap.ittoolbox.com/code/archives.asp?d=2275&a=s&i=10

Regards

Sudheer