Inicio > ABAP/4 > Copiar variantes entre programas/reports

Copiar variantes entre programas/reports

Escenario: buscando un reporte para poder copiar variantes entre reports SAP, encontré un par de post interesantes, armé un programa que une los post que permite copiar variantes y layouts de ALV.

Espero les sirva.

*&———————————————————————*
*& Report  Z_COPIAR_VARIANTES
*&
*&———————————————————————*
*& Programa para copiar variantes entre programas ABAP
*& Bajado de: http://www.mundosap.com/foro/showthread.php?t=422
*&            http://www.abap.es/foro/index.php?topic=138.0
*& Autor: Ing. Eduardo M. Puricelli
*& Fecha: 15.06.2011
*&———————————————————————*

REPORT  z_copiar_variantes.

TABLES: trdir,
raldb,
varid,
varis,
varit.

TABLES: ltdx, ltdxd, ltdxt.

SELECT-OPTIONS:
variant FOR raldb-variant.

PARAMETERS: p_rep1 LIKE raldb-report OBLIGATORY,
p_rep2 LIKE raldb-report OBLIGATORY.

DATA: tab_vari  LIKE  vari  OCCURS 0 WITH HEADER LINE,
tab_varid LIKE  varid OCCURS 0 WITH HEADER LINE,
tab_varis LIKE  varis OCCURS 0 WITH HEADER LINE,
tab_varit LIKE  varit OCCURS 0 WITH HEADER LINE,
tab_ltdx  LIKE  ltdx  OCCURS 0 WITH HEADER LINE,
tab_ltdxd LIKE  ltdxd OCCURS 0 WITH HEADER LINE,
tab_ltdxt LIKE  ltdxt OCCURS 0 WITH HEADER LINE.

INITIALIZATION.

variant-low    = ‘&*’.
variant-sign   = ‘E’.
variant-option = ‘CP’.
APPEND variant.

AT SELECTION-SCREEN.

trdir-name = p_rep1.
READ TABLE trdir.
IF sy-subrc NE 0.
MESSAGE e001(00) WITH ‘No existe el reporte origen. Verifique’.
ENDIF.

trdir-name = p_rep2.
READ TABLE trdir.
IF sy-subrc NE 0.
MESSAGE e001(00) WITH ‘No existe el reporte destino. Verifique’.
ENDIF.

START-OF-SELECTION.

SELECT * FROM vari
INTO TABLE tab_vari
WHERE report = p_rep1
AND  variant IN variant.

SELECT * FROM varis
INTO TABLE tab_varis
WHERE report = p_rep1
AND  variant IN variant.

SELECT * FROM varit
INTO TABLE tab_varit
WHERE report = p_rep1
AND  variant IN variant.

SELECT * FROM varid
INTO TABLE tab_varid
WHERE report = p_rep1
AND  variant IN variant.

LOOP AT tab_vari.
tab_vari-report = p_rep2.
INSERT INTO vari VALUES tab_vari.
ENDLOOP.

LOOP AT tab_varis.
tab_varis-report = p_rep2.
INSERT INTO varis VALUES tab_varis.
ENDLOOP.

LOOP AT tab_varid.
tab_varid-report = p_rep2.
INSERT INTO varid VALUES tab_varid.
ENDLOOP.

LOOP AT tab_varit.
tab_varit-report = p_rep2.
INSERT INTO varit VALUES tab_varit.
IF sy-subrc EQ 0.
WRITE:/ ‘OK’,tab_varit-variant.
ELSE.
WRITE:/ ‘Error:’,tab_varit-variant.
ENDIF.
ENDLOOP.

* Variantes de visualización (ALV)
SELECT * FROM ltdx
INTO TABLE tab_ltdx
WHERE report = p_rep1.

LOOP AT tab_ltdx.
tab_ltdx-report = p_rep2.
INSERT INTO ltdx VALUES tab_ltdx.
ENDLOOP.

SELECT * FROM ltdxd
INTO TABLE tab_ltdxd
WHERE report = p_rep1.

LOOP AT tab_ltdxd.
tab_ltdxd-report = p_rep2.
INSERT INTO ltdxd VALUES tab_ltdxd.
ENDLOOP.

SELECT * FROM ltdxt
INTO TABLE tab_ltdxt
WHERE report = p_rep1.

LOOP AT tab_ltdxt.
tab_ltdxt-report = p_rep2.
INSERT INTO ltdxt VALUES tab_ltdxt.
ENDLOOP.

COMMIT WORK.

Categorías:ABAP/4 Etiquetas: , ,
  1. ramiro
    13/11/2015 a las 08:25

    Muchas gracias estimado. Me sirvió el programa, esta para pulirlo un poquito nomas. Saludos.

  2. ramiro
    13/11/2015 a las 08:28

    Muchas gracias estimado, me sirvio el programa, esta para pulirlo un poquito nomas. Saludos.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: