Está en la página 1de 26

Jornadas de especialidad – UCSM

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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, tiene una sintaxis parecida al lenguaje
COBOL. Incorpora algunos conceptos como base de datos lógica LDB. ABAP, fue
utilizado para implementar el SAP-R3 y fue pensado para que los programadores pudieran
optimizarlo.

Es importante indicar que requiere cierto dominio previo de técnicas de programación


debido a que no es un lenguaje muy intuitivo, ni tampoco cuenta con muchas técnicas
CASE (código generado al hacer Drug & Drop). Esto significa que ABAP hay que
programar casi todo, hasta inclusive el diseño de una grilla, línea por línea, nombres de
columnas, alto, ancho, etc. Incluso hay que manejar concepto de BAPIS, ALVs, de
Transacciones, y Dynpros, Concepto 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 ABAP 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.
Internamente se podría indicar que en ABAP se genera una presentación binaria del código
fuente, muy similar al Java Byte Code.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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.

MODULOS 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 estos programas va a genera una transacción.

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

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

INSTALACIÓN CONFIGURACION 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.

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

INSTALACION DE LA MAQUINA VIRTUAL

PASO 1 CONFIGURACION 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

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

 Buscar el archivo Windows XP Professional.vmx

 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 l VM haciendo clic en Play Virtual Machine

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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)

(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


Jornadas de especialidad – UCSM

Esperar al mensaje START OK

Luego estará listo para logearse.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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


Jornadas de especialidad – UCSM

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

CUESTIONARIO
1. ¿Qué SAP?

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

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

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

5. ¿Por qué estudiar ABAP?

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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

Podemos hacer clic en guardar o PODEMOS hacer click en LOCAL OBJECT

Y SALDRA LA SIGUIENTE PANTALLA INICIAL

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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


Jornadas de especialidad – UCSM

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
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

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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:


Long. Máx. (nº
TIPOS ELEMENTALES: Tipo Long. Valor inicial
char)
Alfanumérico (Char, string) C 1 de 1 a 65535 SPACE
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 (Packed) P 8 de 1 a 16 0
Hora (Time) T 6 6 '000000'

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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’.

TIPO DE DATOS ESPECIALES

CONDICIONALES
IF condición.
ELSE.
ENDIF.

EJERCICIO PROPUESTO
Implementar un programa que permita ingresar dos números y

SENTENCIAS REPETITIVAS

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

AL EJECUTAR (F8)

LUEGO DE INGRESAR EJECUTAMOS CON F8

SALDRA LA PANTALLA DE RESULTADOS

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

PARA RETROCEDER SE APRETA F3

En el caso que hubiera habido error

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

Luego que se corrige se debe activar.

Y se activa con el icono

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

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

EJERCICIOS

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

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:

3. Construya un programa en ABAP que permita el ingreso de dos números enteros e


indique si el primer número ingresado es mayor que el segundo, de ser así debe mostrar
lo siguiente: el número…. Es mayor

4. 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.

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.

Mg. Ing. Oscar J. Flores Gutiérrez


Jornadas de especialidad – UCSM

Fuentes

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

Mg. Ing. Oscar J. Flores Gutiérrez

También podría gustarte