Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SAP
Es el ERP (Enterprise Resource Planning) más difundido y prestigioso del mundo. SAP es
un sistema que básicamente sirve para gestionar todas las áreas de una gran empresa:
gestiona desde contabilidad, finanzas, gestión de almacenes, de proveedores, gestión de
clientes, Administración de recursos humanos, gestión de producción, incluso tiene
modulos de Business Intelligence, portal web con Hanna, módulos educativos, entre otros.
En principio por su flexibilidad 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.
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.
ABAP
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.
Internamente se podría indicar que en ABAP se genera una presentación binaria del código
fuente, muy similar al Java Byte Code.
Modulos include
Rutina
SubRutinas
Interfaces
Tipos
Grupo de funciones
Clases
TRANSACCIONES
Una transacción en terminología SAP es la ejecución de un programa. La forma normal de
ejecutar código ABAP en el sistema SAP es ingresando un código de transacción (por
ejemplo, VA01 es el código de transacción para “Crear Órdenes de Venta”). Las
Transacciones pueden ser llamadas a través de menús definidos por el sistema. En otras
palabras una Transacción es una Código para ejecutar ciertos modulo; por ejemplo
Transacción se38. Editor de código abap
Transacción se80. ABAP WorkBench
Transacción se16. Edit Table o diccionario ABAP
DICCIONARIO ABAP
El diccionario ABAP contiene todos los 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). Cuando un objeto del
diccionario es modificado, un programa que lo referencie automáticamente cambia su
referencia al nuevo estado del objeto. Ya que ABAP es interpretado, no es necesario
recompilar programas que referencien a objetos que se modifiquen dentro del diccionario.
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.
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.
Minisap es una versión gratuita y reducida, que no tiene módulos de FI, CO, HR,
únicamente tiene ABAP y tablas internas. Es bastante útil para aprender a programar.
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
(Click en llavecita)
SSOLO INGRESAR Pass: minisap
Ya precargado: User SAPNSP
Server localhost
Database NSP
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
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 que son los accesos directos a
los aplicativos, acompañado de los iconos de Back (f3),Exit (Shift+f3), Cancel (f12), etc.
CUESTIONARIO
1. ¿Qué SAP?
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
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.
Tutorial
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 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.
EJECUCIÓN
OPCIONES ADICIONALES
Si necesitara volver a la pantalla anterior aprieta F3 o el icono back
Las 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 BASICA
Todo lenguaje de programación puede clasificar o agrupar sus sentencias en los siguientes
tipos:
Secuenciales
Condicionales
Repetitivas
Estructuradas
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.
Ejemplo:
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.
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’.
CONDICIONALES
IF condición.
ELSE.
ENDIF.
EJERCICIO PROPUESTO
Implementar un programa que permita ingresar dos números y
SENTENCIAS REPETITIVAS
AL EJECUTAR (F8)
EJERCICIOS
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 si o no:
5. 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.
Fuentes