Exportar/Importar un Sapscript

En muchas ocaciones suele ser necesario exportar un Sapscript ya sea para mantener un backup del mismo o para Importarlo a otro sistema.

Para lograr esto existe un programa llamado «Upload/Download de objetos SAPscript» cuyo nombre de reporte es RSTXSCRP.

Al ejecutarlo nos encontramos con una pantalla como la siguiente.

RSTXSCRP

 

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

RSTXSCRP_export

 

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

RSTXSCRP_seleccionado

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

RV_MESSAGE_DIALOG

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

 

Función que permite imprimir un mensaje desde tu reporte al igual que se hace desde una transacción Standard.

Mensaje

Donde:

KAPPL = Aplicación
OBJKY = Valor de prueba, en este caso Orden de compra.
KSCHL = Clase de mensaje,

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

Tabla

De ALV a PDF

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

Para convertir el resultado de un ALV en un PDF hay que proceder de la siguiente forma.

En primer lugar se debe generar la orden de Spool a partir del ALV, eso se hace setenado el parámetro «IS_PRINT» en la llamada del ALV.

lv_print-print                  = ‘X’.
lv_print-no_print_listinfos     = ‘X’.   » No muestra cabecera de informacion en el pdf
lv_print-no_change_print_params = ‘X’. » Deja por defecto los parametros de impresora.

sy-batch = ‘X’. «Se ejecuta de fondo el ALV, de esta forma no aparece el Popup para setear los parameotrs de impresora.

CALL FUNCTION‘REUSE_ALV_LIST_DISPLAY’
Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

Esto generara una orden de Spool, debemos capturar el numero de orden de la siguiente manera.

DATA: it_tsp01 LIKE tsp01 OCCURSWITH HEADER LINE,
ls_tsp01 TYPE tsp01.

SELECT rqident
INTO CORRESPONDING FIELDS OF TABLE it_tsp01
FROM tsp01
WHERE rqowner  EQ sy-uname
AND rqclient EQ sy-mandt.

*Ordeno en forma descendente para quedarme con el último formulario *generado
SORT it_tsp01 DESCENDING BY rqident.

READ TABLE it_tsp01 INTO ls_tsp01 INDEX 1.

f_rqident = ls_tsp01-rqident.

Para bajar la orden de Spool a formato PDF se usa la siguiente función.

DATA: gd_bytecount LIKE tst01-dsize.

DATA: x_rqid LIKE tsp01-rqident.

DATA: BEGIN OF gt_objaux OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF gt_objaux.

CALL FUNCTION‘CONVERT_ABAPSPOOLJOB_2_PDF’
Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

Para poder bajarlo a un archivo PDF, habrá que hacer una conversión.

DATA: lines TYPE STANDARD TABLE OF hlpext WITH HEADER LINE.

LOOP AT gt_objaux.
lines-line+00(002) = gt_objaux-tdformat.
lines-line+02(132) = gt_objaux-tdline.
APPEND lines.
ENDLOOP.

CALL METHOD cl_gui_frontend_services=>gui_download
Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

Se adjunta un archivo con el ejemplo correspondiente.

z_reporte_pdf

Editar tabla de SAP

Si queremos modificar o eliminar un registro de una tabla de SAP debemos realizar los siguientes pasos.

  1. Ir a la transacción SE16N (también se logra con la transacción ‘N’).
  2. Escribir en el campo de comandos el siguiente código &SAP_EDIT aparecerá el siguiente mensaje «Se ha activado la función de edición SAP».
  3. Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

 

 

Excluyendo botones en ALV

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

Para eliminar botones de un ALV OO de forma personalizada debe cargarse una tabla de tipo UI_FUNCTIONS que va a enviarse como parametro en la llamada del ALV.

Ejemplo.

DATA: t_ui_function TYPE ui_functions.

APPEND cl_gui_alv_grid=>mc_fg_edit TO t_ui_function.

CALL METHOD alv->set_table_for_first_display
EXPORTING

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

En el ejemplo se eliminan los botones de edición, hay mas opciones en la calse CL_GUI_ALV_GRID, buscar en la solapa de atributos aquellos cuyo tipo de referencia sea UI_FUNC.

Modificación parametro clase Importing en BADI

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

Cuando se implementa una BADI puede ser necesario cambiar los datos de alguna de las tablas, si la tabla corresponde a un parámetro de clase IMPORTING no será posible modificarlo con alguno de los metodos convencionales (ej. MODIFY).

Para poder realizar la modificación a la tabla interna hay que recurrir al uso de FIELD-SYMBOL, esta instrucción nos permite manejar punteros.

Como dije antes F-S es un puntero que tiene como contenido la dirección de un objeto, esto quiere decir, que apunta a un objeto, y esto justamente es lo que se debe hacer, apuntar al objeto (tabla) que carga la tabla (parametro) que queremos modificar.

Para demostrarlo con un ejemplo se ha implementado la BADI WORKER_UPDATE y se ha realizado codigo en el METODO BEFORE_UPDATE para modificar la tabla IT_OPERATION, logicamente es de la clase IMPORTING.

FIELD-SYMBOLS: <fs_tabla> TYPE cobai_t_operation .
FIELD-SYMBOLS: <fs_contrato>  TYPE LINE OF cobai_t_operation.

ASSIGN (‘(SAPLCOBT)AFVG_BT[]’) TO <fs_tabla>.

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

Insertar/Quitar ceros

A veces es necesario quitar los ceros a la izquierda en un variable para poder mostrar el valor en pantalla, a contraposición puede ser necesario incluir ceros delante de un número para completar el rango de la variable.

La funcion que nos permite quitar ceros es la siguiente.

CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’

Para ver el contenido completo de este articulo por favor dirigirse al sitio oficial de DiarioAbap

Exportar/Importar un SAPscript

Es posible que en algún momento necesitemos guardar una copia de nuestro SAPscript, ya sea para mantener un backup del mismo o porque necesitamos importalo en otro sistema.

Para poder lograr esto existe un programa llamado RSTXSCRP  al ejecutarlo desde la SE38 vemos una pantalla como la que se muestra a continuación.

RSTXSCRP

Si lo que se deseea principalmente es conservar una copia del SAPscript, ingresamos en el campo Nombre de objeto, el nombre del sapscript a ser exportado y en el campo Modo(EXPORT, IMPORT) escribimos EXPORT.

RSTXSCRP_export

Luego presionamos F8. Nos aparecera una ventana de dialogo donde introduciremos la ruta donde se almacenará el archivo correspondiente al sapscript, luego precionamos Aceptar, si el SAPscript no contenia errores nos aparecerá una ventana como la siguiente.

RSTXSCRP_seleccionado

 Si en lugar de exportar se hubiera querido Importar el SAPscript en el sistema, en la pantalla que se presenta en el paso 2 tendriamos que  ingresar el valor IMPORT en el campo Modo(EXPORT, IMPORT).