Definiciones y conceptos de SAP – Letra A.2

BAP ALV STATUS

Cuando creamos un reporte ALV tenemos la posibilidad de agregar un STATUS GUI.

Para poder utilizar un Status GUI en un reporte ALV, debemos agregar en la llamada a la función del ALV el parámetro exporting I_CALLBACK_PF_STATUS_SET con el literal ‘PF_STATUS’, que será el nombre de la subrutina que declararemos para la utilización del Status GUI y el parámetro exporting I_CALLBACK_USER_COMMAND con el literal ‘USER_COMMAND’, que será el nombre de la subrutina que se ejecute para capturar la acción realizada por el usuario.

Luego dentro de la subrutina ‘PF_STATUS’ realizaremos la llamada al STATUS GUI (SET PF-STATUS ‘0100’)

ABAP AMBIENTE

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.

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

Los programadores tendrán acceso para desarrollar nuevos programas o modificar los existentes en el ambiente de desarrollo.

Accederemos al ambiente de testing o pruebas para probar en forma integral y con datos actualizados nuestros programas y muy ocasionalmente ingresaremos al ambiente de producción, en caso de que se haya reportado alguna incidencia o error, que requiere de nosotros para ser detectado y solucionado.

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.

ABAP ARCHIVOS EN SERVIDOR: LAS SENTENCIAS OPEN Y READ

En un ambiente real de trabajo, es común la utilización de un servidor de aplicaciones, para trabajar con archivos.

De esta manera los archivos resultantes de procesos del sistema quedarán resguardados en un servidor de acceso restringido el cual, desde el punto de vista de la seguridad de la información es más seguro.

ABAP dispone de una serie de sentencias para el tratamiento de archivos ubicados en el servidor de aplicaciones.

Las sentencias que utilizaremos para la apertura y lectura de los archivos son las siguientes:

OPEN DATASET: para la apertura de archivos del servidor. La sintaxis de la sentencia es la siguiente:

OPEN DATASET <archivo> FOR ACCESS IN <MODE>.

Si la apertura del archivo se realizó correctamente, entonces el SY-SUBRC será 0. Caso contrario, será 8. Es recomendable cerrar todos los archivos que ya están abiertos antes de realizar una re-apertura con la sentencia OPEN DATASET.

READ DATASET: para la lectura de archivos del servidor. La sintaxis de la sentencia es la siguiente:

READ DATASET <archivo> INTO <estructura>.

Si la lectura se realizó correctamente, entonces el SY-SUBRC será 0. Caso contrario, será 8.

ABAP ARCHIVOS EN SERVIDOR: LAS SENTENCIAS TRANSFER, DELETE Y CLOSE

En un ambiente real de trabajo, es común la utilización de un servidor de aplicaciones, para trabajar con archivos. De esta manera los archivos resultantes de procesos del sistema quedarán resguardados en un servidor de acceso restringido el cual, desde el punto de vista de la seguridad de la información es más seguro.

ABAP dispone de una serie de sentencias para el tratamiento de archivos ubicados en el servidor de aplicaciones.

Las sentencias que utilizaremos para transferir, borrar y cerrar los archivos son las siguientes:

TRANSFER: utilizaremos esta sentencia para transferir datos desde nuestros programas ABAP a los archivos ubicados en el servidor de aplicaciones. La sintaxis de la sentencia es la siguiente:

TRANSFER <estructura> INTO <archivo >.

Si el archivo no está abierto para escritura, el sistema intentará abrirlo en BINARY MODE o utilizando la última ejecución de la sentencia OPEN DATASET.

  • DELETE DATASET: utilizaremos la sentencia para borrar archivos del servidor de aplicaciones. La sintaxis de la sentencia es la siguiente:
  • DELETE DATASET <archivo >.
  • Para borrar un archivo, previamente debemos abrirlo.
  • Si el borrado se realiza correctamente, entonces el SY-SUBRC será 0.
  • Caso contrario, será 4.
  • CLOSE DATASET: utilizaremos la sentencia para cerrar archivos del servidor de aplicaciones. La sintaxis de la sentencia es la siguiente:
  • CLOSE DATASET <archivo >.

