Taller Abap Tecnico
Taller Abap Tecnico
Taller Abap Tecnico
Adiestramiento para
la Elaboracin de
Reportes en
Lenguaje ABAP.
Aspectos Tcnicos
Agenda
Que es SAP
Estructura de SAP
Plataforma Netweaver
Lenguaje ABAP
Diccionario de Datos: Tipos de
datos, Estructuras y Tablas.
Editor de Programas.
- Estructura del programa
- Elementos de texto
- Textos de seleccin
- Variables
- Tablas internas: Tratamiento
- Lgica de programas
Programacin estructurada:
Tipos de reportes:
- Estructura de un reporte ALV
- Estructura de un reporte
Transacciones
Agenda
Programacin estructurada:
- Tablas de Bases de datos.
- Relacin de Tablas
- Campos de Base de datos
- Consultas a la Base de Datos
Tipos de reportes:
- Estructura de un reporte ALV
- Estructura de un reporte
Transacciones
Contenido:
Que es SAP
Estructura de SAP
Lenguaje ABAP:
- Lenguaje de programacin de cuarta
generacin.
- Lenguaje a orientado a eventos.
- Aplicaciones: Reportes,
Programacin de dialogo o transacciones,
etc.
Diccionario de Datos:
- tipos de Datos:
Diccionario de Datos:
- Tablas:
Tablas transparentes.
Se refiere a tablas que se definen en SAP y se corresponden
directamente con tablas
de base de datos tradicionales.
Tabla pool. (Propiedad de SAP): Tabla pool es una tabla de la
base de datos que contiene varias tablas. Se basa en un campo
llamado nombre de tabla y un campo genrico.
Tabla cluster. (Propiedad de SAP): Tabla cluster es una tabla de la
base de datos que contiene varias tablas. Se basa en que las
'subtablas' tienen un ndice comn, y un campo genrico donde se
guarda todos los datos de las 'subtablas'.
- Estructuras
- Tablas:
DFKKO: Tabla de cabecera de documentos FI-CA.
FKKVKP: Tabla de cuentas de contrato.
DFKKKO: Cabecera documento de Cuenta
Corriente.
DFKKOP: Posiciones del documento de Cuenta
Corriente.
DFKKRK: Historial de devoluciones (Cabecera).
DFKKRH: Historial de devoluciones (Posiciones).
Editor de Programas: Tx SE38
- Ingresar el nombre del reporte
- Seleccionamos la opcion Crear
Elementos de texto:
En el editor Abap, vamos a Elementos de texto->Textos de
seleccion
Textos de Seleccin:
Variables:
Para crear las mismas, usamos la instruccin DATA.
1- En funcin de un tipo base:
DATA: ZVARIABLE(3) TYPE C.
2- En referencia a un objeto del diccionario de datos:
Se usa LIKE , y de esta forma, la variable creada tendr
el mismo tipo y longitud que el objeto del diccionario
de datos al cual referencia.
DATA: ZVARIABLE LIKE DFKKKO-OPBEL
Tablas internas:
Para gestionar datos en los programas, se usan las tablas
internas. Las mismas solo existirn en tiempo de ejecucin.
Podemos tener dos tipos de tablas internas:
- Con Lnea de Cabecera.
- Sin Lnea de Cabecera
Ej:
Declaracin de tabla con
cabecera
DATA: BEGIN OF TABLA OCCURS
0,
COLUMNA1 TYPE C,
COLUMNA2 TYPE I,
END OF TABLA.
Programacin Estructurada:
La estructura del programa debe ser modular, es recomendable
crear un programa de tipo Include para declarar los datos
globales y las pantallas del programa, un Include para las
subrutinas y uno para la rutina principal.
Ejemplo.
REPORT zreporte_de_prueba.
INCLUDE zreporte_prueba_data. Definicin de datos y
Screen
INCLUDE zreporte_prueba_main. Rutina principal
IINCLUDE zreporte_prueba_rout. Subrutinas
Programacin Estructurada:
PERFORM <modulo>. Llamada a un procedimiento o
subprograma.
FORM <modulo>
.... Subprograma.
ENDFORM.
El programa principal y el procedimiento se podrn comunicar
mediante parmetros.
...
PERFORM <modulo> USING var1 var2...
...
FORM <modulo> USING var1 var2...
...
ENDFORM.
- Pases de parmetro: Por valor (E) y por Referencia (E/S)
FORM <modulo> USING VALUE(var1).
...
ENDFORM.
Ejemplo:
-DFKKOP
- DFKKKO
Relacin de Tablas de bases de datos:
Claves primarias, forneas.
Tipos de Reportes:
- Listas de procesamiento: Normal,
con ALV
REPORT <nombre> Nombre
programa
TABLES: Tablas que se utilizan
DATA: Variables internas
<Sentencias> Ejecuta las
instrucciones que se indiquen.
START-OF-SELECTION. Inicio de
programa
<Sentencias> Ejecuta las
instrucciones que se indiquen.
END-OF-SELECTION. Fin de programa
<Sentencias> Salida del reporte
Tipos de Reportes:
- Ejemplo:
REPORT ZEJEMPLO.
TABLES: DFKKKO.
Declarativas
Eventos
Tipos de Reportes:
- Reportes ALV: ABAP List Viewer Visualizador de Listas en
lenguaje ABAP.
Los reportes ALV son muy prcticos porque incluyen varias
funcionalidades que de hacerlos con el mtodo tradicional habra que
codificar manualmente.
-Interactivos
- Estndar de programacin
- Prcticos
*---------------------------------------------------------------------*
* FORM INIT_FIELDCAT *
*---------------------------------------------------------------------*
FORM init_fieldcat.
* Mediante esta tabla vamos a definir los campos que queremos mostrar
* en el listado de salida.
DATA: L_COUNT TYPE I.
*CONTRIBUYENTE
CLEAR gt_fieldcat.
L_COUNT = L_COUNT + 1.
gt_fieldcat-COL_POS = L_COUNT.
gt_fieldcat-FIELDNAME = XXXXX'. nombre campo
gt_fieldcat-SELTEXT_L = TEXT-502.
"2
gt_fieldcat-OUTPUTLEN = 10.
"Note 821
APPEND gt_fieldcat TO XFIELD .
CLEAR gt_fieldcat.
L_COUNT = L_COUNT + 1.
gt_fieldcat-COL_POS = L_COUNT.
gt_fieldcat-FIELDNAME = YYYY'. nombre campo
gt_fieldcat-SELTEXT_L = TEXT-510.
"2
gt_fieldcat-OUTPUTLEN = 10.
"Note 821
APPEND gt_fieldcat TO XFIELD.
ENDFORM.
*---------------------------------------------------------------------*
* FORM INIT_LAYOUT *
*---------------------------------------------------------------------*
FORM init_layout.
* Mediante esta estructura podemos definir el formato de salida
gs_layout-zebra = 'X'.
gs_layout-f2code = '&ETA'.
gs_layout-detail_popup = 'X'.
ENDFORM.
*---------------------------------------------------------------------*
* FORM TOMA_DATOS *
*---------------------------------------------------------------------*
FORM toma_datos.
* Los datos deben guardarse en la tabla interna de salida
SELECT * FROM ekpo UP TO 100 ROWS INTO TABLE gt_output.
ENDFORM. " TOMA_DATOS
*---------------------------------------------------------------------*
* FORM LISTADO *
*---------------------------------------------------------------------*
FORM listado. "
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
I_SAVE
= 'A'
TABLES
t_outtab = gt_output "tabla de salida "
EXCEPTIONS
program_error = 1
OTHERS = 2 .
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH symsgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " LISTADO
Transacciones:
Una Transaccin asociada a un reporte en SAP, se utiliza para que
los usuarios puedan acceder mediante a los programas que
nosotros hemos creado anteriormente, dado que muchas veces
ellos no tendrn permisos para ejecutar la transaccin SE38 o
otras transacciones utilizadas para desarrollo.
Indicar nombre
de transaccin.
Transacciones:
Transacciones:
Indicar el nombre
del Reporte.
Muchas gracias