Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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.
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:
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.
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:
INICIAR NSP
click en cilindro para ponerlo ONLINE
Las Tx están acompañadas de los iconos de Back (f3), Exit (Shift+f3), Cancel (f12), etc
2. A su criterio, ¿Por qué cree que SAP sigue siendo tan utilizado y exitoso,
aun a pesar de ser bastante antiguo?
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
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.
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 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.
OPCIONES ADICIONALES
SINTAXIS BÁSICA
Todo lenguaje de programación puede clasificar o agrupar sus sentencias en los
siguientes tipos:
Secuenciales
Condicionales
Repetitivas
Estructuradas
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.
Entero (Integer) I 4 4 0
Ejemplo:
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:
AL EJECUTAR (F8)
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.
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
@
@@
@@@
@@@@
@@@@@
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.
CREACIÓN DE TABLAS
1. Entrar a la se11
Acepta en Save.
De salir alguna advertencia darle ok
Activación
Package: $TMP
Click en botón:Local Object.
NUEVO DOMAIN
(Click en ayuda)
LLENAR:
DataType
Length
Click Execute (o enter)
CLICK EN ACTIVAR
Aceptar (enter) en la siguiente pantalla
Back
y regresamos a la pantalla de campos
y completamos
Finalmente guardar
Y regresar (f3) a la tabla y cerrarla
Click en activar
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:
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.
* 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'.
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.
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.
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
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.
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
2. Implemente un programa que permita lista los vueltos de una Persona realizo
en determinadas fechas (datos que son ingresado como parámetros)
Fuentes