Es ampliamente recomendable realizar siempre el cierre de los archivos.

ABAP ARCHIVOS LOCALES: DOWNLOAD DE DATOS

ABAP nos proporciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicados en nuestra PC mediante la clase CL_GUI_FRONTEND_SERVICES.

Para grabar datos en archivos locales, hasta antes de trabajar con los métodos que proporciona la clase CL_GUI_FRONTEND_SERVICES, se utilizaban los módulos de funciones ‘DOWNLOAD’ y ‘WS_ DOWNLOAD’.

Es importante destacar que a partir de la versión 4.7 estos módulos de función quedan obsoletos.

Si bien siguen existiendo, SAP no les brinda más soporte y no garantiza que vayan a estar en futuras versiones, por lo cual sus funcionalidades deben ser implementadas mediante otros módulos de funciones o métodos y clases.

Para escribir registros de datos en archivos locales utilizaremos los siguientes métodos:

GUI_DOWNLOAD: para escribir datos almacenados en tablas internas en archivos locales. En la ejecución de este método deberemos especificar el directorio y nombre del archivo a descargar a la PC, el tipo o extensión del archivo que descargamos a la PC, un separador de archivo o no y cual será y la tabla interna que será la que se grabará en el archivo. Esta tabla debe tener la misma estructura del archivo.

ABAP ARCHIVOS LOCALES: UPLOAD DE DATOS

ABAP nos proporciona una serie de métodos muy útiles para el tratamiento de archivos locales ubicados en nuestra PC mediante la clase CL_GUI_FRONTEND_SERVICES.

Para levantar datos de archivos locales, hasta antes de trabajar con los métodos que proporciona la clase CL_GUI_FRONTEND_SERVICES, se utilizaban los módulos de funciones ‘UPLOAD’ y ‘WS_UPLOAD’.

Es importante destacar que a partir de la versión 4.7 estos módulos de función quedan obsoletos.

Si bien siguen existiendo, SAP no les brinda más soporte y no garantiza que vayan a estar en futuras versiones, por lo cual sus funcionalidades deben ser implementadas mediante otros módulos de funciones o métodos y clases.

Para levantar en una tabla interna la información almacenada en archivos locales utilizaremos los siguientes métodos:

  • FILE_OPEN_DIALOG: para mostrar la pantalla de navegación que permita al usuario poder seleccionar el archivo del directorio de su PC. En la ejecución de este método deberemos especificar un título para la ventana de búsqueda que se muestra en la pantalla, el nombre del archivo que buscamos en nuestra PC. Si colocamos el literal asterisco podremos ver todos los archivos que se encuentren en los directorios y la ruta más el nombre del archivo seleccionado.
  • GUI_UPLOAD: para bajar datos de los archivos locales a las tablas internas. En la ejecución de este método deberemos especificar el directorio más nombre del archivo local con el que estamos trabajando, el tipo o extensión del archivo local, el tipo de separadores y tabla interna donde almacenaremos los datos del archivo local.

ABAP ARQUITECTURA DE UN PROGRAMA DE DIÁLOGO

Podemos decir que un Programa de Diálogo o también llamado «Module Pool» es un tipo de programa ABAP que está compuesto principalmente por una serie de pantallas o dynpros por las cuales el usuario navega mientras interactúa con el programa y realiza determinadas acciones.

Se lo llama también Module Pool ya que el programa, como dijimos anteriormente, está compuesto por dynpros y la lógica de cada dynpro está especificada en distintos módulos.

Dentro de cada dynpro se crearán o asociarán diferentes objetos para darles funcionalidades a las mismas. Entre ellos podemos nombrar:

  • Menú
  • Títulos
  • Botones
  • Tablas de control
  • Textos
  • SubScreens
  • Campos de entrada y salida de datos

