Vous êtes sur la page 1sur 39

SAP

SAP es el ERP (Enterprise Resource Planning) más difundido y prestigioso del mundo,
adquirido por grandes empresas.
Un ERP es un sistema que básicamente sirve para gestionar todas las áreas de una gran
empresa: SAP gestiona desde contabilidad, finanzas FI, gestión de almacenes MM, de
proveedores, gestión de clientes y ventas SD, Administración de recursos humanos HR,
gestión de producción, incluso tiene módulos de Business Intelligence BI, Portales web con
Hanna, módulos educativos, etc,

Dentro de los cuales hay paquetes que son propios de la industria bancaria, de la
industria química, para la salud, para la industria de procesos entre otros.

Mg. Ing. Oscar J. Flores Gutiérrez


Uno de los principales módulos en SAP, es el gestión financiera, o mejor conocido como
FI, que entre otras cosas gestiona las facturaciones y todos sus alcances como pagos,
impuestos, retenciones y acreedor y sus detalles de venta asociados a la cuenta de mayor.
Por ejemplo el módulo de Registro de factura de acreedor se ve como en la figura:

En principio por su flexibilidad SAP es un sistema que se adapta a todas las empresas es
decir es una solución estándar, modular y escalable, quizás por eso es adquirido por las
empresas TOP. Cada uno de estos módulos son como “aplicaciones aparte” que se ajustan a
cada departamento en cuestión. Para utilizarlo se debe pasar por un proyecto de
implantación de la mano de un grupo analistas, desarrolladores (ABAPERs) y Testers para
adaptar el ERP a las necesidades básicas de la organización.

Mg. Ing. Oscar J. Flores Gutiérrez


En la mayoría de casos se debe adaptar las soluciones de SAP a medida de cada
organización, es ahí donde entran a tallar las empresas consultoras de software con los
ABAPERS.
En la actualidad existe un gran número de empresas consultoras que se dedican a este
tipo de proyectos a medida, a través de sus especialistas en ingeniería de software y
computación. En el caso particular de SAP, se desarrolla en un lenguaje de programación
específico llamado ABAP, de ahí el nombre de ABAPERS, cabe indicar que este lenguaje
de programación solo se utiliza en SAP.

Mg. Ing. Oscar J. Flores Gutiérrez


ABAP

Es un lenguaje de programación estructurado, propio de la empresa SAP-AG para el


desarrollo y mantenimiento de su ERP de negocios SAP-R3. Al ser un lenguaje propio para
la modificar del R3, tiene bastantes instrucciones específicas, para poder modificar el
funcionamiento estándar del ERP.
Su ABAP deriva del acrónimo Advanced Business Application Programming,
originalmente, aunque al ser de origen alemán su nombre original es
Allgemeiner BerichtsAufbereitungsProzessor y fue concebido para implementar los
reportes SAP-R2(una de sus primeras versiones), pero luego se extendió para crear nuevas
aplicaciones acorde a la medida de cada empresa. ABAP Tiene una sintaxis parecida al
lenguaje COBOL e incluso al Pascal, además incorpora algunos conceptos como base de
datos lógica LDB, tablas internas y workareas. Este lenguaje fue utilizado para
implementar el SAP-R3 y fue pensado para que los programadores pudieran optimizarlo.
Es importante indicar que requiere de cierto dominio previo de técnicas de programación
debido a que no es un lenguaje muy intuitivo, ni tampoco cuenta con muchas herramientas
CASE (código generado al hacer Drug & Drop). Esto significa que en ABAP hay que
programar todo, desde la lógica de procesos hasta incluso el diseño de una grilla, línea por
línea, nombres de columnas, alto, ancho, entre otros, inclusive hay que manejar concepto de
Diccionario, ALVs, de Transacciones, y Dynpros, previo al desarrollo. Conceptos simples
de entender pero que no son comunes en la mayoría de L.P. Quizás por esta razón es que
hay pocos especialistas en este lenguaje, quienes suelen ser programadores bastante mejor
remunerados que un desarrollador de vanguardia por ejemplo de .Net.

A diferencia de lenguajes como C++ o Java, ABAP reside en repositorio del mismo
SAP, no en archivos externos. Para editarlo hay que acceder al ABAP WORKBENCH
TOOLs. Ya Internamente, en su compilación, se podría indicar que en ABAP genera una
presentación binaria del código fuente, muy similar al Java Byte Code.

