Vous êtes sur la page 1sur 11

Grabacin Batch Input (SHDB) ABAP

EducacinTutoriales

Cuando estuve buscando tutoriales para la transaccin SHDB no logre encontrar una que me
explicara paso a paso la forma que deba trabajar una grabacin, por esa razn quiero
compartirles un tutorial que espero les ayude.

Transaccin para hacer grabaciones: Se utiliza para grabar una serie de pasos y pantallas que
se realizan al ejecutar una transaccin

PASOS A PARA REALIZAR UNA GRABACIN

Ir a la transaccin SHDB.

Haga clic en Grabacin Nueva.

Coloque el nombre con el que identificara la grabacin e indique la transaccin a utilizar,


finalice presionando el botn Iniciar Grabacin
Ejecute la transaccin de forma habitual, para este tutorial utilizare la F-37

Realizaremos una grabacin de la transaccin F-37 con el objetivo de generar una transaccin
Z que permita reducir la cantidad de tiempo invertido para realizar la actividad y minimizar la
cantidad de errores en la operacin.
Por ultimo debes guardar

Al concluir observa que se te mostrara la grabacin sobre los pasos que ejecutaste al operar
la transaccin F-37. Procede a guardar y regresar a la pantalla anterior.
Selecciona la grabacin que realizaste y crea el programa

Nota: el mandate tiene que estar abierto para que te deje crear el programa, de lo contrario
debers exportar e importar tu grabacin a un ambiente que este abierto.

Asigna un nombre al programa y le indicas que lo crearas tomando la grabacin realizada.


Asigna un ttulo a tu programa y presiona ver cdigo fuente

Indica donde almacenaras tu programa, para aspectos prcticos del tutorial yo dejare el
programa local.

Nota: Si le indicas un paquete te solicitara orden de transporte


Observa que ya tenemos nuestro cdigo fuente el cual modificaremos para poder tener una
transaccin Z de la transaccin estndar.
Antes de modificar el cdigo le colocaremos una transaccin a nuestro programa
Ingresa a la transaccin SE93, coloca el cdigo de la transaccin que quieres crear, esta es la
que llamara a tu programa cuando a quien la coloque en el Campo comandos.

Coloca una descripcin y selecciona la opcin como se muestra en la siguiente imagen.

Coloca el programa que creaste en los pasos anteriores y guarda , listo ya tienes tu
transaccin.
Procede a ingresar a la transaccin SE38, coloca tu programa. Observa los cambios que yo
he agregado para ajustar el comportamiento de mi transaccin (parmetros de entrada,
variables y validacin de permisos a la sociedad).

REPORT ZF_37_TUTORIAL
NO STANDARD PAGE HEADING LINE-SIZE 255.

*&---------------------------------------------------------------------*
*& PARAMETRO DE ENTRADA - PANTALLA
*&---------------------------------------------------------------------*

PARAMETERS:
P_BUKRS LIKE BKPF-BUKRS OBLIGATORY, " SOCIEDAD FI
P_WAERS LIKE BKPF-WAERS OBLIGATORY, " MONEDA OPERACIN
P_KURSF LIKE BKPF-KURSF, " TIPO DE CAMBIO
P_NEWKO LIKE KNA1-KUNNR OBLIGATORY, " CLIENTE
P_SGTXT LIKE BSEG-SGTXT, " TEXTO
P_WRBTR LIKE BSEG-WRBTR OBLIGATORY. " IMPORTE

*&---------------------------------------------------------------------*
*& VARIABLES GENERALES
*&---------------------------------------------------------------------*

DATA:
V_FECHA(10) TYPE C, " FECHA
V_MONAT(2) TYPE C, " PERIODO
V_BLART LIKE BKPF-BLART, " DOC. FI
V_WRBTR(15) TYPE C, " IMPORTE
V_KURSF(15) TYPE C, " TIPO CAMBIO
V_MENSAJE(60) TYPE C. "MENSAJE DE AUTORIZACIN

selection-screen comment /10(50) text-002.


selection-screen comment /10(83) text-003.
selection-screen comment /10(83) text-004.