Un programa de diálogo se crea exactamente igual que un reporte, con la excepción que el tipo del programa debe ser Module Pool en vez de Programa Ejecutable.

Para trabajar con programas de diálogo debemos utilizar la transacción SE80, de modo que desde allí veremos en detalle todos los componentes de un Programa de diálogo.

ABAP BADIS

Son un nuevo tipo de extensión al sistema SAP, basado en la utilización de objetos ABAP para la implementación de validaciones y ampliaciones al código estándar de SAP, sin tener que modificar el código estándar.

Mediante las Badis podremos realizar modificaciones al estándar de modo de poder satisfacer los requerimientos del cliente.

Utilizando Badis podremos definir filtros para la ejecución de forma tal de poder tener diferentes procesos para, por ejemplo, países diferentes.

Esto le permite a SAP poder utilizar las Badis para realizar localizaciones del sistema; por eso es que el sistema estándar ya incluye varias implementaciones de Badis.

Mediante las implementaciones de las Badis se pueden hacer aplicaciones para negocios específicos como petroleras, papeleras, químicas, etc.

Esto hace que las Badis sean muy útiles debido a que poseen una arquitectura Multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones específicas para industrias, etc.).

ABAP BAPIS

Son métodos estandarizados que nos permiten realizar acciones sobre los objetos de negocios de SAP, como pueden ser, crear un pedido, crear un equipo, hacer un movimiento de mercancías.

Todos los procesos que hasta ahora hacíamos mediante batch input.

Ventajas de las BAPIS por sobre los Batch Inputs

Debido a que las BAPIS son generalmente estándar de SAP, utilizando BAPIS, nos aseguramos que los programas que desarrollemos, serán compatibles con las versiones futuras de SAP. Esto no ocurre con los batch input, ya que, entre las distintas versiones de SAP, es común que se modifiquen las pantallas de las transacciones, por lo tanto, la ejecución del Batch Input fallará.

Decimos que las BAPIS son generalmente estándar ya que, si bien se pueden crear mediante la transacción SE37 como funciones RFC, en rara ocasión tendremos que crear una nueva.

Desventajas de las BAPIS

La mayor dificultad en la utilización de BAPIS, está en la carga correcta de los valores de las tablas de entrada. Para superar esta dificultad, podemos utilizar la SDN.

ABAP BASES DE DATOS LÓGICAS

Una base de datos lógica (BDL) es un programa SAP que lee y procesa información de tablas de una base de datos.

El objetivo de las bases de datos lógicas es la generación de reportes en forma rápida y sencilla.

Pueden incluirse como atributo de un programa ABAP de usuario y se compila conjuntamente con él. Podemos acceder desde el menú:

Herramientas – WorkBench Abap 4 – Desarrollo – Entorno programación – Base de datos lógicas. O bien a través de la transacción SE36. No es muy útil crear bases de datos lógicas nuevas, salvo que sean pequeñas modificaciones de las ya existentes en SAP.

El nombre de una base de datos lógica tiene 3 caracteres. Los 2 primeros identifican la base de datos dentro de una aplicación o módulo concreto de SAP, y el tercero identifica dicho módulo. Ejemplos: DDF (DD: deudores, F: módulo FI), AFI (AF: órdenes mantenimiento, I: módulo PM de mantenimiento de plantas).

Para saber si es posible acceder a una tabla mediante una base de datos lógica existente, ir a Detalles – Utilización de tablas.

Si no es posible, habrá que acceder a la tabla con un SELECT normal al Diccionario de Datos.

Para indicar al programa que se va a usar una base de datos lógica, en la pantalla de atributos de creación del programa hay que indicar la BDL a usar (son 2+1 caracteres).

Las BDL tienen variables de selección propias, con lo que automáticamente aparecerán en pantalla de selección.

Es importante destacar que las Bases de datos lógicas son una técnica que se encuentra en desuso, en la programación ABAP.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.