✒️Social Break - Seminario de Inserción Laboral SAP
Social Break - Seminario de Inserción Laboral SAP
CURSO PROGRAMADOR ABAP
Unidad 2 - DECLARACION Y PROCESAMIENTO DE DATOS
Lección 1 – Las características de los programas ABAP
1 – Los objetos de ABAP:
Dentro de SAP se pueden crear muchos tipos de objetos, pero los más comunes con los que vamos a trabajar son:
.Reportes (Clásicos, Interactivos y ALV)
.Programas de diálogo o module pool
.Módulos de funciones o funciones RFC
.Formularios (los principales SAP Scripts y Smartforms
.Batch Input (se utilizan para el ingreso masivo de datos al sistema
.Ampliaciones (User Exit, Customer Exit, Field Exit, Screen Exit, Menu Exit y Enhancement)
.Las Interfaces (los archivos de entrada y los de salida)
Reportes: programa cuyo objetivo es procesar datos de entrada mediante una ´pantalla de selección´o de ´tablas de bases de datos del sistema´. Los datos ingresados se procesan y luego se muestran los resultados en pantalla o se genera un archivo de salida.
En el ejemplo de programa mostrado algunas palabras están escritas en color azul, eso es porque son palabras reservadas del lenguaje ABAP. Existen cuatro tipos de palabras reservadas o claves:
.Declarativas (declaran datos que se usaran dentro del programa. Ej: DATA, TABLES o CONSTANT
.Eventos (eventos que ocurren en el programa. Ej: START-OF-SELECTION, TOP-OF-PAGE o INITIALIZACION)
.De Control (Controlan el flujo del programa. Ej: IF, WHILE o DO)
.Operativas (Realizan funciones según la palabra, ej. WRITE, MOVE o TRANSLATE)
Para la legibilidad del programa es conveniente insertar comentarios en el programa. Existen dos formas de hacerlo:
. Con un asterisco (*) en la primer posición de la fila. Toda la fila quedaría como un comentario
. Con comillas dobles (“), luego del punto de finalización del comando (el comentario quedaría a la derecha de la fila
Dentro de la SE38 en el menú ‘Utilidades / Opciones / Editor ABAP / Editor “, podemos seleccionar si trabajamos con el editor nuevo o el viejo.
2 - Los eventos de un programa:
ABAP es estructurado y orientado a eventos, y a partir de una determinada versión incorpora la programación orientada a objetos.
¿Qué es un evento? Es una etiqueta que identifica una sección de código, comienza con esta etiqueta y termina cuando el siguiente nombre de evento se encuentra. Los nombres de eventos son palabras reservadas y no se pueden crear nuevos eventos, solo utilizar los existentes.
Los principales son:
INITIALIZATION (es el primer evento que se ejecuta dentro del programa, inicializa los campos de la pantalla de selección, una variable, se le puede asignar un tipo y un valor)
AT SELECTION-SCREEN (valida los datos introducidos en los parámetros que conforman a la pantalla de selección, por lo tanto este evento lo encontraremos en los reportes que cuenten con dicha pantalla
START-OF-SELECTION (este evento se procesa luego de procesar las operaciones incluidas en la instrucción REPORT. Este evento realiza el procesamiento central del programa, por ej.: selección de datos, procesar un archivo, realizar operaciones aritméticas, etc.
Si escribimos sentencias sin etiquetas de evento, estas se adjudican por defecto en START-OF-SELECTION
END-OF-SELECTION (el código de este evento se procesa cuando se termina el procesamiento central, es decir, luego de START-OF-SELECTION. Son las últimas sentencias que se ejecutaran en el programa, por lo general realizan impresiones por pantalla o la generación de archivos de salida
AT LINE-SELECTION (se utiliza en el llamado reporte interactivo en donde se muestra en pantalla un listado inicial y a partir de hacer doble clic en alguna línea de este listado se muestra una segunda pantalla con información adicional o detallada, y así cuantos niveles se desee. Con este evento podemos saber en cual línea de la pantalla se hizo doble clic.
AT USER-COMAND (este evento se ejecuta cuando el usuario hace clic en un botón del menú del reporte)
TOP-OF-PAGE (se procesa antes de que el primer dato aparezca en cada página y se utiliza para imprimir o generar títulos o cabeceras
END-OF-PAGE (se lanza automáticamente una nueva página en un listado de salida. Esto ocurre cuando el número de líneas procesado sobrepase al número de líneas fijado para la página en la sentencia REPORT)
(Escribir el programa de ejemplo que está en el curso en este punto específico, para ver una muestra de algunos eventos)
3 – El navegador de eventos:
El navegador de objetos corresponde a la transacción SE80, cuando aparezca la ventana del navegador, nosotros siempre vamos a tener seleccionado Browser de Repository.
Tenemos una lista desplegable a la izquierda de la pantalla, que nos permite seleccionar el tipo de objeto que vamos a utilizar (programa, paquete, grupo de funciones, etc.)
.Jerarquía de aplicaciones: con esta opción puedo crear todos los elementos de la lista desplegable
Lección 2 – El Debugger de ABAP
1 – El Debugger de ABAP:
Deugger es una herramienta para el análisis y la solución de problemas. Se utiliza para ejecutar programas paso a paso y en ese proceso verificar la lógica, contenido de variables, tablas internas, variables del sistema, memoria, etc.
Se accede mediante la transacción SE38 y se puede configurar alguna de las dos versiones disponibles, desde el menú Utilidades / Opciones
Para hacer debuggin se utilizan breakpoints, los cuales se deben insertar en el código fuente del programa.
Breakpoint es un punto de interrupción que se pone en el código fuente, de tal forma que cuando la ejecución del programa llegue a ese punto, se detendrá y podremos analizar su estado en ese momento, justo antes de ejecutar esa línea de código.
Pueden ser:
Estáticos, se escribe el comando Break-Point
Dinámicos, de los cuales tenemos tres tipos:
De debugger (doble clic a la izquierda de una línea particular en código ABAP o a través del icono STOP. Se borran al cerrar el Debugger).
De sesión (solo válidos para la sesión actual, son independientes del usuario SAP que los coloque. Para colocar uno de estos pulsar sobre el botón STOP/Monitor del Debugger. Una vez colocado aparecerá en la barra de status "Sesión de breakpoint fijada").
Externos (son válidos para cualquier aplicación que se ejecute en el sistema, tienen una validez de 2 horas y se asocian a un usuario SAP en particular. Para colocar uno de estos se debe pulsar sobre el botón STOP/Usuario del Debugger).
Una vez colocado un breakpoint de cualquier tipo, se abre un nuevo modo de SAP en donde se visualiza el debugger ABAP.
Una vez que estamos ejecutando el programa en modo debugg, tenemos cuatro opciones para avanzar con la ejecución:
F5: ejecución paso a paso
F6: Ejecuta subrutina a subrutina sin entrar en el contenido de c/u
F7: retorna a la subrutina de nivel superior de la subrutina actual
F8: continúa con la ejecución hasta el final del programa
Para visualizar el contenido de una variable en modo debuggin hacemos doble clic sobre la variable y luego vamos a visualizar a la derecha de la pantalla, allí pulsando sobre el lápiz podemos modificar el valor de la variable, luego dando ENTER, se carga ese valor modificado en la variable.
Watchpoint: Es parecido a un breakpoint pero se activa solo cuando cambia el contenido de un campo especificado.
Como los break-points dinámicos, son específicos del usuario y no afectan a otros usuarios. Solo se pueden activar desde el debugger de ABAP.
Para insertarlo se debe pulsar el boton Watchpoint en la barra de Herramientas, luego de esto se debe especificar el nombre de la variable y si hay la condición (valor) que se debe cumplir para que se ejecute el Watchpoint.
El modo debuggin se puede activar estando en el código del programa, se escribe el comando /H y luego se ejecuta el programa F8
Lección 3 – La Declaración de Datos
1 – Los Tipos de Datos de SAP:
ABAP es un lenguaje tipado, y vamos a necesitar crear tipos de datos ya que los programas utilizan variables, constantes y otros objetos para almacenar los datos a utilizar.
Como lenguaje tipado, cada variable que utilizamos en ABAP tiene un tipo específico, y solo puede contener datos que correspondan a ese tipo de datos.
El lenguaje de programación ABAP divide los tipos de datos en dos grupos:
Tipos Completos y Tipos Incompletos.
Completos: la longitud del dato ya está establecida por el sistema estándar
Incompletos: la longitud del dato la fija en el momento de declarar la variable.
Dentro de los Completos tenemos 8 tipos.
D: Date AAAAMMDD
T: Time HHMMSS
I: Integer Numero de 4 bytes
F: Flotante Numero de 8 bytes
DECFLOAT16 Y DECFLOAT34: Numero decimal de punto flotante de una longitud de 8 y 16 bytes respectivamente
STRING: Carácter de longitud dinámica
XSTRING: Secuencias de bytes de longitud dinámica (cadena hexadecimal)
Dentro de los Incompletos tenemos 4 tipos (a los cuales hay que especificar la longitud fija)
C: Carácter
N: Número
X: Secuencia de bytes (cadena hexadecimal)
P: Números Empaquetados, también es posible especificar la cantidad de puntos decimales
Para declarar una variable en ABAP se utilizan las palabras reservadas: DATA y TYPE
Ej. : DATA: vfecha TYPE d.
Para asignar un valor a una variable o constante, se utiliza la palabra VALUE:
DATA: vfecha TYPE d VALUE ‘20220725’.
DATA vhora TYPE t VALUE ’18:34:00’.
DATA vcantidad TYPE i VALUE ‘1000’.
DATA vnombre(30) TYPE c VALUE ‘Juan Domingo’.
En las variables de tipo c, si no se especifica la longitud, el sistema asumirá que la longitud es de 1 carácter
DATA vtelefono(10) TYPE n VALUE ‘2616353535’.
DATA vtipo TYPE p DECIMALS 11 VALUE ‘3.12345678911’.
Otra forma de declarar variables utilizando TYPE consiste en asignarle a la variable un tipo de datos ya existente en el Diccionario de Datos de SAP:
DATA vnumero TYPE kunnr.
(kunnr es número de cliente en el Diccionario de Datos de SAP. Si hacemos doble clic sobre el tipo KUNNR vamos a visualizar su definición en el Diccionario de Datos)
También podemos declarar una variable que sea igual a otro tipo de datos de otra variable ya creadas en el sistema, para eso utilizamos la palabra LIKE:
DATA vcarrid LIKE sflight_carrid.
(La tabla SFLIGHT es standard del Sistema SAP y contiene información sobre vuelos y que generalmente se utiliza para pruebas o demo)
2 – Las Estructuras de Datos:
Los datos declarados anteriormente son datos simples, pero también existen datos compuestos por varios tipos de datos diferentes, como por ejemplo las Estructuras (puede estar formado por campos relacionados, otras estructuras o inclusive tablas).
Las estructuras por lo general se utilizan cuando trabajamos con tablas internas (son tablas en memoria que permiten guardar gran cantidad de datos organizados en campos con la misma estructura. Cuando termina la ejecución del programa, los datos de estas tablas se pierden.
Existen cuatro formas de declarar una Estructura en un programa ABAP:
.Utilizando la palabra clave DATA. En el ejemplo se declarara una estructura que tendrá los mismos campos que tiene la tabla SFLIGHT:
DATA: wa_vuelos TYPE sflight.
. En la segunda forma vamos a declarar una estructura con solo ciertos campos de la tabla:
DATA: BEGIN OF wa_vuelos,
carrid TYPE s_carr_id, ‘denaminacion breve de la compañia
connid TYPE s_conn_id, ‘codigo de conexion de vuelo
fldate TYPE s_date, ‘fecha del vuelo
END OF wa_vuelos.
. En la tercera forma podemos declarar la estructura tal como en la forma anterior, pero utilizando los tipos de datos completos o incompletos estándar de SAP:
DATA: BEGIN OF wa_vuelos,
Carrid(3) TYPE c, ‘denaminacion breve de la compañia
connid (4) TYPE n, ‘codigo de conexion de vuelo
fldate TYPE d, ‘fecha del vuelo
END OF wa_vuelos.
. En la cuarta forma declaramos una estructura utilizando TYPES (TIPOS) que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el código:
TYPES: BEGIN OF ty_vuelos,
carrid TYPE s_carr_id, ‘denaminacion breve de la compañia
connid TYPE s_conn_id, ‘codigo de conexion de vuelo
fldate TYPE s_date, ‘fecha del vuelo
END OF ty_vuelos.
DATA: wa_vuelos TYPE ty_vuelos
3 – Las Constantes:
Es una variable que se declara dentro de un programa y cuyo valor permanecerá constante a lo largo de la ejecución del programa.
Para declarar una constante se utiliza la palabra reservada CONSTANTS y debemos especificar el tipo de dato y el valor.
Si declaramos una constante de tipo de datos incompleto, debemos especificar la longitud:
CONSTANTS: vc_x(1) TYPE c VALUE ‘X’.
Si declaramos una constant de tipo de datos complete:
CONSTANTS: vnombre TYPE string VALUE ‘Daniel’.
Utilizar constants en lugar de textos entre comillas, es una buena práctica de programación.
4 – Los Include de Datos y de Subrutinas:
Es un tipo de programa u objeto ABAP que se utiliza para modularizar los programas grandes, para que estos sean más legibles y mantenibles.
Esto se llama modularizacion del código
Hay dos tipos de Include: de Datos y de Subrutinas.
Para crear un Include, luego de la sentencia REPORT, se debe utilizar la palabra INCLUDE seguida del nombre del include de datos:
REPORT z_programa.
INCLUIDE z_programa_datos. (Como regla copiar el nombre del programa y agregar _datos)
(Para el caso de Include de subrutinas agregar _sub)
Al hacer clic sobre z_programa_datos el sistema nos preguntara si queremos crea el include de datos. Aquí veremos una ventana de diálogo que nos muestra el objeto que será creado, donde podremos modificar el titulo por defecto y en tipo debemos verificar que estamos creando un programa de tipo Include. Luego hacemos clic en Grabar. A continuación le asignamos un paquete al Include y grabamos.
Creamos una Orden de Transporte y la asociamos al Include de datos.
En este punto aparecerá en el editor de ABAP el programa Include z_programa_datos que estábamos creando, para que empecemos a declarar los datos que necesitamos (variables, constantes, estructuras, etc.).
Usar INCLUDE es considerado una buena práctica de programación.
5 – Las Variables del Sistema:
Además de las variables que define el programador, existen otras variables que han sido definidas por el sistema y son de gran utilidad. Se encuentran en la tabla base de datos SYST, y contienen información que va desde la hora del sistema hasta si se ejecutó correctamente una sentencia. Sus contenidos no se pueden modificar en los programas, solo cambian con la ejecución de los mismos.
Las variables más comunes del sistema son:
SY-SUBRC indica si se ejecutó correctamente una sentencia ABAP 0=si 1=no
SY-DATUM indica la fecha del sistema en formato AAAAMMDD
SY-UZEIT indica la hora del sistema en formato HHMMSS
SY-TABIX contiene el índice de una tabla interna (uno de los casos donde se utiliza es en los bucles LOOP)
Lección 4 – La Gestión de Versiones
1 - La Gestión de Versiones de ABAP:
Cuando creamos un programa u objeto en SAP, o modificamos uno existente, se genera una nueva versión del objeto. Esta nueva versión del programa u objeto está asociada a una Orden de Transporte, que vamos a utilizar para transportarlo a otro ambiente (Testing o Producción).
Si modificamos el programa u objeto luego de haber liberado la orden de transporte, el sistema nos pedirá asociar la modificación a una nueva orden de transporte.
Dentro de la transacción SE38 está la herramienta de Gestión de Versiones de ABAP (dentro del menú Utilidades / Versiones), allí veremos todas las versiones existentes, la versión activa y distintas funcionalidades.
Cada versión tiene asociado un número que comienza con 00001, además la versión de SAP, la Orden de Transporte asociada, la fecha y hora de creación y el usuario de SAP que creo la versión.
La versión activa, por lo general es la última.
Funcionalidades:
.Visualizar, hay que tildar la versión que queremos ver, y des tildar las otras. Solo se puede ver una a la vez.
.Comparar, nos permite comparar el código ABAP de dos versiones diferentes del mismo objeto. En este caso tildamos las dos versiones a comparar y luego pulsamos Comparar, el sistema nos indicara las diferencias.
.Rescatar, permite pisar o sobre escribir la versión actual del objeto SAP por la versión del objeto que hayamos tildado. Esto es útil cuando ya hemos hecho modificaciones en un programa, y se decide no implementar las modificaciones y volver atrás. En este caso se tilda la versión del programa a la que queremos volver y luego se pulsa el botón Rescatar.
Lección 5 – El Procesamiento De Los Datos
1 - La Inicialización de las variables:
Cuando en un programa ABAP trabajamos con variables, primero las declaramos y luego debemos inicializarlas o blanquearlas, es decir, antes de usarlas debemos asegurarnos que su contenido este vacio.
Para esto se utiliza la sentencia CLEAR
CLEAR v_fecha.
o
CLEAR v_fecha2.
CLEAR v_fecha3.
CLEAR v_fecha4.
o
CLEAR: v_fecha, v_fecha2, v_fecha3.
Dependiendo del tipo de variable declarada, al limpiarlas con CLEAR el contenido inicial varía:
Fecha ‘00000000’ hora ‘000000’ caracter ‘ ‘ string ‘ ‘ numérico(13) ‘0000000000000’
La sentencia IS INITIAL nos sirve para consultar si el contenido de una variable es inicial (vacío) o no.
IF v_fecha IS INITIAL.
WRITE ‘La fecha esta vacia’.
ENDIF.
Esta sentencia es útil cuando trabajamos con Tablas Internas.
2 - La asignación de valores a las variables:
Luego de declarar las variables e inicializarlas, debemos asignarles un valor:
v_cantidad2 = V_cantidad1.
MOVE v_cantidad1 TO v_cantidad2.
3 - La referencia de utilización de las variables:
La Referencia de Utilización de Las Variables, se utiliza para saber en qué partes de un programa extenso de ABAP se utilizó una determinada variable.
Hay dos formas de acceder a esto:
.Seleccionamos la variable a consultar (dentro del programa ABAP) y pulsamos el icono de Referencia de Utilización (un cuadro con tres flechas) en la barra de Herramientas del editor de ABAP, luego tildamos donde deseamos buscar la referencia, y el sistema nos mostrara donde se utiliza.
.Hacemos doble clic sobre la variable en el programa y el sistema nos llevara a la declaración de la variable, y volvemos a hacer doble clic sobre ella. Como en la forma anterior, tildamos donde deseamos buscar la referencia, y el sistema nos mostrara donde se utiliza.
4 - Las operaciones con caracteres:
Sentencias para tratar caracteres:
CONCATENATE, concatena varios campos alfanuméricos
CONCATENATE v_campo1 v_campo2 INTO v_campo SEPARATED BY ‘,’.
También se puede usar para trabajar con un solo campo y concatenar parte del mismo, para separar las partes con algún carácter, ejemplo un punto.
Con SEPARATED BY se puede utilizar un campo alfanumérico que se utilizara para separar los campos.
TRANSLATE, se utiliza para convertir a mayúsculas o minúsculas y sustitución de caracteres.
REPLACE, reemplaza cierta parte de una cadena por otra cadena de caracteres.
SPLIT, divide un campo alfanumérico en varios campos por un separador.
SHIFT, desplaza el contenido de un campo alfanumérico, hasta un string dado.
SEARCH, busca una cadena de caracteres dentro de un campo alfanumérico. Si lo encuentra la variable SY-SUBRC es 0, si no es 4.
También se puede utilizar el reporte estándar: rsrscan1
CONDENSE, elimina espacios en blanco en campos alfanuméricos.
5 - Las operaciones aritméticas:
Las cuatro operaciones aritméticas básicas se pueden implementar de dos maneras diferentes:
v_1 = v_2 + v_3
COMPUTE v_1 = v:2 + v_3
ADD 1 TO v_num.
SUBTRACT 1 FROM v:num.
MULTIPLY v_num BY 2.
DIVIDE v_num BY 2.
Lección 6 – El Control Del Flujo de Datos
1 - Las condiciones:
Consisten en la ejecución de una o varias sentencias, en base al cumplimiento, o no, de una determinada expresión lógica. Estas pueden ser verdaderas o falsas.
IF condición.
Sentencia1.
ELSE.
Sentencia2.
ENDIF.
IF anidados: (no es considerado una buena práctica de programación)
IF condición >9
Sentencia1.
ELSEIF condición BETWEEN 4 AND 6.
Sentencia2
ELSEIF condición BETWEEN 7 AND 8.
Sentencia3
ELSE.
Sentencia2.
ENDIF.
Otra forma de representar condiciones:
CASE variable.
WHEN ‘10’.
WRITE ‘resultado1’.
WHEN ‘7’.
WRITE ‘resultado2’.
WHEN ‘8’
WRITE ‘resultado 3’.
WHEN OTHERS.
WRITE ‘otros resultados’.
ENDCASE.
Operadores Logicos: AND OR EQ NE GT LT GE LE
= <> > < >= <=
2 - Los bucles:
Bucle o Ciclo secuencia de instrucciones de código que se ejecuta repetidas veces, hasta que la condición asignada deje de cumplirse.
LOOP – ENDLOOP lo utilizaremos exclusivamente cuando trabajamos con tablas internas. Ej:
Recorreremos la tabla interna ti_salida y lo vamos a almacenar en la estructura wa_salida
LOOP AT ti_salida INTO wa_salida.
WRITE:/ wa_salida-codigo.
wa_salida-nombre.
Wa_salida-apellido.
ENDLOOP.
Con el agregado de la cláusula WHERE se puede restringir el número de líneas a leer:
LOOP At ti_salida INTO wa_salida WHERE codigo > 100.
La utilizaciondel WHERE es considerada una Buena práctica de programación.
DO – ENDDO lo utilizaremos para trabajar con variables y no con tablas internas. Ej:
DO 5 TIMES.
ADD 1 TO variable.
WRITE:/ variable.
ENDDO.
3 - Las sentencias de control:
Se utilizan para terminar el procesamiento de un bucle, de una subrutina o de todo un programa.
CHECK verifica si la condición es verdadera
CHECK sy-surc EQ 0. (si esta condición esta en un bucle LOOP y es verdadera, saltara del LOOP y ejecutara la siguiente sentencia al bucle.
EXIT si ejecutamos esta sentencia dentro de un bucle saldremos del bucle, o dentro de una subrutina saldremos de la subrutina.
IF sy-subrc = 0.
EXIT.
ENDIF.
CONTINUE se utiliza solo dentro de un bucle. Luego de esta sentencia el programa continua con la siguiente iteración del bucle.
DO 5 TIMES.
ADD 1 TO variable.
IF variable = 5.
WRITE:/ variable.
ELSE.
CONTINUE.
ENDIF.
ENDDO
STOP finaliza el programa en ejecucion pero antes se ejecuta el evento END-OF-SELECTION, si es que esta escrito.
IF sy-subrc = 0.
STOP.
ENDIF.
LEAVE finaliza el programa en ejecución y no se ejecuta el evento END-OF-SELECTION
IF sy-subrc = 0.
LEAVE.
ENDIF.
Hay que ser cuidadosos con las sentencias de control, ya que alteran el flujo de control de un programa ABAP.
Lección 7 – El Formato De Salida De Los Datos
1 – El formato de salida de los datos:
Generan reportes de manera sencilla, la más popular es WRITE
WRITE:/ <offset> (<long>) ‘textos a visualizar’.
:/ salto de línea
<offset> columna donde comienza la impression
(<long>) longitud de impresión
WRITE ‘Este es mi primer programa’
WRITE:/20(35)'fin primera parte', v_fecha.
Comando adiciones de WRITE:
LEFT-JUSTIFIED
CENTER
RIGHT-JUSTIFIED
NO-ZERO
NO-GAPS el blanco después del campo que se desea imprimir es omitido
NO-SIGN el signo no aparece en la salida
DECIMALS n define el numero de dígitos decimales
ROUND n redondea el campo de salida para los tipos p
DD/MM/YYYY fecha con separadores
Ejemplo:
WRITE:/20(35)'fin primera parte', v_fecha DD/MM/YYYY, v_legajo no-zero.
NEW-PAGE salta una página.
SKIP n salta n cantidad de líneas, en lugar de write/5
Hay eventos dentro de un programa ABAP destinados especialmente a darle formato a la salida de un reporte, ya sea por pantalla o impresora.
TOP-OF-PAGE cambia la cabecera de una página.
Ej:
TOP-OF-PAGE.
WRITE:/ ‘Cabecera de la página’.
ULINE.
START-OF-SELECTION.
END-OF-PAGE imprime por pantalla los datos, de modo de separar la impresión del procesamiento de datos. Se ejecuta luego de START-OF-SELECTION
Ej:
END-OF-SELECTIOM.
WRITE:/ ‘Se mostro un registro’.
NO STANDARD PAGE HEADING LINE-SIZE con esta sentencia podemos modificar la cantidad de líneas y columnas en la pantalla. Se utiliza a la derecha del comando REPORT.
Ej:
REPORT z_report1 NO STANDARD PAGE HEADING LINE-SIZE 200 cantidad de lineas
LINE-COUNT cantidad de columnas
SY-VLINE antes o despues de un campo, texto o variable, imprime una linea vertical.
El comando ULINE (solo en una línea de programa, imprime una línea horizontal en el ancho de la pantalla.
EJ:
WRITE :/.
ULINE.
WRITE:/1 sy-vline,
'fin primera parte',
sy-vline,
v_fecha.
ULINE.
Lección 8 – La Pantalla De Selección
1 – Los parámetros de selección:
Son delimitadores a nuestro programa para que solo se ejecute para ciertos datos que el usuario introducirá en la pantalla.
Para esto debemos crear una PANTALLA DE SELECCIÓN para nuestro reporte, por lo general se escribe despues de la declaración de datos, dentro del Include de declaración de datos.
La PANTALLA DE SELECCIÓN va a estar compuesta por parámetros de entrada de datos, básicamente existen dos tipos de parámetros:
Los PARAMETER en los cuales el usuario podrá ingresar valores individuales.
Los SELECT-OPTIONS en donde el usuario podrá ingresar rangos de valores.
Ej:
PARAMETER <nombre-parametro> TYPE o LIKE <tipo de parámetro>.
PARAMETERs: p_fecha LIKE sy-datum,
P_nombre(10) TYPE c.
La longitud máxima del nombre de un parámetro es de 8 caracteres.
En la pantalla de selección, y así como está el comando anterior, en el nombre del primer dato a ingresar aparecerá p_fecha, para evitar esto crearemos los llamados TEXTOS DE SELECCIÓN, para cada parametro de selección:
Menú PASAR A / ELEMENTOS DE TEXTO / TEXTOS DE SELECCIÓN
Agregados para PARAMETERS:
OBLIGATORY, parámetro obligatorio, se mostrara con un tilde al costado, lo cual indica que es obligatorio.
DEFAULT, asigna un valor por defecto al parámetro.
Ej:
PARAMETERS: p_fecha LIKE sy-datum OBLIGATORY,
P_fecha2 DEFAULT sy-datum,
P_nombre(10) TYPE C OBLIGATORY,
P_list AS CHECKBOX,
P_Mendoza RADIOBUTTON GROUP bo2,
P_San_Luis RADIOBUTTON GROUP bo2.
SELECT-OPTIONS, permiten ingresar rangos de valores, o sea desde y hasta un valor, ademas de valores individuales:
SELECT-OPTIONS <nombre_parametro> FOR <tipo_parametro>.
Ej:
DATA: v_clavep TYPE land1_gp.
SELECT-OPTIONS s_clavep FOR v_clavep. ‘‘clace de Pais
FRAME, encuadra los parametros de la pantalla de seleccion
Ej:
SELECTON-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
…
SELECTION-SCREEN END OF BLOCK b1.
Lección9 – El Evento AT SELECTION-SCREEN y Los Tipos de Mensajes
1 –Los Tipos de Mensajes:
Existen diferentes tipos de mensajes que podemos utilizar, según una situación en particular, ocurrencia de un programa. Los tipos son:
S Éxito Se visualiza en la barra de estado (abajo).Luego de su ejecución el procesamiento del programa continua. A la izquierda del texto aparece un icono verde con un tilde
I Información Mostrara una ventana de dialogo para que el usuario interactúe. Se pausar el procesamiento hasta que interactúe el usuario. Al costado del texto se muestra un icono de información
E Error Produce la terminación del procesamiento de la pantalla de selección. A la izquierda del texto se muestra un icono de color rojo con el signo de exclamación
W Warning-advertencia Se muestran en la barra de status de la pantalla, son similares a los mensajes de error, con la excepción que el usuario puede saltear este tipo de mensajes presionando Enter. A la izquierda del texto se muestra un icono rojo con un signo de exclamación.
A Terminación Se muestran en una ventana de dialogo dentro de la pantalla y termina el programa. A la izquierda del texto se muestra la imagen de STOP
X Dump o error en tiempo de ejecución Es un error en tiempo de ejecucion que interrumpe el procesamiento del programa, no se puede utilizar intencionalmente en los programas ABAP, si que ocurre cuando se produce un error no contemplado en la lógica del programa, ej división oir cero.
2 –Las Clases de Mensajes:
Para poder trabajar con mensajes en los programas ABAP, necesitamos primero crear una CLASE DE MENSAJES.
Es un objeto que se utiliza para almacenar todos los mensajes relativos a un proyecto o transacción.
Para crear esta clase utilizamos la transacción SE91, por ejemplo podemos crear la clase Z_CLASE-TEST
Una vez creada la clase de mensaje (el cual es un objeto independiente del programa que necesita ser activado, para luego ser transportado.
En el programa utilizaremos la sentencia MESSEGE para emitir mensajes:
MESSAGE E001(ZCLASE_MENSAJE) WITH <parametroi1><parametro2>
E tipo de mensaje
001 numero del mensaje
(ZCLASE clase del mensaje
Los parámetros son opcionales
En el programa vamos a declarar el evento AT SELECTIOM-SCREEN y allí escribiremos el código correspondiente para ejecutar la validación:
AT SELECTION-SCREEN.
IF p_fecha < sy-datum.
MESSAGE e001(z_clase_test).
ENDIF.
Dentro de los mensajes se pueden mostrar el contenido de variables, o parte texto y parte parámetros.
3 –El evento AT SELECTION-SCREEN:
Se utiliza para validar los datos introducidos en los parámetros de la pantalla de selección, cuestión que no sucede con otros eventos de un programa ABAP.
Todo esto tiene sentido para los programa ABAP que se ejecutan en forma online, o sea, hay interacción con el usuario.
Para poder cumplir con esto vamos a declarar un evento AT SELECTION-SCREEN ON para cada uno de los parámetros que deseamos validar. Ej:
AT SELECTION-SCREEN ON p_fecha.
Instrucciones de validación.
AT SELECTION-SCREEN ON p_nombre.
Instrucciones de validation.
Lección 10 – Social Break - Seminario de Inserción Laboral SAP
Leer, analizar, recordar y poner en práctica todos los consejos dados en esta lección, pensando en futuro.
 
 
 
Sobre el autor
Publicación académica de Daniel Eliseo Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Daniel Eliseo Perez
Profesión: Pycg - Argentina - Legajo: EG88F
✒️Autor de: 5 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Me gusta aprender y que ese conocimiento sirva como crecimiento personal, profesional y de utilidad para mi lugar de trabajo y el equipo de trabajo.
Certificación Académica de Daniel Perez