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...
*&---------------------------------------------------------------------*
*& 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