Copying ALV Variant

Hi All,
I have an ALV variant for Prog1. Now I want to copy and use the same variant for Prog2. (Prog2 is a copy of Prog1 with some small changes)
How can I do this?
Thanks & Regards,
Saurabh

Hi
Try to copy the hits of the table LTDX and change the name of the program
Max

Similar Messages

  • Copying ALV variants/layouts between programs

    Hi guys,
    Does anyone know how to copy ALV layouts between programs in the same client?  I have created a copy of a report which uses the ALV functionality via the REUSE_* function modules.  The original report has over 40 layouts, so I don't want to have to re-create them manually in the new program.  These programs are in the same client on the  same system, so the Import Layout and Transport Layout options aren't going to be of any use (as far as I can see...)
    Any ideas greatly appreciated.
    Cheers,
    Andrew

    I took this approach and it worked for me:
    1) Change your program so that everytime an ALV function is called it is using the original program name in the variant declaration, ensure you keep the original code commented out, you will need to put it back later. Examples:
    FORM variant_init USING varname TYPE slis_vari.
    CLEAR g_variant.
    g_variant-report = g_repid.
    g_variant-report = 'ORIGINAL_PROGRAM_NAME'.
    FORM f4_for_variant.
    g_variant-report = sy-repid.
    g_variant-report = ‘ORIGINAL_PROGRAM_NAME’.
    CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    FORM check_variant.
    IF NOT p_vari IS INITIAL.
    g_variant-report = sy-repid.
    g_variant-report = ‘ORIGINAL_PROGRAM_NAME’.
    g_variant-variant = p_vari.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
    2) Display function lt_variant_save via SE37, set a breakpoint at the first executable line:
    perform variant_save tables it_fieldcat
    4) Run your program with the layout variant you wish to copy.
    5) Hit Save Variant. You are now in debug mode.
    6) Enter variable CS_VARIANT-REPORT in the variables 1 panel.
    7) Double-click on CS_VARIANT-REPORT.
    8) Hit the Change Field Content button
    9) Change the value to the name of your new program, then hit Enter.
    10) Hit Execute (F8). You have now saved the variant under your new program name.
    11) Exit and rerun your program as necessary for as many variants as you want to copy
    12) Change your program back to using sy-repid (or whatever else it was referencing) wherever you changed it in step 1.
    13) The variants have now been copied and you can run your program with the new variants.

  • Copy Query Variants from InfoCube to MultiProvider

    Hi,
    Is it possible to copy query variants from an infocube to a multiprovider?
    Basically, we used RSZC to copy the queries from the infocube to the multiprovider, but it doesn't look like the variants were copied over. Is there an ABAP program or some other workaround that can expedite/facilitate in recreating the variants on the multiprovider queries?
    Your help is much appreciated.
    Thanks,
    KK
    Edited by: Kristin Kalalau on Jan 29, 2009 10:48 PM

    It is possible to copy but the only requirement is your target cube structure should match with the source cube structure.
    Thanks...
    Shambhu
    Edited by: Shambhu Kumar Gupta on Jan 30, 2009 12:01 PM

  • How to find number of columns used in a ALV variant

    I need to know how many column is active ( will be shown in the ALV report ) related to a specific ALV Variant.
    Example :
    The structure of my internal table has 147 columns.
    The user in a specific ALV variant has chosen 25 columns of those 147 colums, so I need to know that this ALV variant will show 25 columns.
    Thanks!   Jo  

    Hi Max,
    Thanks for hints.
    Finnally I did the verification at the beginning of my process.
    Because I need the information before getting the data, so I called the METHOD with a "dummy" table,
    and I received the info of what I need, the number of column related to a specific ALV Variant.
    I used :
      ls_variant-report    = sy-repid.
      ls_variant-variant   = p_alvvar.   "<<<  Select-option field for AVL Variant
      ls_variant-log_group = 'L01'.
        CALL METHOD lo_grid1->set_table_for_first_display
          EXPORTING
            i_structure_name     = 'MY_STRUCTURE'
            is_variant          = ls_variant
            is_layout           = ls_layout
            i_save               = 'A'
            i_default            = 'X'
            I_BYPASSING_BUFFER   = 'X'
          CHANGING
            it_fieldcatalog     = LT_FIELDCATALOG
            it_outtab            = lt_dummy[].      
        CALL METHOD lo_grid1->GET_FRONTEND_FIELDCATALOG
          IMPORTING
            ET_FIELDCATALOG =  LT_FIELDCATALOG.
      loop at LT_FIELDCATALOG into ls_FIELDCATALOG where no_out = space.
              add 1 to LV_NB_COLUMNS.
      endloop.
    Jo  

  • How can i copy the variant

    Hi abap gurus,
    Plz can any one tell how we can copy the variant from one client to another client.
    Plz give me the answer or any program is there plz send me that.
    Rgds,

    Hi rangamma,
    Plz go through  this program . I think it will help.
    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' .
    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 .
    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 .
    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 begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_FROM_P .
    PARAMETERS : P_FROM_P LIKE RS38M-PROGRAMM OBLIGATORY .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_TO_P .
    PARAMETERS : P_TO_P LIKE RS38M-PROGRAMM OBLIGATORY .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_SAME_S .
    PARAMETERS : P_SAME_S RADIOBUTTON GROUP GRP1 DEFAULT 'X' .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_DOWNLD .
    PARAMETERS : P_DOWNLD RADIOBUTTON GROUP GRP1   .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_UPLOAD .
    PARAMETERS : P_UPLOAD RADIOBUTTON GROUP GRP1   .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_FILE_D .
    PARAMETERS : P_FILE_D  LIKE   RLGRAP-FILENAME DEFAULT 'c:\varid.txt' .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_FILE_S .
    PARAMETERS : P_FILE_S  LIKE   RLGRAP-FILENAME DEFAULT 'c:\varis.txt' .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_FILE_T .
    PARAMETERS : P_FILE_T  LIKE   RLGRAP-FILENAME DEFAULT 'c:\varit.txt' .
    selection-screen end of line.
    SELECTION-SCREEN begin of line.
    SELECTION-SCREEN COMMENT 5(23) T_FILE   .
    PARAMETERS : P_FILE    LIKE   RLGRAP-FILENAME DEFAULT 'c:\vari.txt' .
    selection-screen end of line.
    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 .
    INITIALIZATION .
      T_FROM_P = 'From Program'.
      T_TO_P   = 'To Program  ' .
      T_SAME_S = 'Copy from Prog to Prog' .
      T_DOWNLD = 'Download to Local Disk' .
      T_UPLOAD = 'Upload from Local Disk' .
      T_FILE_D = 'Local File VARID' .
      T_FILE_S = 'Local File VARIS' .
      T_FILE_T = 'Local File VARIT' .
      T_FILE   = 'Local File VARI' .
    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.
      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.
      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.
      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
    Rewards points if it is helpful.
    Rgds,
    P.Naganjana Reddy

  • Remote enabled function module to copy a variant

    Hi
    Kindly let me know whether there is any remote enable function module to copy a variant  and save a  variant.
    Thanks and Regards
    neeta

    HI,
    Use the Function moduels
    <b>RS_VARIANT_CLIENTCOPY 
    RS_VARIANT_COPY   </b>    
    Regards
    Sudheer

  • Apply ALV variant before export file in background task

    Hi all,
    I'm working on an ALV report.
    As my report should deal with a great amount of data, it's sometimes running in background.
    Users want the result to be sent by mail (in .CSV format so that they can use it in excel).
    For now, the sending is OK but the file contains all fields of the internal table (no specific filter, no sort...).
    How can i apply ALV variant (i.e keeping some of the fields, filter the list an so on) to the internal table before i build the file ?
    Thanks

    Salut Jérôme,
    un vieux (très vieux) code que j'avais fait.
    le but était d'envoyer par email le résultat d'un ALV grid.
    il t'en manque une partie, mais le principal est dedans
    *   Procédure P_GEN_HTML.                                              *
    *   Génération d'un email en HTML.                                     *
    form p_gen_html.
    data : struct_zgre000_s2 type zgre000_s2 ,
            v_es_layout       type lvc_s_layo ,
            v_e_var_save(1) ,
            v_e_var_def(1) ,
            m_calculate_totals(1) value 'X' ,
            itab_mt_data      type lvc_t_data ,
            itab_mt_info      type lvc_t_info ,
            itab_mt_sort      type lvc_t_sort ,
            itab_mt_filter    type lvc_t_filt ,
            itab_mt_filter_i  type lvc_t_fidx ,
            itab_html         type swl_html_t ,
            m_cl_variant      type ref to cl_alv_variant ,
            mt_outtab         type ref to data ,
            object_hd_change  like sood1 occurs 0 with header line,
            objpara           like selc  occurs 0 with header line,
            receivers         like zbc_receivers occurs 0 with header line ,
            ms_total_options      type lvc_s_toto,
            mt_grouplevels_filter type lvc_t_grpl ,
            m_sumlevel            type i ,
            itab_lt_grouplevels type kkblo_t_grouplevels ,
            itab_lt_sort        type kkblo_t_sortinfo.
      field-symbols: <lt_ct00> type standard table,
                     <lt_ct01> type standard table,
                     <lt_ct02> type standard table,
                     <lt_ct03> type standard table,
                     <lt_ct04> type standard table,
                     <lt_ct05> type standard table,
                     <lt_ct06> type standard table,
                     <lt_ct07> type standard table,
                     <lt_ct08> type standard table,
                     <lt_ct09> type standard table.
    * Ref the field-symbols.
      data mt_ct00 type ref to data .
      data mt_ct01 type ref to data .
      data mt_ct02 type ref to data .
      data mt_ct03 type ref to data .
      data mt_ct04 type ref to data .
      data mt_ct05 type ref to data .
      data mt_ct06 type ref to data .
      data mt_ct07 type ref to data .
      data mt_ct08 type ref to data .
      data mt_ct09 type ref to data .
      v_gjahr1 = p_gjahr + 1.
      v_gjahr2 = p_gjahr + 2.
      v_gjahr3 = p_gjahr + 3.
    * Alimente la table ITAB_ZGRE000_S2.
      loop at itab_otp_grid.
        move : itab_otp_grid-astnr to struct_zgre000_s2-zdemandeur ,
               itab_otp_grid-astna to struct_zgre000_s2-zdemandeurt ,
               itab_otp_grid-pspn  to struct_zgre000_s2-zprojet ,
               itab_otp_grid-pspn2 to struct_zgre000_s2-zotp ,
               itab_otp_grid-post1 to struct_zgre000_s2-zdesotp ,
               itab_otp_grid-pspnr to struct_zgre000_s2-zotp2 ,
               itab_otp_grid-stat  to struct_zgre000_s2-zstatut ,
               itab_otp_grid-usr02 to struct_zgre000_s2-zoneutil ,
               itab_otp_grid-budgt to struct_zgre000_s2-zbudgettotal ,
               itab_otp_grid-engag to struct_zgre000_s2-zengagtotal ,
               itab_otp_grid-dispo to struct_zgre000_s2-zdispototal ,
               itab_otp_grid-depen to struct_zgre000_s2-zdepentotal ,
               itab_otp_grid-budgn to struct_zgre000_s2-zbudget ,
               itab_otp_grid-le    to struct_zgre000_s2-zlatest ,
               itab_otp_grid-depea to struct_zgre000_s2-zdepense ,
               itab_otp_grid-pourc to struct_zgre000_s2-zpourcen ,
               itab_otp_grid-budg1 to struct_zgre000_s2-zbudget1 ,
               itab_otp_grid-budg2 to struct_zgre000_s2-zbudget2 ,
               itab_otp_grid-budg3 to struct_zgre000_s2-zbudget3 ,
               itab_otp_grid-natur to struct_zgre000_s2-znature.
        append struct_zgre000_s2 to itab_zgre000_s2.
      endloop.
      refresh itab_fieldcatalog.
    * Alimentation de la table ITAB_FIELDCATALOG.
      call function 'LVC_FIELDCATALOG_MERGE'
           exporting
                i_structure_name   = 'ZGRE000_S2'
                i_bypassing_buffer = ' '
                i_buffer_active    = ' '
           changing
                ct_fieldcat      = itab_fieldcatalog.
    * Les modifications des colonnes.
      loop at itab_fieldcatalog into tmp_fieldcatalog.
        case tmp_fieldcatalog-fieldname.
          when 'ZDEMANDEUR'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Demandeur'    to tmp_fieldcatalog-scrtext_s ,
                   'Demandeur'    to tmp_fieldcatalog-scrtext_m ,
                   'Demandeur'    to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '10'           to tmp_fieldcatalog-outputlen .
          when 'ZDEMANDEURT'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Demandeur'    to tmp_fieldcatalog-scrtext_s ,
                   'Demandeur'    to tmp_fieldcatalog-scrtext_m ,
                   'Demandeur'    to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '30'           to tmp_fieldcatalog-outputlen .
          when 'ZPROJET'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Projet'       to tmp_fieldcatalog-scrtext_s ,
                   'Projet'       to tmp_fieldcatalog-scrtext_m ,
                   'Projet'       to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '10'           to tmp_fieldcatalog-outputlen .
          when 'ZOTP'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'OTP'          to tmp_fieldcatalog-scrtext_s ,
                   'OTP'          to tmp_fieldcatalog-scrtext_m ,
                   'OTP'          to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZDESOTP'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Libellé OTP'  to tmp_fieldcatalog-scrtext_s ,
                   'Libellé OTP'  to tmp_fieldcatalog-scrtext_m ,
                   'Libellé OTP'  to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZOTP2'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'OTP niveau 2' to tmp_fieldcatalog-scrtext_s ,
                   'OTP niveau 2' to tmp_fieldcatalog-scrtext_m ,
                   'OTP niveau 2' to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZSTATUT'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Statut'       to tmp_fieldcatalog-scrtext_s ,
                   'Statut'       to tmp_fieldcatalog-scrtext_m ,
                   'Statut'       to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '10'           to tmp_fieldcatalog-outputlen .
          when 'ZONEUTIL'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Zone util'    to tmp_fieldcatalog-scrtext_s ,
                   'Zone util'    to tmp_fieldcatalog-scrtext_m ,
                   'Zone util'    to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '10'           to tmp_fieldcatalog-outputlen .
          when 'ZNATURE'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   'Nature'       to tmp_fieldcatalog-scrtext_s ,
                   'Nature'       to tmp_fieldcatalog-scrtext_m ,
                   'Nature'       to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '10'           to tmp_fieldcatalog-outputlen .
          when 'ZBUDGETTOTAL'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   'Bud. total'   to tmp_fieldcatalog-scrtext_s ,
                   'Budget total' to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZENGAGTOTAL'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   'Eng. total'   to tmp_fieldcatalog-scrtext_s ,
                   'Engagement total' to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZDISPOTOTAL'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   'Disp total'  to tmp_fieldcatalog-scrtext_s ,
                   'Disponible total' to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZDEPENTOTAL'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   'Dep. total'   to tmp_fieldcatalog-scrtext_s ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Depenses totales'
                        p_perio
                        p_gjahr
                        into tmp_fieldcatalog-scrtext_l.
          when 'ZBUDGET'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                    v_zero        to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Bud '
                        p_gjahr
                        into tmp_fieldcatalog-scrtext_s
                        separated by ' '.
            concatenate 'Budget Exercice:'
                        p_gjahr
                        'Version:'
                        p_vers1
                        into tmp_fieldcatalog-scrtext_l
                        separated by ' '.
          when 'ZLATEST'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   'Latest'       to tmp_fieldcatalog-scrtext_s ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Latest Exercice:'
                        p_gjahr
                        'Version:'
                        p_vers2
                        into tmp_fieldcatalog-scrtext_l
                        separated by ' '.
          when 'ZDEPENSE'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Dep'
                        p_gjahr
                        into tmp_fieldcatalog-scrtext_s
                        separated by ' '.
            concatenate 'Depense Exercice:'
                        p_gjahr
                        into tmp_fieldcatalog-scrtext_l
                        separated by ' '.
          when 'ZPOURCEN'.
            move : ' '            to tmp_fieldcatalog-do_sum ,
                   '% Dep/LE'     to tmp_fieldcatalog-scrtext_s ,
                   'Pourcentage dépense VS LE'
                                  to tmp_fieldcatalog-scrtext_l ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
          when 'ZBUDGET1'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Bud'
                        v_gjahr1
                        into tmp_fieldcatalog-scrtext_s
                        separated by ' '.
            concatenate 'Budget Exercice:'
                        v_gjahr1
                        into tmp_fieldcatalog-scrtext_l
                        separated by ' '.
          when 'ZBUDGET2'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Bud'
                        v_gjahr2
                        into tmp_fieldcatalog-scrtext_s
                        separated by ' '.
            concatenate 'Budget Exercice:'
                        v_gjahr2
                        into tmp_fieldcatalog-scrtext_l
                        separated by ' '.
          when 'ZBUDGET3'.
            move : 'X'            to tmp_fieldcatalog-do_sum ,
                   v_zero         to tmp_fieldcatalog-no_zero ,
                   '20'           to tmp_fieldcatalog-outputlen .
            concatenate 'Bud'
                        v_gjahr3
                        into tmp_fieldcatalog-scrtext_s
                        separated by ' '.
            concatenate 'Budget Exercice:'
                        v_gjahr3
                        into tmp_fieldcatalog-scrtext_l
                        separated by ' '.
        endcase.
        move 'X' to tmp_fieldcatalog-tech_comp.
        modify itab_fieldcatalog from tmp_fieldcatalog.
      endloop.
      call function 'WS_DOWNLOAD'
        EXPORTING
          FILENAME                      =
    '\RNEMS0025BU_girodf1$Desktopit_field.txt'
          FILETYPE                      = 'DAT'
        tables
          data_tab                      = itab_fieldcatalog.
      data : begin of it_tmp_data occurs 1000 ,
               buff(136) ,
               zbudgetttotal(20) ,
               zengagtotal(20) ,
               zdispottotal(20) ,
               zdepentotal(20) ,
               zbudget(20) ,
               zlatest(20) ,
               zdepense(20) ,
               zpourcen(20) ,
               zbudget1(20) ,
               zbudget2(20) ,
               zbudget3(20) ,
               waers(5) ,
             end   of it_tmp_data.
    break girodf1.
      loop at itab_zgre000_s2 into struct_zgre000_s2.
        move struct_zgre000_s2+0(136) to it_tmp_data-buff .
        move-corresponding struct_zgre000_s2 to it_tmp_data.
        append it_tmp_data.
      endloop.
      call function 'DOWNLOAD'
        EXPORTING
    *     BIN_FILESIZE                  = ' '
    *     CODEPAGE                      = ' '
          FILENAME                      =
    '\RNEMS0025BU_girodf1$Desktopit_data.txt'
          FILETYPE                      = 'DAT'
    *     ITEM                          = ' '
    *     MODE                          = ' '
    *     WK1_N_FORMAT                  = ' '
    *     WK1_N_SIZE                    = ' '
    *     WK1_T_FORMAT                  = ' '
    *     WK1_T_SIZE                    = ' '
    *     FILEMASK_MASK                 = ' '
    *     FILEMASK_TEXT                 = ' '
    *     FILETYPE_NO_CHANGE            = ' '
    *     FILEMASK_ALL                  = ' '
    *     FILETYPE_NO_SHOW              = ' '
          SILENT                        = 'S'
    *     COL_SELECT                    = ' '
    *     COL_SELECTMASK                = ' '
    *     NO_AUTH_CHECK                 = ' '
    *   IMPORTING
    *     ACT_FILENAME                  =
    *     ACT_FILETYPE                  =
    *     FILESIZE                      =
    *     CANCEL                        =
        tables
          data_tab                      = it_tmp_data.
    *  call function 'DOWNLOAD'
    *    EXPORTING
    *      FILENAME                      =
    *'\RNEMS0025BU_girodf1$Desktopit_data.txt'
    *      FILETYPE                      = 'ASC'
    *    tables
    *      data_tab                      = itab_zgre000_s2.
    * Complete.
      call function 'LVC_FIELDCATALOG_MERGE'
           exporting
                i_structure_name   = 'ZGRE000_S2'
                i_bypassing_buffer = ' '
                i_buffer_active    = ' '
           changing
                ct_fieldcat      = itab_fieldcatalog.
      call function 'LVC_FIELDCAT_COMPLETE'
        EXPORTING
    *     I_COMPLETE             =
          IS_LAYOUT              = v_es_layout
          I_REFRESH_BUFFER       = ''
          I_BUFFER_ACTIVE        = ''
    *   IMPORTING
    *     E_EDIT                 =
        changing
          ct_fieldcat            = itab_fieldcatalog.
      call function 'LVC_SORT_COMPLETE'
        exporting
          it_fieldcat       = itab_fieldcatalog
        changing
          ct_sort           = itab_mt_sort.
      call function 'ALV_DATA_EXPORT'
        exporting
          i_report                = ''
          IT_FIELDCAT             = itab_fieldcatalog
        tables
          it_data                 = itab_zgre000_s2.
    * Recherche de la variante d'affichage.
      move : sy-repid to struct_variant-report ,
             sy-uname to struct_variant-username ,
             '2'      to struct_variant-handle.
      if p_vgrid ne space.
        move p_vgrid to struct_variant-variant.
      endif.
    * Ne pas demander d'explication, merci :)
      get reference of itab_zgre000_s2 into mt_outtab.
    * Créé l'objet variant.
      create object m_cl_variant
             exporting
               it_outtab             = mt_outtab
               it_fieldcatalog       = itab_fieldcatalog
               it_sort               = itab_mt_sort
               it_filter             = itab_mt_filter
               is_variant            = struct_variant
               is_layout             = v_es_layout
               i_variant_save        = v_e_var_save
               i_variant_default     = v_e_var_def.
      move : 'A' to v_e_var_save ,
             'X' to v_e_var_def .
      call method m_cl_variant->set_values
           exporting it_outtab             = mt_outtab
                     it_fieldcatalog       = itab_fieldcatalog
                     it_sort               = itab_mt_sort
                     it_filter             = itab_mt_filter
                     is_variant            = struct_variant
                     is_layout             = v_es_layout
                     i_variant_save        = v_e_var_save
                     i_variant_default     = v_e_var_def.
       loop at itab_fieldcatalog into tmp_fieldcatalog
            where tabname ne space.
         exit.
       endloop.
    * Recherche de la variante.
      call method m_cl_variant->load_variant
           exporting i_tabname          = tmp_fieldcatalog-tabname
                     i_bypassing_buffer = 'X'
                    i_dialog           = space.
      create data  mt_ct00 like itab_zgre000_s2.
      create data  mt_ct01 like itab_zgre000_s2.
      create data  mt_ct02 like itab_zgre000_s2.
      create data  mt_ct03 like itab_zgre000_s2.
      create data  mt_ct04 like itab_zgre000_s2.
      create data  mt_ct05 like itab_zgre000_s2.
      create data  mt_ct06 like itab_zgre000_s2.
      create data  mt_ct07 like itab_zgre000_s2.
      create data  mt_ct08 like itab_zgre000_s2.
      create data  mt_ct09 like itab_zgre000_s2.
      assign mt_ct00->* to <lt_ct00>.
      assign mt_ct01->* to <lt_ct01>.
      assign mt_ct02->* to <lt_ct02>.
      assign mt_ct03->* to <lt_ct03>.
      assign mt_ct04->* to <lt_ct04>.
      assign mt_ct05->* to <lt_ct05>.
      assign mt_ct06->* to <lt_ct06>.
      assign mt_ct07->* to <lt_ct07>.
      assign mt_ct08->* to <lt_ct08>.
      assign mt_ct09->* to <lt_ct09>.
    * Recherche des valeurs à partir de la variante sélectionnée.
      call method m_cl_variant->get_values
           importing es_variant     = struct_variant
             et_fieldcatalog        = itab_fieldcatalog
             et_sort                = itab_mt_sort
             et_filter              = itab_mt_filter
             es_layout              = v_es_layout
             et_grouplevels_filter  = mt_grouplevels_filter
             e_variant_save         = v_e_var_save
             e_variant_default      = v_e_var_def.
      call function 'LVC_SORT_APPLY'
        exporting
          it_sort         = itab_mt_sort
    *     I_AS_TEXT       = 'X'
    *     I_STABLE        = 'X'
        tables
          ct_data         = itab_zgre000_s2.
      call function 'LVC_TRANSFER_TO_KKBLO'
        exporting
          it_sort_lvc                     = itab_mt_sort
          it_grouplevels_lvc              = mt_grouplevels_filter
        importing
          et_sort_kkblo                   = itab_lt_sort
          et_grouplevels_kkblo            = itab_lt_grouplevels
        exceptions
          it_data_missing                 = 1
          it_fieldcat_lvc_missing         = 2
          others                          = 3.
      call function 'ALV_GROUPLEVELS_GET'
        exporting
          i_subtotals_only          = 'X'
          it_sort                   = itab_lt_sort
          i_subtract_counter        = 'X'
        importing
          et_groups                 = itab_lt_grouplevels
        tables
          t_outtab                  = itab_zgre000_s2.
      call function 'LVC_TRANSFER_FROM_KKBLO'
        exporting
          it_grouplevels_kkblo            = itab_lt_grouplevels
        importing
          et_grouplevels_lvc              = mt_grouplevels_filter
        exceptions
          it_data_missing                 = 1
          others                          = 2.
    * Recupération des totaux.
      call function 'LVC_TOTALS_GET'
        exporting
          it_sort                  = itab_mt_sort
          is_layout                = v_es_layout
          it_filter_index          = itab_mt_filter_i
        tables
          it_data                  = itab_zgre000_s2
          et_collect00             = <lt_ct00>
          et_collect01             = <lt_ct01>
          et_collect02             = <lt_ct02>
          et_collect03             = <lt_ct03>
          et_collect04             = <lt_ct04>
          et_collect05             = <lt_ct05>
          et_collect06             = <lt_ct06>
          et_collect07             = <lt_ct07>
          et_collect08             = <lt_ct08>
          et_collect09             = <lt_ct09>
        changing
          cs_total_options         = ms_total_options
    *      ct_fieldcat              = mt_fieldcatalog
          ct_fieldcat              = itab_fieldcatalog
          ct_grouplevels           = mt_grouplevels_filter
          c_calculate_totals       = m_calculate_totals
          c_sumlevel               = m_sumlevel .
    * Converti dans un language comprehensible par SAP.
      call function 'LVC_TABLE_FOR_DISPLAY'
        exporting
          it_fieldcat                    = itab_fieldcatalog
          it_sort                        = itab_mt_sort
          it_filter                      = itab_mt_filter
          is_total_options               = ms_total_options
          is_layout                      = v_es_layout
        importing
          et_lvc_data                    = itab_mt_data
          et_lvc_info                    = itab_mt_info
        tables
          it_data                        = itab_zgre000_s2
          it_collect00                   = <lt_ct00>
          it_collect01                   = <lt_ct01>
          it_collect02                   = <lt_ct02>
          it_collect03                   = <lt_ct03>
          it_collect04                   = <lt_ct04>
          it_collect05                   = <lt_ct05>
          it_collect06                   = <lt_ct06>
          it_collect07                   = <lt_ct07>
          it_collect08                   = <lt_ct08>
          it_collect09                   = <lt_ct09>
        changing
          ct_grouplevels                 = mt_grouplevels_filter
        exceptions
          fieldcat_not_complete          = 1
          others                         = 2.
      if sy-subrc ne space.
        write : /1 'Probleme de convertion.'.
        stop.
      endif.
    * Convertie en HTML.
      call function 'LVC_ALV_CONVERT_TO_HTML'
        exporting
          it_data                       = itab_mt_data
          it_info                       = itab_mt_info
          i_file_dialog                 = ' '
        importing
          et_html                       = itab_html.
    * Envois par email.
      move : 'HTM'  to object_hd_change-file_ext ,
             'Liste des commandes passées sur Immobilisation via PM'
                    to object_hd_change-objdes.
      append object_hd_change.
      call function 'WS_DOWNLOAD'
        EXPORTING
          FILENAME                      =
    '\RNEMS0025BU_girodf1$Desktopmt_data.txt'
          FILETYPE                      = 'DAT'
        tables
          data_tab                      = itab_mt_data.
      call function 'WS_DOWNLOAD'
        EXPORTING
          FILENAME                      =
    '\RNEMS0025BU_girodf1$Desktopmt_info.txt'
          FILETYPE                      = 'DAT'
        tables
          data_tab                      = itab_mt_info.
      data : it_var type table of disvariant with header line.
      move-corresponding struct_variant to it_var.
      append it_var.
      call function 'WS_DOWNLOAD'
        EXPORTING
          FILENAME                      =
    '\RNEMS0025BU_girodf1$Desktopit_var.txt'
          FILETYPE                      = 'DAT'
        tables
          data_tab                      = it_var.
    *stop.
    * Liste des personnes à qui on envoye le email.
      select bname
             into receivers-uname
             from usr02
             where bname in s_uname.
        append receivers.
      endselect.
    * Send mail.
      call function 'Z_BC_ENVOI_EMAIL'
           exporting
               object_hd_change           = object_hd_change
               object_type                = 'RAW'
               owner                      = sy-uname
           tables
               objcont                    = itab_html
               receivers                  = receivers
           exceptions
               others                     = 01.
    endform.                     " P_GEN_HTML.

  • Copy queries + variants + workbooks -- RSZC ?

    BW Experts,
    Using RSZC can we copy queries, variants and workbooks?
    I have to make a copy of queries from the cube to the multicube.
    Thanks,
    BWer

    Hi BWer.
    You can copy your query like this:
    1 Go to SE37
    2 Type in RSZ_I_COPY_QRY_TO_CUBE
    3 Press Display
    4 Scroll down and look for this line in the code:
    IF l_subrc <> 0 OR l_is_compliant = rs_c_false.
    5 Position the cursor on the line and set a breakpoint by clicking the "stop" sign
    6 Go back
    7 Run the module by pressing F8
    8 Type in your source + target cubes and press F8
    9 You get to the debugger at the line where you set the breakpoint. Double click on l_is_compliant to make it show in "field names" (to the left) below the code.
    10 Type in x in the "field contents" (to the right), press the pen symbol to the right of the line and press F8
    11 Chose the query you want from the list and press "transfer selections"
    12 Check the log: after all the error messages about the cubes not being identical, there should be one line with the green light of hope - this is your query that was copied
    13 Check if all the objects in the query are available in the cube you copied to by opening the query from the query designer.
    14 If some objects are missing in the cube you copied to, you'll have to fix this - If they are there, you can look busy for a couple of hours just doing your own thing and having everybody else think you are copying the query manually :-D
    (you might want to change the query tech name by using "save as" from the query designer)
    Enjoy,
    Jacob
    Message was edited by: Jacob Jansen
    ...and of course: If your system crashes or something like that when you try this, or as a consequence of trying this, I accept no responsibility :-D
    I did this on BW 3.0B ... dunno how it will work on other versions...

  • ALV Variant Table and Hiding Variants

    Hi
    Where can I find the table where all ALV variants are stored?
    I tried to run a Trace and it brought back LTCX table but there doesn't seem to be any entries in this table?
    Also is there a way I can hide variants based on transaction code?

    check this LTDX,TVARV,VARIS and fm RS_VARIANT_CONTENTS
    table VARID shows information about variant creation and date
    VARIT shows the variant description and the language used

  • Help needed on ALV variant with new GUI screen is created by set PF status

    Hi Gurus,
    I have created a new GUI screen for ALV grid display thru set pf-status, since i need two buttons on application toolbar.
    have been passing parameters to alv_grid_display FM for display-*
    i_save            = 'A'
    is_variant        = gwa_variant
    I have an ALV variant selection paramter on selection screen.
    Please guide me with some pointers on how to implement ALV variant selection thru selection screen.
    Many Thanks,
    Madan

    Hi,
    Search default variant for the report
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                i_save     = 'A'
           CHANGING
                cs_variant = i_variant1
           EXCEPTIONS
                not_found  = 2.
    If default variant is found , use it as default.
    Else , use the variant LAYOUT1.
      IF sy-subrc = 0.
        p_var = i_variant1-variant.
      ELSE.
        p_var = 'LAYOUT1'.
      ENDIF.
    endform.                    " SUB_VARIANT_INIT
    *&      Form  SUB_CHECK_PVAR
    Once the user has entered variant, check about its existence
    FORM SUB_CHECK_PVAR.
    If the name of the variable is not blank, check about its existence
    if not p_var is initial.
      clear i_variant.
      i_variant-report = sy-repid.
      i_variant-variant = p_var.
      CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
             EXPORTING
                  I_SAVE     = 'A'
             CHANGING
                  CS_VARIANT = I_VARIANT.
    If no such variant found , flash error message
         if sy-subrc ne 0 .
          message e398(00) with 'No such variant exists'.
         else.
    If variant exists , use the variant name to populate structure
    I_VARIANT1 which will be used for export parameter : IS_VARIANT
    in the function module : REUSE_ALV_GRID_DISPLAY
           clear i_variant1.
           move p_var to i_variant1-variant.
           move sy-repid to i_variant1-report.
         endif.
    else.
       clear i_variant.
    endif.
    ENDFORM.                    " SUB_CHECK_PVAR
    *&      Form  SUB_VARIANT_F4
    Display a list of various variants of the report when the
    user presses F4 key in the variant field
    form SUB_VARIANT_F4.
    i_variant-report = sy-repid.
    Utilising the name of the report , this function module will
    search for a list of variants and will fetch the selected one into
    the parameter field for variants
    CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                IS_VARIANT         = I_VARIANT
                I_SAVE             = 'A'
                I_DISPLAY_VIA_GRID = 'X'
           IMPORTING
                ES_VARIANT         = I_VARIANT1
           EXCEPTIONS
                NOT_FOUND          = 1
                PROGRAM_ERROR      = 2
                OTHERS             = 3.
      IF SY-SUBRC = 0.
        P_VAR = I_VARIANT1-VARIANT.
    ENDIF.
    endform.                    " SUB_VARIANT_F4
    Thanks
    Ashu

  • Transport ALV Variant

    Hi Guys.
         I've a question. I've created a ALV variant in DEV and now I need transport it to QA.
    Is it possible ?
    regards.
    Javier.

    Check this out.
    http://help.sap.com/saphelp_sm32/helpdata/en/bd/839d37664e4d45e10000009b38f8cf/content.htm
    All the way to the bottom on this link.
    Regards,
    RIch Heilman
    Message was edited by:
            Rich Heilman

  • Copy alv layout

    is it possible to copy alv layout from one program to another program

    no,
    you can copy the code that fills the field catalog and layout though...

  • Switching between ALV variants

    Hi Experts
    Is there any way to switch between the variants of an ALV without using the std dropdown available in alv header.
    I have a requirement to navigate to various views depending on the current ALV variant selected by the user in my application.
    Thanks and Regards
    Karthick

    Hi Experts
    Is there any way to switch between the variants of an ALV without using the std dropdown available in alv header.
    I have a requirement to navigate to various views depending on the current ALV variant selected by the user in my application.
    Thanks and Regards
    Karthick

  • Reg. copying Layout Variants from 1 ALV pgm to another

    Hi Friends,
    I am currently copying an ALV program Ztest1 to ztest2 through ztest5. While doing so I want the LAYOUT variants that are available for ztest1 also to be copied to these other programs.
    All I am aware is that the table LTDX stores all the layout variants for a particular program.
    Could anybody provide me the right inputs on this.
    Thanks in Advance.
    Rgrds,
    Gayathri N.

    I took this approach and it worked for me:
    1) Change your program so that everytime an ALV function is called it is using the original program name in the variant declaration, ensure you keep the original code commented out, you will need to put it back later.  Examples:
      FORM variant_init USING varname TYPE slis_vari.
        CLEAR g_variant.
       g_variant-report = g_repid.
        g_variant-report = 'ORIGINAL_PROGRAM_NAME'.
      FORM f4_for_variant.
       g_variant-report = sy-repid.
        g_variant-report = ‘ORIGINAL_PROGRAM_NAME’.
        CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
      FORM check_variant.
        IF NOT p_vari IS INITIAL.
         g_variant-report  = sy-repid.
          g_variant-report  = ‘ORIGINAL_PROGRAM_NAME’.
          g_variant-variant = p_vari.
          CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
    2) Display function lt_variant_save via SE37, set a breakpoint at the first executable line:
         perform variant_save tables it_fieldcat
    4) Run your program with the layout variant you wish to copy.
    5) Hit Save Variant.  You are now in debug mode.
    6) Enter variable CS_VARIANT-REPORT in the variables 1 panel.
    7) Double-click on CS_VARIANT-REPORT.
    8) Hit the Change Field Content button
    9) Change the value to the name of your new program, then hit Enter.
    10) Hit Execute (F8).  You have now saved the variant under your new program name. 
    11) Exit and rerun your program as necessary for as many variants as you want to copy
    12) Change your program back to using sy-repid (or whatever else it was referencing) wherever you changed it in step 1.
    13) The variants have now been copied and you can run your program with the new variants.

  • Copying ALV Display Variants between different programs

    Is there a way to copy the ALV Display Variants from one program to another?  I am NOT referring to selection screen variants.
    An SAP standard program was copied to a Z program.  Some changes were made to the logic.  The original SAP program has many (100+) ALV Display Variants.  I do not want to manually re-create them.  Is there a way to copy these from one program to another (without using a custom program to manipulate the tables)?
    Thanks.
    Norm

    Hi norman,
    even i was thinking the same while you passing the alv parameter is_variant, give the the program which is having 100 variants.
    is_variant-REPORT = 'STANDARDPRG'.
    this will import all varaints from it, but when you save any new one it will  save in the same standard program.
    regards
    vijay

Maybe you are looking for

  • ICal: Instead of colored dots, can every event's headline be displayed in color accordingly?

    Before the upgrade, every events is displayed in colour accordingly, with All-Day-Event highlighted.  After the upgrade, only the "All-day event" is highlighed in clour. But the headline/subject of everything else (from every calendars) is displayed

  • Use selectItem to update inputtext value

    I read through many posting in this forum regarding on how to use valuechangelistener in the selectonemenu tag to update an inputtext value through selectItem's value. Unfortunately, it didn't solve the problem I am facing. In a form on my JSP page,

  • Exception handling in program

    Hi All,      I have a class in one of the methos I'm raising an exception. When I'm calling that method in my program and when the exception is raised it is throwing a runtime error. The exception is no a system based exception it is an exception whi

  • How to make original N80 voip enabled?

    Since the voip is available for the N80ie(internet edition),I wonder if nokia will make the voip available for the original N80,since both the the N80 have same features.Wouldnt it be great to include voip in the next firmware update for nokia N80?

  • Help setting MTU settings so I can connect set up Xbox Live..

    Ok, so I'm trying to set up my Xbox to my wireless internet via a wireless adaptor. I've been working on configuring the network, and after many different problems I got to the error message that said that I needed to change the MTU settings of my ro