Mg. Ing. Oscar J. Flores Gutiérrez


TIPO DE PROGRAMAS ABAP
ABAP al ser un lenguaje estructurado, básicamente tiene 2 tipos de programas: Los
Módulos de programación y los Reportes SAP. De estos el más utilizado son los Módulos y
son los que vamos a analizar.

MÓDULOS DE PROGRAMACIÓN ABAP


Definen un conjunto de paquetes de interacciones con el usuario a través de interfaces
predeterminada, estas son:
 Modulos include
 Rutina
 SubRutinas
 Interfaces
 Tipos
 Grupo de funciones
 Clases
Cada uno de los programas que se implementen va a genera una transacción, que deberá
ser transportada de entorno de programación a las áreas de producción de la empresa.

TRANSACCIONES
Una transacción en terminología SAP es el código para la ejecución de un programa,
para ejecutar un código ABAP en el sistema SAP se hace ingresando un código de
transacción, por ejemplo, VA01 es el código de transacción para “Crear Órdenes de Venta”.
Las Transacciones también pueden ser llamadas a través de menús definidos por el sistema.
En otras palabras una Transacción es un Código para ejecutar ciertos módulos, por ejemplo:

 Transacción se38 Editor de código ABAP.


 Transacción se80 ABAP WorkBench.
 Transacción se16 Edit Table o diccionario ABAP.
 Transacción se01 Gestor de órdenes de transporte.
 Transacción se51 Screen Painter.

Mg. Ing. Oscar J. Flores Gutiérrez


DICCIONARIO ABAP

El diccionario ABAP contiene todos los datos y metadatos acerca del sistema SAP. Está
muy ligado con la plataforma de trabajo de ABAP en el que cualquier referencia a los datos
se obtiene del diccionario (por ejemplo, tablas, vistas, tipos de datos).. Ya que ABAP es
interpretado, no es necesario recompilar programas que referencien a objetos que se
modifiquen dentro del diccionario.

Los principales componentes que se van a estudiar son: Tablas, Vistas, índices,
estructuras, elementos de datos, dominios, ayudas de búsquedas, conceptos que se
detallaran en la segunda parte del curso.

INSTALACIÓN CONFIGURACIÓN INICIAL

La instalación de SAP, sigue un proceso riguroso, que requiere de servidores dedicados


con un mínimo de 16GB y con Bases de datos externas. Este proceso es realizado por un
especialista llamado BASIS, quien luego de adquirir las licencias se encargara de preparar
el ámbito de instalación , Arquitectura, base de datos, VPN, citrix, programas clientes y
servicios entre otros. Este no es el objetivo del presente estudio de desarrollo.
Además para desarrollar en ABAP se necesita contar con un terminal plenamente
licenciado, Para evitar todo este proceso, vamos a ejecutar una máquina virtual educativa
con el MINISAP que es una versión gratuita y reducida del SAP R3, que no tiene módulos
de FI, CO, HR, únicamente tiene ABAP y tablas internas.

Mg. Ing. Oscar J. Flores Gutiérrez


CONFIGURACIÓN DE LA MAQUINA VIRTUAL

PASO 1 CONFIGURACIÓN PREVIA


 Instalar VMWARE En la versión 11 o posterior.

 Copiar la máquina virtual en alguna carpeta con más de 32 GB de espacio.

 Una vez abierto el VMWARE hacer clic en OPEN A VIRTUAL MACHINE

 Buscar el archivo Windows XP Professional.vmx

Mg. Ing. Oscar J. Flores Gutiérrez


 De ser necesario, eliminar de esta ruta los archivos temporales.
 Windows XP Professional.vmx.lck (Carpeta)
 Windows XP Professional-6a55ecca (Archivo de suspensión)
 Windows XP Professional.vmss

(Asegúrese de tener más de 2 GB de RAM, para asignarle 1.8GB de RAM a la MVirtual)

PASO 2 INICIAR LA MAQUINA VIRTUAL


Dar inicio a la VM haciendo clic en Play Virtual Machine

Mg. Ing. Oscar J. Flores Gutiérrez


PASO 3 CONFIGURAR DENTRO LA MAQUINA VIRTUAL

