Autor Tema: Modificar o Crear un programa sin transportes.  (Leído 5915 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Modificar o Crear un programa sin transportes.
« en: 09 de Enero de 2008, 05:08:56 pm »
Muchas veces queremos transportar un programa a Producción para hacer pruebas porque en desarrollo no tenemos los datos suficientes, pero entre que nos transportan la orden y no, perdemos mucho tiempo.

Con este Report podremos subir un programa donde queramos sin tener que transportar ordenes.

El Report que se adjunta tiene que estar en la máquina donde se vaya a utilizar.

Pasos a seguir:
1º.- Copia el programa que tengas en Desarrollo a un fichero plano *.txt.
2º.- Ejecuta el programa que te adjunto abajo. (Tendrás que transportarlo a la máquina donde quieras utilizarlo)
3º.- Darle la ruta donde tengas el fichero y darle un nombre al report.


P.D.: Si el programa existe te lo machaca y si no existe te lo crea.
Aconsejo utilizarlo para programas tipo listados, etc...

Código: [Seleccionar]
*&---------------------------------------------------------------------*
*& Report  ZDINAMICO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zdinamico.

DATA:  BEGIN OF i_programa OCCURS 0,
         line(72),
      END OF i_programa.


PARAMETERS: p_file LIKE  rlgrap-filename.

PARAMETERS: p_prog LIKE rs38m-programm OBLIGATORY.

SELECTION-SCREEN SKIP 1.

PARAMETERS: p_borra AS CHECKBOX.


************************************************************************
*AT SELECTION-SCREEN ON VALUE-REQUEST
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  PERFORM buscar_fichero CHANGING p_file
                                  sy-subrc.
  IF sy-subrc <> 0.
*   Problemas en la selección del fichero
    MESSAGE s836(sd) WITH 'Problemas en la selección del fichero'(003).
    STOP.
  ENDIF.




************************************************************************
*START-OF-SELECTION
************************************************************************
START-OF-SELECTION.

  IF p_borra IS INITIAL.

    CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
*         CODEPAGE            = ' '
             filename            = p_file
             filetype            = 'DAT'
*         HEADLEN             = ' '
*         LINE_EXIT           = ' '
*         TRUNCLEN            = ' '
*         USER_FORM           = ' '
*         USER_PROG           = ' '
*    IMPORTING
*         FILELENGTH          =
         TABLES
              data_tab            = i_programa
         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
              OTHERS              = 8.


    IF sy-subrc <> 0.
      MESSAGE i836(sd) WITH 'No se ha podido cargar el fichero'.
      STOP.
    ENDIF.

    INSERT REPORT  p_prog FROM i_programa.

  ELSE.

    DELETE REPORT p_prog.

  ENDIF.


************************************************************************
*END-OF-SELECTION
************************************************************************
END-OF-SELECTION.




*&---------------------------------------------------------------------*
*&      Form  buscar_fichero
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM buscar_fichero CHANGING pf_fichero
                             pf_subrc.

  CLEAR pf_subrc.

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_path         = 'C:\'
      mask             = ',*.*,*.*.'
      mode             = 'O'
    IMPORTING
      filename         = pf_fichero
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

  pf_subrc = sy-subrc.

ENDFORM.                    " buscar_fichero