*&---------------------------------------------------------------------*
*& PROGRAMA
*&---------------------------------------------------------------------*

" FUNCION DE CONVERSIN DE FECHA - SUBRUTINA


*&---------------------------------------------------------------------*
*& FORM FO_CONVERT_INPUT_DATE
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* -->P_CAMPO TEXT
*----------------------------------------------------------------------*
FORM FO_CONVERT_INPUT_DATE CHANGING P_CAMPO TYPE CHAR10.
DATA: LV_DATE TYPE DATUM.
MOVE P_CAMPO TO LV_DATE.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
DATE_INTERNAL = LV_DATE
IMPORTING
DATE_EXTERNAL = P_CAMPO
EXCEPTIONS
DATE_INTERNAL_IS_INVALID = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* IMPLEMENT SUITABLE ERROR HANDLING HERE
ENDIF.
ENDFORM. "FO_CONVERT_INPUT_DATE

INCLUDE ZBDCRECX2_MP.
" Colocar modlo visual CTUMODE = A
"INCLUDE BDCRECX1.

INITIALIZATION.
FREE MEMORY.

START-OF-SELECTION.

*&---------------------------------------------------------------------*
*& OBJETO DE AUTORIZACIN
*&---------------------------------------------------------------------*
CONCATENATE `Usuario no cuenta con permisos para la sociedad ` P_BUKRS
INTO V_MENSAJE.

authority-check object 'F_BKPF_BUK'


id 'ACTVT' field '01'
id 'BUKRS' field P_BUKRS.
if sy-subrc ne 0.

MESSAGE V_MENSAJE TYPE 'E'.


exit.

else.

PERFORM OPEN_GROUP.

" ALAMACENAR FECHA DEL DIA EN VARIABLE Y PERIODO


V_FECHA = SY-DATUM.
MOVE V_FECHA+4(2) TO V_MONAT.
V_BLART = 'DN'.
WRITE P_WRBTR TO V_WRBTR.
WRITE P_KURSF TO V_KURSF.

" CONVERSIN DE FECHA


PERFORM FO_CONVERT_INPUT_DATE CHANGING V_FECHA.

" EJECUCIN DE TRANSACCIN F-37

PERFORM BDC_DYNPRO USING 'SAPMF05A' '0113'.


PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-ZUMSK'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BKPF-BLDAT'
V_FECHA. " FECHA OPERAC.
PERFORM BDC_FIELD USING 'BKPF-BLART'
V_BLART. " DOC. FI
PERFORM BDC_FIELD USING 'BKPF-BUKRS'
P_BUKRS. " SOCIEDAD FI
PERFORM BDC_FIELD USING 'BKPF-BUDAT'
V_FECHA. " FECHA OPERAC.
PERFORM BDC_FIELD USING 'BKPF-MONAT'
V_MONAT. " PERIODO
PERFORM BDC_FIELD USING 'BKPF-WAERS'
P_WAERS. " MONEDA OPERACIN
PERFORM BDC_FIELD USING 'BKPF-KURSF'
V_KURSF. " TIPO CAMBIO
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
P_NEWKO. " CLIENTE
PERFORM BDC_FIELD USING 'RF05A-ZUMSK'
'A'.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0304'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-SGTXT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
V_WRBTR. " IMPORTE
PERFORM BDC_FIELD USING 'BSEG-MWSKZ'
'A0'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
V_FECHA. " FECHA OPERAC.
PERFORM BDC_FIELD USING 'BSEG-SGTXT'
P_SGTXT. " TEXTO
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0304'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
V_WRBTR. " IMPORTE
PERFORM BDC_FIELD USING 'BSEG-MWSKZ'
'A0'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
V_FECHA. " FECHA OPERAC.
PERFORM BDC_FIELD USING 'BSEG-SGTXT'
P_SGTXT. " TEXTO
PERFORM BDC_TRANSACTION USING 'F-37'.

PERFORM CLOSE_GROUP.

endif.

Ejecuta tu transaccin y tendrs algo como esto. Transaccin Z de la transaccin estndar


F-37.

Vous aimerez peut-être aussi