ABAP es un lenguaje de programación, dedicado para ERP llamado SAP. Por lo tanto,
se debería instalar un servidor de DB, un Servidor de APP ABAP, y un agente SAP, entre
otros, para poder Abrir el ABAP EDITOR. Pero es un proceso lento y muy meticuloso,
este no es el objetivo de este seminario. Por lo tanto, he preparado una máquina virtual, con
abap trial ,con un sistema operativo antiguo para poder levantar sin mucho uso de recursos.

Para ello, una vez dentro de la máquina virtual debemos iniciar algunos servicios
básicos:

A. INICIAR EL DABABASE MANAGER (7.6 max db)

INICIAR NSP
click en cilindro para ponerlo ONLINE

B. SQL STUDIO (7.6 max db)

Mg. Ing. Oscar J. Flores Gutiérrez


(Click en llavecita)
SSOLO INGRESAR Pass: minisap
Ya precargado: User SAPNSP
Server localhost
Database NSP

C. INICIAR EL SQP NETWEAVER 7.0 abap trial versión


Ir a WIN: Inicio/todos los programas / sap netweaver/Nsp/ Startapp server

Mg. Ing. Oscar J. Flores Gutiérrez


Esperar al mensaje START OK

Luego estará listo para logearse.

Mg. Ing. Oscar J. Flores Gutiérrez


PASO 4
PARA LOGEARSE
Hacer click en SAP LOGON Ingresar
000 es el mandante
BCUSER es el usuario de pruebas
Minisap el password de pruebas

Si conecta correctamente se visualizará la siguiente ventana de inicio

Mg. Ing. Oscar J. Flores Gutiérrez


Esta ventana tiene 3 áreas bien definidas la superior donde esta los menús y debajo un
combobox que es la zona de TRANSACCIONES, más abajo en la parte izquierda esta el
árbol de aplicativos (accesos directos en forma de carpetas), y la parte centra esta la zona
principal, donde abrirán los aplicativos.

En SAP se maneja mucho el concepto de transacción TX que viene ser el equivalente a


los accesos directos a los aplicativos. La Tx tiene una barra similar a un combobox.

Las Tx están acompañadas de los iconos de Back (f3), Exit (Shift+f3), Cancel (f12), etc

Mg. Ing. Oscar J. Flores Gutiérrez


CUESTIONARIO
1. ¿Qué SAP?

2. A su criterio, ¿Por qué cree que SAP sigue siendo tan utilizado y exitoso,
aun a pesar de ser bastante antiguo?

3. ¿Cuál es la diferencia entre ABAP y SAP?

4. Investigar que es un elemento de datos en ABAP.

5. ¿Qué es Max DB y que relevancia tiene en ABAP?

6. ¿Para qué sirve la extensión .vmx?

7. ¿Por qué estudiar ABAP?

8. ¿Qué es un Diccionario en SAP?

9. ¿Podría Ud. definir que es una DYNPRO?.

10. ¿Que es una orden de transporte?

Mg. Ing. Oscar J. Flores Gutiérrez


INTRODUCION AL ABAP

Luego de logears en SAP LOGON se mostrará la pantalla inicial. Para ello ingresar en
textbox de transacciones el código SE38 y mostrara la sgte pantalla

1. Luego colocar un nombre que inicie con Z, ejemplo Z001


2. No olvide seleccionar SOURCE CODE
3. Hace enter (o clic en el button CREAR)
Los nombres de programas se inician con Z, ya que es la forma de indicar al SAP que
son programas de usuario, con otra letra no permitirá crearse. Luego pedirá los datos
básicos
 Titulo
 Tipo EXECUTABLE
 Save

Luego pedirá los datos de la ORDEN DE TRANSPORTES (Objeto para luego pasarlo
a producción). Para efectos de aprendizaje solo utilizaremos el packete temporal $TMP.

Mg. Ing. Oscar J. Flores Gutiérrez


Podemos hacer clic en guardar o podemos hacer click en LOCAL OBJECT-
Y saldrá la siguiente pantalla inicial:

Mg. Ing. Oscar J. Flores Gutiérrez


PRIMER PROGRAMA EN ABAP

Para iniciarse se va implementar el clásico HELLO WORLD, para ello hay que indicar
que ABAP es un lenguaje de programación estructurado, parecido al COBOL o al
PASCAL, por lo tanto las sentencias son simples, de corta sintaxis, y está fuertemente
orientado a negocios. También cuenta con programación orientada a objetos.
Por ejemplo para escribir por pantalla se colocará la sentencia WRITE, seguida del
mensaje entre comillas simples. En ABAP Cada sentencia secuencial finaliza con punto, de
tal forma que se implementaría el siguiente código:

