lunes, 16 de enero de 2012

Programación por pantallas: 1 - Conceptos Basicos





Para hacer complementos al curso que venimos desarrollando empezare a publicar una serie de conceptos básicos para que los vamos aplicando transversalmente en la practica del proyecto del curso, en esta ocasión hablaremos de la programación por Pantallas o Screen Programming, algo muy básico y de uso diario en este mundo de la programacion ABAP.

¿Que es una programacion es la programaciòn por pantallas en ABAP? 

Es una técnica o modelo de programacion que en el cual se brinda interfases de dialogo entre el usuario y el programa en los que podrían entrar datos, seleccionar opciones por medio de menú de ítem o botones o realizar acciones como click o doble click en datos para navegar mostrar información relacionada entre otras posibilidades, estos podrán ser implementados en programas de tipo completo osea los que se ejecutan o directamente o través de una transacción como son los tipo 1 o programas ejecutables o tipo M o Module Pool, en los tipos incompletos como son los tipos F(Módulos de función),  los tipo K(Class Pool) y J(Inteface Pool) y los tipo I(Include) no se pueden asociar Dynpros o Screens.

¿Que ventajas tiene este modelo de programaciòn?

Como ventajas de este modelo de programación están las siguientes:
  • Acorta las lineas de programa de una aplicaciòn.
  • Proporciona una mejor usabilidad del sistema de cara al usuario, haciéndolas mas sencillas y con mayor interacción.
  • Proporciona mayor numero de objetos para reutilizar en la aplicaciòn de forma mas sencilla y agil para el programador.
  • Permite gestionar de manera mas eficiente los permisos puntuales a diferentes puntos de la aplicaciòn.
  • Permite que el usuario acceda de forma directa a la información que realmente le interesa a través de diferentes variedades de menús.
La programación por pantallas en SAP es un compuesto de items u objetos graficos (Button, TextInputs, CheckBox, Labels, RadioButtons, TabControls, Frames, Sub Areas, Tables Controls, Customer Controls, Icon Status) + Screens o Dynpros + un report controlador.

Los objetos graficos se identifican en el ScreenPainter(SE51) por los siguientes iconos:

  => Campo de texto, este se utiliza para crear labels o cualquier otro tipo de etiquetas.
=> Campo de entrada o de salida, este sirve para ingresar o mostrar datos al usuario.
=> Casilla de seleccion, esta sirve para marcar o desmarcar una opción o verificación.
=> Radio Button, este sirve para escoger una opción de un conjunto de opciones.
=> Botón, sirve para lo que sirven todos los botones, para presionarlos.
=> Control de fichas o tabuladores.
=> Asistente para la creacion de control de fichas.
=> Box o Frame, este nos permite enmarcar y agrupar un conjunto de controles.
=> SubArea, este control nos permitira invocar dynpros dentro de nuestro dynpro, por ejemplo mostrar informacion especifica y detallada de un registro dentro de la misma pantalla.
=> Table Control, es una tabla o Grid o grilla donde se mostrara datos o a la que se podra ingresar algun tipo de registros que necesitemos.
=> Asisten para la creación de Table Control.
=> Control Personalizado, nos permite añadir algun elemento en tiempo de ejecucion de la aplicacioón.
=> Icono de estatus, no permite mostrar iconos de estado de una aplicacion(exitoso, error, etc..)

Estos controles los encontraremos en la barra lateral izquierda de nuestro screen painter y para incorporarlos en nuestra aplicacion bastara con arrastrarlos y soltarlos para posterior nombrarlos como las instancias que tengamos declaradas en la aplicación, se que muchos en este punto diran ¿Como se hace eso?, calma, vamos paso por paso, primero terminemos de ver los otros elementos que componen la programación por Screens.

Dynpros o Screens

Los Dynpros son las pantallas que maneja SAP en las que iremos añadiendo los elementos visuales que vimos anteriormente, dentro de los atributos de los dynpros tenemos:
  • Programa: Es el nombre del programa en el cual esta contenido el Dynpro.
  • Nro de Screen: Es el identificador que va a tener nuestra pantalla, la relacion Nro-Programa lo hara unico en todo el contexto de SAP.
  • Descripción Corta: Es la descripcion de la pantalla
  • Pantalla siguiente: Identifica en la secuencia de la aplicacion cual sera la pantalla que va a seguir posterior en el flujo.
Debemos de tener en cuanta a la hora de numerar nuestro screen o dynpro las siguientes restricciónes:
  • Los numeros mayores a 9000 estan reservados para los SAP Systems Customers.
  • Los numeros entre 1000 y 1010 estan reservados para las pantallas de mantenimientos.
 Por lo tanto evitemos usar estos numeros en el momento de numerar nuestras pantallas.

Por ultimo para controlar estas pantallas y los elementos que las contienen debemos tener algo que controle los eventos o acciones que realice el usuario o por lo mismo un controlador de la aplicación.



Controlador de la aplicación

 Es simplemente unas lineas de codigo ABAP que van a estar contenidas en cada una de nuestras pantallas o dynpros en los que controlaremos que hace la pantalla en cada momento, estos momentos los llamamos bloques de procesamiento, de los cuales tenemos 4:

  • PBO(Process Before Output): Son los procesos que ocurren antes de la interaccion con el usuario como por ejemplo asociar a la pantalla que conjunto de pulsadores(GUI STATUS) va a tener asociada la pantalla, o inicializacion de variables, etc.
  • PAI(Process After Input): Son los procesos que ocurren luego de que se dio una interaccion con el usuario(Se pulso un botón, se ingreso un datos, etc.).
  • POV(Process On Value Request): Son los procesos que ocurren cuando se solicita algun valor, como por ejemplo cuando se selecciona la ruta de un archivo en la maquina local.
  • POH(Process On Help Request): Son los procesos que se ejecutan al consultar las ayudas de busqueda.
Todos los controles que se realicen sobre estos bloques de procesos se agruparan mediante modulos de funcion llamados MODULE estos podran ser de entrada(Input) o de salida(output).


No hay comentarios:

Publicar un comentario

Es muy importante saber que opinas de este espacio, por eso te agradezco tus aportes.