1| Qué es SAP?
SAP: Es un sistema ERP que se utiliza para la
administración integral de una empresa
El sistema SAP está compuesto por una serie de áreas funcionales o
módulos que responden de forma completa y en tiempo real a los
procesos operativos de las compañías. Aunque pueden ser agrupados
en cuatro grandes áreas (financiera, logística, recursos humanos y
funciones multiaplicaciones), funcionan de un modo integrado, dado
que existen conexiones naturales entre los distintos procesos.
2| Arquitectura SAP
SAP se configura como una arquitectura cliente-servidor de tres
capas, con un reparto claro de las funciones. Las bases de datos
están instaladas en un servidor y componen la capa de datos, el
sistema es instalado en otro servidor y compone la capa de aplicación
y la capa de presentación está formada por el SAP GUI que es la
interfase gráfica del usuario de SAP.
3| Qué Módulos Funcionales componen al sistema
SAP?
Existen varias versiones del sistema, siendo la más utilizada la R/3
estándar. Los principales módulos de esta solución son:
SD (Comercial)
MM (Gestión de Materiales)
PP (Planificación de Producto)
QM (Gestión de Calidad)
PM (Mantenimiento)
HR (Gestión de Recursos Humanos)
FI (Gestión Financiera)
CO (Controlling)
TR (Tesoreria)
PS (Sistema de Proyectos)
WF (Workflow)
IS (Soluciones Sectoriales)
Aparte de la solución R/3 estándar, existen otras soluciones del
sistema, especialmente diseñadas según los requerimientos de la
industria a la que está destinada. Así existe la solución ISU-Utilities
para empresas de servicios o la solución Banking para bancos.
1| Qué es ABAP?
ABAP: Es un lenguaje de cuarta generación,
propiedad de SAP, que se utiliza para programar la
mayoría de sus productos (R/3, etc.).
Mediante ABAP se desarrollan nuevas aplicaciones como
complemento a las ya existentes, en la versión de SAP instalada o
como apoyo a la configuración del sistema, lo que es llamado en SAP
como Z y permite a los usuarios cumplimentar los requerimientos no
satisfechos por la versión estándar del sistema.
2| Fortalezas del ABAP
Las principales fortalezas del lenguaje son:
Utiliza sentencias de OPEN SQL para conectarse con prácticamente
cualquier base de datos.
Es un lenguaje estructurado que puede ser también programado
orientado a objetos.
Cuenta con miles de funciones para el manejo de archivos, bases de
datos, fechas, etc.
Permite conexiones RFC para conectar a los sistemas SAP con
cualquier otro sistema o lenguaje de programación.
Permite la creación de aplicaciones multiidioma.
Posee una ayuda muy potente sobre la sintaxis y la semántica del
lenguaje.
Permite la realización de reportes en forma rápida y sencilla.
ABAP es un lenguaje de programación
orientado a eventos donde la secuencia de
instrucciones depende del cumplimiento de una
condición o evento.
3| Secuencia de Eventos
La estructura de un programa ABAP no es la clásica estructura TOP-
DOWN, típica de los lenguajes estructurados. En el siguiente gráfico
vemos la secuencia de eventos que puede cumplir un programa.
En conclusión: No importa el orden en el cual estén
escritos los eventos dentro de un programa ABAP
debido a que existe un orden preestablecido de
ejecución de los eventos y este orden es el que se
tiene en cuenta al momento de la ejecución.
1| Ambientes y Mandantes
Como en todos los ámbitos de desarrollo de software, se
configuran en SAP tres ambientes, uno de desarrollo, uno de pruebas
y otro de producción, que es donde se utilizan las aplicaciones
desarrolladas y probadas satisfactoriamente.
AMBIENTE: Es un servidor donde ha sido
instalado el sistema SAP.
Por ejemplo: el ambiente de desarrollo se
instala en el servidor 1, el ambiente de pruebas
se instala en el servidor 2 y el ambiente de
producción se instala en el servidor 3.
A su vez, en cada ambiente, existen distintos mandantes, siendo
independientes los datos que se visualizan en cada mandante dentro
del mismo ambiente. Por ejemplo, puede existir el mandante 100,
que se utiliza para la configuración del sistema, el mandante 200 que
se utiliza para el desarrollo de las aplicaciones y el mandante 300,
que se utiliza para las pruebas unitarias dentro del ambiente de
desarrollo.
MANDANTE: Es una instancia creada dentro
de un ambiente, que se utiliza para
configuración, desarrollo o pruebas.
Por último, existen dentro de cada mandante, dos tipos de objetos,
los que son independientes de mandante y los que son
dependientes de mandante. Por ejemplo, un programa es
independiente de mandante ya que si lo creamos en el mandante
200, el programa también va a existir en los mandantes 100 y 300.
Los datos de una tabla son dependientes del mandante ya que si a
esta tabla le ingresamos registros en el mandante 200, estos
registros no van a existir en los restantes mandantes dentro del
mismo ambiente.
En el gráfico que vemos a continuación, tenemos una posible
distribución de los mandantes y los ambientes dentro de una
instalación SAP.
Los datos de las bases de datos y los
formularios (concepto que veremos más
adelante) son dependientes del mandante en
el que fueron creados.
2| Clase de desarrollo o Paquete
CLASE DE DESARROLLO: La Clase
de Desarrollo o también llamada Paquete, es
una forma de organizar todos los nuevos objetos
que se crean en SAP, clasificándolos
generalmente por módulos.
Poniendo un ejemplo, un objeto sería un archivo y la clase de
desarrollo sería la carpeta donde guardamos el archivo.
Existe la Clase de Desarrollo $TMP, que se utiliza para los objetos
temporales que no se van a transportar entre ambientes, es
decir para pruebas.
Al momento de crear un nuevo objeto en el sistema, SAP nos
proporcionará la pantalla que vemos a continuación para que le
asignemos el Paquete al que pertenece. En este caso, el paquete es
Z_WEB_SERVICE.
Las Clases de Desarrollo o Paquetes se crean a
través de la transacción SE80.
1| Login al sistema SAP
Como dijimos anteriormente, la arquitectura que utiliza SAP es
Cliente-servidor de tres capas, donde el sistema y las bases de datos
están instaladas en el servidor y los usuarios se conectan a éste a
través del SAP Logon.
Es importante recordar, que para poder conectarnos a SAP en nuestra
PC debemos levantar el servidor de aplicaciones tal como lo
explicamos en la lección de Instalación de SAPNetWeaver. Luego,
hacemos doble click en el SAP Logon y introducimos el mandante que
es 001, el usuario que es BCUSER y la password que es minisap.
Una vez introducidos los datos, visualizamos el modo SAP con el
menú correspondiente al usuario logueado.
Desde este sector, podemos acceder a todas las transacciones
permitidas para el usuario logueado. Otra forma de hacer lo mismo es
escribir la transacción a la que deseamos ir en el campo de
comandos. Por ejemplo, más adelante veremos que la transacción
SE38 nos lleva al Editor ABAP.
2| Ayuda en ABAP
Existen cuatro sistemas de ayuda para aprender y desarrollar en
ABAP. Es muy importante tenerlos en cuenta para resolver rápido
cualquier inquietud que nos surja. Ellos son:
Desde el entorno de trabajo, presionando F1 sobre cualquier
sentencia, el sistema nos proporcionará ayuda con ejemplos que
generalmente son muy útiles.
Usando la ayuda extendida de SAP. En todas las pantallas de SAP
tenemos la opción Help desde la que podemos buscar información.
SDN. Donde vamos a encontrar una enorme cantidad de
información y ayuda sobre cualquier tema dentro del mundo SAP.
Internet en general. Aparte de la SDN, existen muchas otras
páginas, foros y blogs donde encontraremos información muy útil.
1| Mi primer programa ABAP
Vamos a crear nuestro primer programa en ABAP. Para esto nos
logueamos a SAP como lo vimos en la lección anterior, escribimos en
el campo de comandos la transacción SE38 y presionamos enter.
Visualizaremos el Editor ABAP, allí escribiremos el nombre del
programa que vamos a crear, el cual debe empezar con Z y
presionaremos el botón .
Luego aparecerá una ventana que nos va a pedir:
Título: debe ser lo más descriptivo posible. En este caso será "Mi
primer programa Abap".
Tipo: se refiere al tipo de objeto que estamos creando.
Generalmente será "Programa ejecutable".
Luego presionamos grabar y el sistema en una nueva ventana nos
solicitara que ingresemos el paquete o clase de desarrollo, a lo que
presionaremos el botón "Objeto local" que es lo mismo que escribir
$TMP y presionar grabar.
En el editor escribiremos el siguiente código y luego presionaremos el
botón "Activate" que compilará y activará nuestro programa.
Todas las sentencias en ABAP terminan con un
punto.
ABAP no distingue entre minúsculas y
mayúsculas.
Una sentencia ABAP puede ocupar más de una
linea.
Las cadenas de texto se escriben entre comillas
simples.
Una vez compilado sin errores, lo ejecutaremos con el
botón ejecutar o presionando la tecla F8.
La pantalla de salida que visualizaremos será la siguiente:
Felicitaciones! acabas de crear tu primer programa ABAP.
PRETTY PRINTER: Se utiliza para unificar los
criterios de mayúsculas y minúsculas en los
programas ABAP. Para configurarlo acceder a
UTILITIES/SETTINGS/ABAP
EDITOR/PRETTY PRINTER.
2| Ordenes de Transporte
En el ejemplo anterior, creamos un objeto que como es de prueba, lo
asignamos a la clase de desarrollo $TMP. Pero si quisiéramos
transportarlo a otro ambiente tenemos que asignarlo a una clase de
desarrollo o paquete que no sea de prueba.
Supongamos que volvemos a crear el programa
ZPRUEBA_ABAP desde el principio, entonces veremos la
siguiente ventana de diálogo donde completamos los datos del nuevo
programa:
Luego presionamos el botón Grabar y en la ventana de diálogo que
visualizamos a continuación introducimos la clase de desarrollo o
paquete Z_WEB_SERVICE o cualquier otra disponible en el sistema
y presionamos el botón Grabar .
En este momento SAP nos propondrá asociar el objeto que acabamos
de crear a una orden de transporte.
ORDEN DE TRANSPORTE: Es un
número unívoco dentro el sistema SAP y se utiliza
para agrupar objetos que van a ser transportados
entre ambientes.
El número de la orden de transporte es
generado automáticamente por SAP, es decir
no lo generamos nosotros.
3| Tipos y Estados de una Orden de Transporte
Una orden de transporte puede ser de dos tipos:
Customizing: cuando se utiliza para la configuración del sistema.
Workbench: cuando se utiliza para el desarrollo de programas.
Para la administración de las ordenes de transporte se utilizan las
transacciones SE10, SE01 y SE09.
Una orden de transporte puede tener dos estados:
Modificable: cuando la orden puede ser modificada, es decir se le
pueden agregar o quitar objetos.
Liberada: cuando la orden no puede ser modificada, está lista para
ser transportada a otro ambiente.
Para liberar una orden, basta con presionar el botón para
transportar sobre la tarea que compone la orden y también sobre
la orden misma.