REPORT Z001
WRITE ‘Hello World’.

El IDE de desarrollo se llama ABAP EDITOR y hay que acceder a través de la


transacción SE38, teniendo una apariencia similar a la siguiente figura:

El ABAP editor: tiene una Barra de tareas con opciones de retroceder, editar, verificar,
activar, ejecutar, editar con Workbench. Seguido del nombre del programa, y es estatus
(activo e inactivo). En la parte centrar está el área de edición, acompañado de un indicador
del Nro. Línea de código. En la parte inferior la barra de estado donde nos indica en que
Línea y Columna está el cursor dentro del Área de Edición.

Mg. Ing. Oscar J. Flores Gutiérrez


EJECUCIÓN

Para ejecutar se aprieta F8 O EL ICONO: .


En el programa de ejemplo se imprimirá en la pantalla de reportes (resultados), como se
muestra en la siguiente figura:

OPCIONES ADICIONALES

Si necesitara volver a la pantalla anterior aprieta F3 o el icono back . Los principales


fastkey son:
 F8 Ejecutar
 ALT+f3 activar
 Ctrl + f3 Check
 Ctrl + S Guardar
 F3 back Ir a la pantalla anterior
Luego se irán aprendiendo otras

SINTAXIS BÁSICA
Todo lenguaje de programación puede clasificar o agrupar sus sentencias en los
siguientes tipos:
 Secuenciales
 Condicionales
 Repetitivas
 Estructuradas

Mg. Ing. Oscar J. Flores Gutiérrez


1. SENTENCIAS SECUENCIALES

Son las sentencias básicas de todo lenguaje de programación, lo fundamental es


entender, como es la entrada de datos, la asignación, la escritura y los tipos de datos
existentes.

a. INGRESO DE DATOS
ABAP al ser un lenguaje orientado a negocios, tiene que tener controles propios del
SAP, como por ejemplo el manejo de parámetros d entrada en las pantallas, y precisamente
estos PARAMETROS, son los mecanismos de ingreso de datos.
SINTAXIS
PARAMETER: variable TYPE tipo.
EJEMPLO: Parameter: x type I.

b. TIPOS DE DATOS ELEMENTALES

En abap los tipos de datos son DATA y se clasifican en:

TIPOS Lon Long. Máx. (nº


Tipo Valor inicial
ELEMENTALES: g char)
Alfanumérico (Char,
C 1 de 1 a 65535 SPACE
string)
Fecha(Date) D 8 8 '00000000'

Coma flotante (Float) F 8 8 0.0

Entero (Integer) I 4 4 0

Numéricos (Natural) N 1 de 1 a 65535 '0...0'


Empaquetados
P 8 de 1 a 16 0
(Packed)

Hora (Time) T 6 6 '000000'

Ejemplo:

Mg. Ing. Oscar J. Flores Gutiérrez


DATA X type f. Se declara un tipo de dato elemental llamado X de tipo
Flotante.
DATA: g LIKE kna1-kunnr Creará una variable llamada g del mismo tipo del
campo kunnr de la tabla kna1.
DATA: g_vuelo(4) TYPE n, g_fecha TYPE s_date, Creará al mismo tiempo un
Creara una variable numérica de tamaño 4. y una
variable tipo Fecha

c. ASIGNACIÓN
La asignación simple es con el operador =.
Ejemplo x=2.

d. ESCRITURA SIMPLE
Es con la sentencia WRITE, seguido de la variable y se muestra en la pantalla de
reportes.
Por ejemplo:
WRITE ‘hola mundo’.

2. SENTENCIAS CONDICIONALES
La estructura selectiva if ….. else permite que el flujo del programa se bifurque por dos
ramas diferentes en el punto de la toma de decisión(es). Si al evaluar la condición (o
condiciones) el resultado es verdadero, entonces se sigue por un camino específico y se
ejecuta(n) cierta(s) operación(es). Por otra parte, si el resultado es falso entonces se sigue
por otro camino y se ejecuta(n) otra(s) operación(es), ABAP sigue la siguiente sintaxis:
IF condición.
ELSE.
ENDIF.
Por lo tanto si necesitáramos conocer si una variable x es igual al valor 2 entonces
implantaríamos el siguiente código:

Mg. Ing. Oscar J. Flores Gutiérrez


