Base de datos lógicas – HR

Las base de datos lógicas es una forma mas rápida de obtener datos, la base de datos lógica se compone de la pantalla de selección y de los datos en si. La metodología de búsqueda es de árbol.

En la SE36 podemos administrar la base de datos lógicas.

Dentro del código fuente nos damos cuenta del uso de base de datos lógicas al ver la instrucción GET.

GET PERNR.

Esta instrucción obtiene los datos y los carga en una estructura. Si nosotros queremos filtrarlos por algún campo de su estructura debemos usar la sentencia CHECK.

Dentro de una lógica de BDL. Podemos extrae información de los infotipos usando el comando PROVIDE – ENDPROVIDE. (similar al select común y corriente)

Para usar este comando hay que declarar los infotipos con la sentencia INFOTYPES.

INFOTYPES:  0001,  "Asignación Organizacional
                    0002.  "Datos de Personal

 

 

*Te va traiendo todos los registros del infotipo 0 comprendidos entre pn-begda y pn-endda. (Base de datos logica PNP)
PROVIDE * FROM p0000 BETWEEN pn-begd AND pn-endda.


ENDPROVIDE.

*Te trae los registros del inotipo 1 y 8 entre ‘19000101’ ‘99991231’ con cada corte.
PROVIDE gsber abkrs FROM p0001 FROM p0008 BETWEEN ‘19000101’ AND ‘99991231’.
ENDPROVIDE.

*Esta macro te deja en la cabezera el ultimo registro del infotipo 1 comprendido entre esas fechas
rp-provide-from-last p0001 space pn-begda pn-endda.

*Para validar la correcta ejecusión de esta sentencia se usa:

IF PNP-SW-FOUND EQ ‘1’. "encontró un registro

ENDIF.

*Esta macro te deja en la cabezera el prime registro del infotipo 1 comprendido entre esas fechas
rp-provide-from-last p0001 space pn-begda pn-endda.

 

Ejemplo de LDB

*Start of Selection Event
*========================
START-OF-SELECTION.
* "Retrieve Infotypes
GET PERNR.
* "Get last IT 0000 record
RP-PROVIDE-FROM-LAST P0000 SPACE PN-BEGDA PN-ENDDA.
* "Check employee is active
CHECK P0000-STAT2 IN PNPSTAT2.
* "Retrieve Employee Name
RP-PROVIDE-FROM-LAST P0002 SPACE PN-BEGDA PN-ENDDA.
*
format color col_heading.
Write : / 'Name : ', p0002-inits(4), p0002-nachn(10), 80 '*',
/ 'NINO : ', p0002-perid, 80 '*',
/ 'Birth Date : ', p0002-gbdat, 80 '*'.
skip 1.
format reset.
*
perform process_repeating_group.
*
*End of Selection Event
*========================
END-OF-SELECTION.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: