Copiar variantes

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Floren
    Senior Member
    • abr
    • 209

    #1

    Copiar variantes

    Hola a todos!

    No llevo mucho tiempo trabajando en SAP y un mar de dudas me llenan cada día en este entorno, al ser éste mi primer posteo en el foro, quería saludar primero a todos sus miembros.

    Tengo un pequeño 'brown' en ABAP y quería saber si alguien ha tenido alguna situación similar alguna vez.

    Verán, tengo un programa estándar con más de 300 variantes, y un programa Z desarrollado por mi empresa en el que debo copiar cada una de esas 300 variantes, éste programa Z no es copia del estándar pero admite sus variantes .

    La primera y basta opción, es crear cada una de esas variantes en el programa Z con el mismo nombre, los mismos valores y los mismos atributos que la correspondiente en el estándar. La pega de esta opción es la cantidad de tiempo que me llevaría y no resulta óptimo.

    Existe alguna manera de copiar las variantes a mi programa Z sin tener que pasarme la vida delante del ordenador?

    Un saludo a todos, y gracias por adelantado.
    Florentín Navarrete Moya
    SAP HCM Consultant
    Mail: administracion@blogdefloren.com
    Blog: www.blogdefloren.com
  • tracer
    Administrator
    • feb
    • 503

    #2
    Hola Floren,

    Bienvenido a nuestro foro de sap, esperamos seas un miembro activo de nuestra comunidad.

    Contestando a tu pregunta el siguiente programa copia las variantes de un report a otro.
    Código:
     
    REPORT zcpvariant MESSAGE-ID zs.
     
    TABLES: trdir,
            raldb,
            varid,
            varis,
            varit.
     
    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.
     
    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 e022 with 'please check value'.
      ENDIF.
     
      TRDIR-NAME = p_rep2.
      READ TABLE TRDIR.
      IF SY-SUBRC ne 0.
        message e022 with 'please check value'.
      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 = 0.
        write:/ 'OK',tab_varit-variant.
      else.
        write:/ 'NG',tab_varit-variant.
      endif.
    ENDLOOP.
     
    COMMIT WORK.

    Espero te sea de utilidad.
    Ya nos contaras, un saludo .
    Si precisas una mano, recuerda que yo tengo dos.

    Comentario

    • Andresf
      Member
      • feb
      • 32

      #3
      Hola,

      Tenéis un programa standar que copia las variantes entre programas. Es RKKBALVC

      Un saludo.

      Comentario

      Trabajando...