EJERCICIO PROPUESTO
Implementar un programa que permita ingresar 3 numero e indique cual es mayor y cual
es el menor.

Mg. Ing. Oscar J. Flores Gutiérrez


PARAMETROS DE INGRESO

AL EJECUTAR (F8)

Luego de ingresar ejecutamos con F8 y saldrá la pantalla de resultados

Mg. Ing. Oscar J. Flores Gutiérrez


Para retroceder se aprieta F3

En el caso que hubiera habido error

Luego que se corrige se debe activar.

Y se activa con el icono

Mg. Ing. Oscar J. Flores Gutiérrez


Finalmente se debe Ejecutar con o su equivalente que es la tecla F8

Mg. Ing. Oscar J. Flores Gutiérrez


PRACTICA 002
RETO 001

1. Construya un programa en ABAP que calcule la resta de dos números ingresados por
teclado solo si el primer número es mayor que el segundo.

2. Implementar un programa en ABAP que indique si dos números ingresados por teclado son
divisibles entre sí o no.

3. Implemente un programa que permita ingresar un número e indique si el número es primo o


no. Es primo si solo es divisible únicamente por sí mismo y por la unidad.

4. Implemente un programa que permita ingresar un número e indique si el número es un


número mágico o no. Un número es mágico si es igual a la suma de sus divisores, divisores
son aquellos números que generan un cociente entero.

5. Dado el precio de un material de construcción y la cantidad, construya un algoritmo que


calcule el subtotal, igv y el total de la compra. Tome en cuenta que la cantidad debe ser
mayor que cero.

6. Construya programa en ABAP que permita el ingreso del sueldo y las horas trabajadas por
una persona en un mes. El algoritmo debe analizar si el total de horas es mayor que 150
entonces tendrá una bonificación del 6.5%. Mostrar por pantalla el total de horas y el nuevo
sueldo de la persona.

7. Implementar un programa ABAP que permita ingresar una letra y una cantidad, por
ejemplo @ y 5 y que muestre

@
@@
@@@
@@@@
@@@@@

Mg. Ing. Oscar J. Flores Gutiérrez


GESTIÓN DE TABLAS
Tal como se indicó al inicio, el diccionario ABAP contiene todos los datos y metadatos
acerca del sistema SAP y sus principales componentes son: Tablas, Vistas, índices,
estructuras, elementos de datos, dominios, ayudas de búsquedas, conceptos que se
detallaran en la segunda parte del curso. A continuación, una breve descripción de los tipos
de datos:

TABLAS: son contenedores de datos que existen en la base de datos relacional


subyacente. En la mayoría de los casos hay una relación 1 a 1 entre la definición de la tabla
en el diccionario ABAp y la definición de la misma tabla en la base de datos (mismo
nombre, mismas columnas). Estas tablas se conocen como “transparentes”. Las tablas
combinadas son normalmente pequeñas tablas que mantienen por ejemplo datos de
configuración. Las tablas clustered están físicamente agrupadas en clusters, basados en
claves primarias;
ÍNDICES, proporcionan accesos rápidos a los datos de las tablas para aquella selección
usada con mayor frecuencia. Todas las tablas de SAP tienen un índice primario, el cual se
crea implícitamente a lo largo de que la tabla es usada forzando así que estos sean únicos,
otros índices tienen que definirse y se llaman: “índices secundarios”.
VISTAS: tienen el mismo propósito que en la base de datos subyacente: estas definen
un subconjunto de columnas desde una o más tablas usando condiciones join. Una vista es
una tabla virtual que no contiene ningún dato físicamente. Ocupan muy poco espacio
puesto que solo contienen la definición del dato.
ESTRUCTURAS: son tipos de datos complejos que contienen varios campos (Struct en
C/C++)
ELEMENTOS DE DATOS: proporcionan contenido semántico a una tabla o campo
estructurado. Por ejemplo, una docena de tablas y estructuras pueden contener un campo
que da un precio. Todos estos campos pueden tener el mismo elemento “PRECIO”.
DOMINIOS: definen las características estructurales de los elementos anteriormente
mencionados. Por ejemplo, el elemento “precio” puede poseer un dominio que lo define
como un campo numérico con dos decimales. Los dominios también pueden proporcionar
contenido semántico proporcionando una posible lista de valores.
BÚSQUEDAS DE AYUDA: proporciona una estrategia de búsqueda avanzada cuando
un usuario quiere ver el posible valor que tiene un campo. El runtime de ABAP
proporciona asistencia implícita pero dicha ayuda puede refinar esta funcionalidad. Objetos
bloqueados implementan bloqueos a nivel de aplicación cuando se modifican datos.

Mg. Ing. Oscar J. Flores Gutiérrez


Data type
Into crresponding
Luego select

MANEJO DE TABLAS EN SAP

El código de transacción SE11 es un diccionario ABAP . Al usar este código de


transacción, puede crear, cambiar y visualizar entradas y estructuras de tabla:

En la pantalla inicial, puede colocar tablas o estructuras para ver, editar o incluso crear
una nueva. El código de transacción SE11 se usa normalmente como programador ABAP.

Mg. Ing. Oscar J. Flores Gutiérrez


TRANSACCIONES PARA LA CREACIÓN DE TABLAS TRANSPARENTES
La gestión de tablas en se hace mediante el DICCIONARIO ABAP, y esencia se
gestiona mediante tres transacciones.
Se11 Creación de tablas
Se16 Visualización de datos
Sm30 Mantenimiento y actualización de tablas

CREACIÓN DE TABLAS
1. Entrar a la se11

Ingresar el nombre de la tabla en el campo DATABASE TABLE.


Luego hacer click en el botón CREATE.
2. Se apertura la pantalla de Mantenimiento de tablas

a. Ir al Tab: Delivery & Maintenance


b. Llenar los campos
i. Short Description
ii. Delivery class
iii. Data Browser /TView
Llenarlos con los valores indicados en
la imagen adjunta.

Mg. Ing. Oscar J. Flores Gutiérrez


3. Luego ir a la pestaña FIELDS, para ingresar los campos (con Data Element y Domains)
 Short Description: descripción de la tabla
 Field: nombre del campo
 Key: Check si es Primary Key
 Initial Val: Check
 Data element
o Escribir un data elemento existente
o
o Ingresar un nuevo que comienze
con Z, por ejemplo:
 ZCODIGO.
 Doble click

 Acepta en Save.
 De salir alguna advertencia darle ok

 Activación
 Package: $TMP
 Click en botón:Local Object.

 Crear DATA ELEMENT : Con su


dominio (nuevo o no)

 NUEVO DOMAIN
 (Click en ayuda)

 LLENAR:
 DataType
 Length
 Click Execute (o enter)

Mg. Ing. Oscar J. Flores Gutiérrez


 Escoger algún Dominio ya existente
 y enter

Se ve que selecciono un dominio ya existente

O CREAMOS UN NUEVO DOMINIO:


Escribir ZDOMINIO

Hacer doble clik en


ZDOMINIO

Mg. Ing. Oscar J. Flores Gutiérrez


 Activación
 Package: $TMP
 Click en botón:Local Object.

Confirmacion de creacion de Nuevo dominio


yes

Ingreso datos del Nuevo dominio


Datatype: char
NroCharacteres 4
Click en activar

Vuelve a mostrar la ventana de Activacion


 Package: $TMP
 Click en botón:Local Object.
Y finalmente activamos

Una vez activado vuelve a llevarnos a la pantalla ELEMENTOS DE


DATOS con back(f3)

Mg. Ing. Oscar J. Flores Gutiérrez


back

CLICK EN ACTIVAR
Aceptar (enter) en la siguiente pantalla

Back
y regresamos a la pantalla de campos

y completamos

Completar los campos y crea nuevo datatype (repetir el proceso)

Mg. Ing. Oscar J. Flores Gutiérrez


Finalmente activar la table

Ir a technical settings y quedará de la sgte forma:

Finalmente guardar
Y regresar (f3) a la tabla y cerrarla

Click en activar

Mg. Ing. Oscar J. Flores Gutiérrez


Salir.

Investigue como (con que transacción) se ingresan datos.

Mg. Ing. Oscar J. Flores Gutiérrez


EXTRACCIÓN DE DATOS EN SAP
La extracción y posterior manipulación de los datos en ABAP, se da a través de tablas
internas que vienen a ser estructuras que recibirán los datos extraídos de las tablas
transparentes (de BD). Hay hasta 2 formas de trabajarlo. Pero en esencia veremos la más
simple.

Declaración de tablas internas (dos métodos)

Una tabla interna se caracteriza por tener una agrupación de datos con una misma
estructura. Existen dos formas de declarar una tabla interna, para ello vamos a ver cómo se
hace con esta sencilla tabla:

Nombre Apellido Teléfono

Juan Pérez 612345678

Lucas García 698765432

María Gutiérrez 600111222

Primera forma:

REPORT z_tabla1.

* Tipos
TYPES: BEGIN OF g_ty_encabezado,
nombre(20) TYPE c,
apellido(20) TYPE c,
telefono(9) TYPE n,
END OF g_ty_encabezado.

TYPES: g_tt_mitabla TYPE TABLE OF g_ty_encabezado.

* Declaración de variables
DATA: g_st_encabezado TYPE g_ty_encabezado,
g_it_mitabla TYPE g_tt_mitabla.

* Rellenado de la tabla
g_st_encabezado-nombre = 'Juan'.
g_st_encabezado-apellido = 'Pérez'.
g_st_encabezado-telefono = '612345678'.
APPEND g_st_encabezado TO g_it_mitabla.

g_st_encabezado-nombre = 'Lucas'.
g_st_encabezado-apellido = 'García'.

Mg. Ing. Oscar J. Flores Gutiérrez


g_st_encabezado-telefono = '698765432'.
APPEND g_st_encabezado TO g_it_mitabla.

g_st_encabezado-nombre = 'María'.
g_st_encabezado-apellido = 'Gutiérrez'.
g_st_encabezado-telefono = '600111222'.
APPEND g_st_encabezado TO g_it_mitabla.

* Mostrar en pantalla la tabla


LOOP AT g_it_mitabla INTO g_st_encabezado.
WRITE:/ g_st_encabezado-nombre,
AT 22 g_st_encabezado-apellido,
AT 44 g_st_encabezado-telefono.
ENDLOOP.

Segunda forma:

REPORT z_tabla2.

* Declarado de variables
DATA: BEGIN OF g_it_mitabla OCCURS 0,
nombre(20) TYPE c,
apellido(20) TYPE c,
telefono(9) TYPE n,
END OF g_it_mitabla.

* Rellenado de la tabla
g_it_mitabla-nombre = 'Juan'.
g_it_mitabla-apellido = 'Pérez'.
g_it_mitabla-telefono = '612345678'.
APPEND g_it_mitabla.

g_it_mitabla-nombre = 'Lucas'.
g_it_mitabla-apellido = 'García'.
g_it_mitabla-telefono = '698765432'.
APPEND g_it_mitabla.

g_it_mitabla-nombre = 'María'.
g_it_mitabla-apellido = 'Gutiérrez'.
g_it_mitabla-telefono = '600111222'.
APPEND g_it_mitabla.

* Mostrar en pantalla la tabla


LOOP AT g_it_mitabla.
WRITE:/ g_it_mitabla-nombre,
AT 22 g_it_mitabla-apellido,
AT 44 g_it_mitabla-telefono.
ENDLOOP.

Se aprecia que en el primer método se crea primero el encabezado y la tabla con TYPES, y
a continuación se declaran las variables. Sin embargo, en el segundo método se crea

Mg. Ing. Oscar J. Flores Gutiérrez


directamente la tabla.

Nótese que a la hora de hacer un LOOP a la tabla, en el primer método se indica la tabla y
el encabezado, mientras que en el segundo caso sólo se indica el nombre de la tabla, ya que
el nombre del encabezado y tabla interna es el mismo.

Mg. Ing. Oscar J. Flores Gutiérrez


EXTRACCIÓN DE DATOS

Los datos se extraen desde la base de datos, al servidor de App se38, en donde se
almacenarán temporalmente en una estructura de programación que puede ser una
workarea (selección simple de un registro) o una tabla interna para selección de múltiples
registros.

Luego serán

Mg. Ing. Oscar J. Flores Gutiérrez


PRÁCTICA PROPUESTA

1. Implemente, un pequeño modulo en ABAP que permita conocer todos los


destinos a los cuales puede viajar una persona desde determinado lugar.

2. Implemente un programa que permita lista los vueltos de una Persona realizo
en determinadas fechas (datos que son ingresado como parámetros)

3. Listar todos los lugares donde no hay rutas directas.

4. Listar las personas con más de 3 viajes realizados

5. Listar los aviones que en más viajes participaron

Fuentes

Extraído el 04 de junio del 2017, de wiki.sap4.com/wiki/, ABAP4.com

Mg. Ing. Oscar J. Flores Gutiérrez

Vous aimerez peut-être aussi