Manual-CVOSOFT-Curso-Programador-ABAP-Nivel-Inicial-Completo.pdf

July 5, 2018 | Author: Alvaro Villegas | Category: N/A
Share Embed Donate


Short Description

Download Manual-CVOSOFT-Curso-Programador-ABAP-Nivel-Inicial-Completo.pdf...

Description

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

1

Manual de estudios Curso Programador ABAP Nivel Inicial

Presentación módulo:

Programador ABAP Nivel Inicial CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

1 2

Manual de estudios Curso Programador ABAP Nivel Inicial

MÓDULO: PROGRAMADOR ABAP NIVEL INICIAL

Domina el lenguaje de programación mejor pago del mercado Aprende de una manera fácil y rápida desde tu casa Adquiere un conocimiento que te proporcione una inserción laboral rápida y efectiva Trabaja en empresas de primer nivel Prepárate para rendir la Certificación SAP ABAP C_TAW12_70

1.1 | Objetivos El objetivo del módulo de estudios es que el alumno adquiera todos los conocimientos iniciales necesarios para el desarrollo de aplicaciones ABAP dentro de un entorno de trabajo SAP.

1.2 | Requisitos Conocimientos básicos sobre manejo de PC y muchas ganas de aprender.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

2 3

Manual de estudios Curso Programador ABAP Nivel Inicial

1.3 | Unidades del Plan de estudio Unidad 1: Introducción a ABAP y a SAP Unidad 2: Declaración y Procesamiento de datos Unidad 3: Diccionario de datos Unidad 4: Subrutinas, Funciones y Batch Unidad 5: Reportes Unidad 6: Tratamiento de Archivos y Field Symbols Unidad 7: Batch Input vs Bapis y Temas avanzados Unidad 8: Entrega de Materiales y Bibliografía

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

3 4

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

4 5

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 1: Introducción a SAP y a ABAP Introducción a SAP y ABAP Curso: Programador ABAP Nivel Inicial

CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

6

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

MODULO: Programador ABAP Nivel Inicial UNIDAD: Introducción a SAP y ABAP Presentación e Inicio de Unidad Introducción a SAP y a ABAP

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

7

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

8

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

9

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

10

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

11

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Instalación de SAPNetWeaver Analizaremos detalladamente cada uno de los pasos necesarios para realizar la instalación de SAPNETWEAVER en nuestro equipo. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP

CVOSOFT IT Academy - Formación en Sistemas.

SAPNetWeaver es una versión reducida de SAP que es perfecta para empezar a aprender la programación en ABAP, entre otros temas. La licencia inicial de SAPNetWeaver es por 30 días pero puede extenderse. Esto lo explicaremos más adelante en el curso.

Vamos a descargar el SAPNetWeaver de la SDN, pero previamente a la descarga debemos registrarnos como usuarios.

Una vez registrados, se nos enviará a nuestro correo personal un mail con el usuario y password. La password podemos cambiarla una vez logueados a la SDN. Ahora sí, estamos listos para descargar el SAPNetweaver y lo haremos desde el link que mostramos a continuación. Aquí descargaremos dos archivos de más de 3GB de tamaño entre los dos, que deberemos descargar en una misma carpeta en nuestro disco rígido.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

12

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - Distintas versiones de SAPNetWeaver

Será necesario instalar la JRE en caso de no estar instalada en la máquina. Para esto, accederemos al sitio oficial de Sun Microsystems, seleccionaremos la plataforma que en nuestro caso será Windows y el lenguaje que será Multilenguaje. Finalmente, descargaremos el programa en nuestra maquina y luego lo ejecutamos.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

13

Manual de estudios Curso Programador ABAP Nivel Inicial

Para descomprimir los archivos de instalación de SAPNetWeaver necesitaremos del programa Winrar.

Los requerimientos de la PC para realizar la instalación de SAPNetweaver son: Tener instalada la JRE 1.4.2.x Windows XP Profesional Service Pack 2, Windows Server 2003 o Windows Vista.

El Hostname no debe tener más de 13 caracteres

Imagen 3.1 - Hostname del equipo donde instalaremos SAPNetWeaver

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

14

Manual de estudios Curso Programador ABAP Nivel Inicial

El Filesystem debe ser NTFS

Imagen 3.2 - FileSystem del equipo donde instalaremos SAPNetWeaver

En caso de no tener un sistema NTFS será necesario convertirlo utilizando el procedimiento que se puede descargar del área de descargas de la lección. Internet Explorer 5.5 o superior o Firefox 1.0 o superior Mínimo 2GB de memoria RAM Mínimo Procesador Intel Pentium III 1.1 GHz o superior (o procesador compatible) Mínimo 30 GB de espacio libre en el disco rígido (24GB permanentes libres) Resolución del monitor (1024*768 o superior a 256 colores) Estar seguro que no existan otros sistemas SAP instalados en la máquina

El sistema SAP requiere de muchos puertos para servicios de comunicación. Por lo tanto, previamente a la instalación chequear que el archivo Windows/System32/drivers/etc/services no tenga entradas para los puertos 3200, 3600 y 8000. Si existen deben comentarse colocando un # delante de la línea. Para instalar y utilizar el sistema, hay que estar logueado como administrador Si se utiliza un servidor DHCP para asignar dinámicamente la dirección IP de la máquina, no será necesario instalar ningún agregado. Caso contrario, o si la máquina no se conecta a internet, se deberá instalar el Ms LoopBack Adapter. El procedimiento de instalación del Ms LoopBack Adapter

está documentado dentro de la

documentación de la instalación y lo comentamos en los siguientes puntos de la lección.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

15

Manual de estudios Curso Programador ABAP Nivel Inicial

Desactivar el firewall de windows y el antivirus que tengamos instalado Es recomendable desactivar el firewall de windows y des-instalar el antivirus que tenemos instalado.

Servicio “Servidor” de nombre lanmanserver funcionando Asegurarse que este servicio está activo y funcionando ya que sino la instalación falla. Debe estar fijado en modo de inicio automático.

Imagen 4.1 - Servicio lanmanserver activo y funcionando

Aumentar el tamaño de la memoria virtual del equipo Para ello utilizar el Procedimiento para aumentar la memoria virtual del equipo que está disponible en la sección de descargas de la lección.

Usuario del sistema como Administrador y con password El usuario con el que accedemos a Windows debe tener permisos de administrador y contraseña. Es importante ya que la consola de SAP trabajará con este usuario y con su contraseña. Si no la fijamos la consola fallará.

Generar un punto de restauración en Windows previo a la realización de la instalación para realizar la vuelva atrás en caso de error. Este procedimiento lo explicamos en la sección de descargas de la lección.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

16

Manual de estudios Curso Programador ABAP Nivel Inicial

Antes de comenzar con el procedimiento formal de la instalación del sistema consultaremos la documentación oficial que viene con los archivos que previamente descargamos en nuestra máquina. Lo primero que haremos será ejecutar el primero de los dos archivos de instalación, y dentro de los archivos que se descomprimen, haremos doble clic en el archivo START.htm.

Imagen 5.1 - Archivos que componen los ejecutables de SAPNetWeaver

Luego de unos minutos, veremos la siguiente pantalla de bienvenida:

Imagen 5.2 - Bienvenido a la Instalación de SAPNetWeaver

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

17

Manual de estudios Curso Programador ABAP Nivel Inicial

Presionamos Next y vemos la siguiente pantalla What to expect:

Imagen 5.3 - Qué esperar acerca del producto

Presionamos Next y vemos la pantalla de requisitos para que el sistema funcione. En el último punto de esta pantalla figura el paso a paso para la instalación del MS LoopBack Adapter sólo en caso de tener configurada una IP fija en la computadora.

Imagen 5.4 - Requisitos para que el sistema funcione

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

18

Manual de estudios Curso Programador ABAP Nivel Inicial

Presionamos Next y vemos la siguiente pantalla donde figura la dirección web para renovar la licencia.

Imagen 5.5 - Donde renovar la licencia de SAPNetWeaver

Presionamos Next y veremos la pantalla con la explicación del procedimiento de instalación.

Imagen 5.6 - Pasos a llevar acabo la instalación de SAPNetweaver

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

19

Manual de estudios Curso Programador ABAP Nivel Inicial

La instalación del SAPNetWeaver consiste en la instalación del servidor de aplicaciones y del SAPGUI que es la interfase gráfica que nos va a permitir acceder al sistema SAP.

Los pasos para la instalación son los siguientes: Debemos colocar, si no lo hemos hecho antes, los dos archivos ejecutables dentro de una misma carpeta.

Instalación del servidor de aplicación:

Imagen 6.1 - Archivos que componen el ejecutable del servidor de aplicación

Veremos la siguiente pantalla donde seleccionaremos la opción SAP Netweaver 7.0 SR1 including Enhacement Package 1/SAP Application Server ABAP/MaxDB/Central System/Central System y presionamos Next.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

20

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.2 - Elegimos el escenario a instalar

Luego leemos y aceptamos la licencia del producto.

Imagen 6.3 - Acuerdo de licencia para la instalación de SAPNetWeaver

En caso de no tener instalada la JRE veremos la siguiente pantalla. Aquí tendremos que utilizar el browser para colocar la ruta donde se encuentra la carpeta de la JRE.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

21

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.4 - Instalación de la JRE

Luego debo elegir un nombre para el SAPSID y presiono Next.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

22

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.5 - Elegimos un nombre para el sistema SAP

En la siguiente pantalla, simplemente presionamos el botón Next sin ingresar datos.

Imagen 6.6 - Sistema DNS de SAP

Ahora ingresamos la password master para todos los usuarios. Si presionamos F1 sobre el campo veremos las condiciones que debe cumplir la password.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

23

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.7 - Ingresamos la password master

En la siguiente pantalla, el programa de instalación evaluará si la configuración de nuestra computadora cumple con los pre-requisitos para la instalación. Seguramente habrá alguno o más puntos que no cumplamos. Igual así, seguiremos adelante con la instalación presionando el botón Cancel.

Imagen 6.8 - Pre-requisitos que no cumple nuestro equipo ©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

24

Manual de estudios Curso Programador ABAP Nivel Inicial

Luego veremos la siguiente pantalla para la instalación del SAP CRYPTOGRAPHIC SOFTWARE. Simplemente presionamos el botón Next.

Imagen 6.9 - Instalación del software Criptográfico de SAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

25

Manual de estudios Curso Programador ABAP Nivel Inicial

En la siguiente pantalla vemos un resumen de las configuraciones previamente realizadas. Presionamos Next.

Imagen 6.10 - Resumen de las configuraciones seleccionadas

Ahora sí, la instalación del servidor de aplicaciones ha comenzado.

Imagen 6.11 - Comenzó la instalación del servidor de aplicaciones

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

26

Manual de estudios Curso Programador ABAP Nivel Inicial

Luego de cuatro horas aproximadamente, dependiendo del equipo, si la instalación finalizó correctamente, veremos la siguiente ventana.

Imagen 6.12 - Finalizó correctamente la instalación del servidor de aplicaciones

Luego de finalizada la instalación del servidor de aplicación, veremos en nuestro escritorio el ícono del SAP Management Console.

Imagen 6.13 - Ícono del SAP Management Console

Instalación del SAP GUI Ahora vamos a instalar el SAP GUI. Para esto, tendremos que ejecutar el archivo

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

27

Manual de estudios Curso Programador ABAP Nivel Inicial

y veremos la siguiente pantalla.

Imagen 6.14 - Comenzamos la instalación del SAP GUI

Luego, en la siguiente pantalla, tildaremos a la izquierda del texto SAP GUI 7.10 C3 Trial y presionamos el botón Next.

Imagen 6.15 - Elegimos la versión a instalar del SAP GUI

Finalizada la instalación del SAP GUI, veremos en el escritorio de nuestra PC dos íconos nuevos, uno es el

TWEAK

SAP GUI el cual nos permitirá configurar ciertos aspectos no obligatorios de visualización de la pantalla y el otro es el SAP Logon el cual nos permitirá loguearnos al sistema SAP.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

28

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.16 - Íconos que se generan en el escritorio luego de la instalación del SAP GUI

Antes de poder tener acceso al sistema SAP, se tiene configurar una nueva entrada en el SAPLogon. Para

esto,

hacemos doble clic en el SAP Logon y veremos la siguiente pantalla.

Imagen 7.1 - SAP Logon

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

29

Manual de estudios Curso Programador ABAP Nivel Inicial

Presionamos el botón Nueva entrada y luego continuar y en la siguiente pantalla completamos los campos con los siguientes datos y después presionamos el botón Terminar.

Imagen 7.2 - Configurando el SAP Logon

Una vez que hayamos terminado la instalación del servidor de aplicaciones y el SAPGUI reiniciaremos nuestro equipo y al iniciarse veremos dos usuarios: uno es el del administrador que comúnmente utilizamos y el otro es el NSPADMIN que crea la instalación.

Para poder trabajar con el sistema SAP, cada vez que encendamos nuestra PC, debemos levantar el servidor de aplicaciones. Para ello, hacemos doble clic en el ícono SAP Management Console. Una vez abierta la aplicación, abrimos el menú NSP/Todas las tareas y presionamos Start.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

30

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 8.1 - Levantamos el servidor de aplicaciones cada vez que iniciamos la PC

Luego en la siguiente pantalla, se nos pedirá que ingresemos la password del usuario Administrador de Windows con el que instalamos la aplicación.

Imagen 8.2 - Ingresamos la password de administrador de Windows

Finalmente, si todo resulto bien, al cabo de un minuto o menos veremos en verde los procesos.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

31

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 8.3 - Servidor de aplicaciones activado

Es importante tener en cuenta las siguientes recomendaciones luego de realizada correctamente la instalación: No debemos actualizar la versión de la JRE a pesar de las recomendaciones de Windows.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

32

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

¿Qué es un sistema ERP? Aprenderemos que es un ERP, cuales son sus características, el mercado de los ERPs, cuales son los beneficios de utilizarlos, razones para que una empresa los implemente y las desventajas que presentan. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP

CVOSOFT IT Academy - Formación en Sistemas.

Las empresas cuentan con diferentes recursos: humanos, tecnológicos, materiales, financieros e información. A medida que estas crecen, el proceso de control de dichos recursos se hace complicado. Ante esta circunstancia, la tecnología de la información (TI) ofrece como solución la implementación de los sistemas ERP (Enterprise Resource Planning o Planeación de Recursos de la Empresa) .

Imagen 1.1 - Áreas que componen un sistema ERP

El propósito fundamental de un ERP es otorgar apoyo a los clientes del negocio, tiempos rápidos de respuesta a sus problemas, disminución de los costos totales de operación así como un eficiente manejo de información, la cual es unificada y ordenada en un solo lugar de modo de permitir la toma oportuna de decisiones y acortando los ciclos productivos.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

33

Manual de estudios Curso Programador ABAP Nivel Inicial

Los sistemas ERP no solo sirven para integrar varios departamentos de una empresa. Para verdaderamente ser considerado ERP, el sistema debe poseer algunas de las siguientes características fundamentales: Flexibilidad: un sistema ERP es flexible de tal manera que responde a las constantes transformaciones de las empresas. La tecnología cliente-servidor permite al sistema ERP operar sobre diferentes bases de datos por las conexiones de bases de datos abiertas, pues es muy probable que el mismo producto migre de un área de producción para otra durante el ciclo total de producción.

Modularidad: el sistema ERP es un sistema de arquitectura abierta, es decir, puede usar un módulo libremente sin que este afecte los restantes. El sistema soporta plataformas múltiples de hardware pues muchas empresas poseen sistemas heterogéneos. Debe también facilitar la expansión y/o adaptabilidad de otros módulos posteriormente.

Comprensivo: el sistema debe estar apto a soportar las diferentes estructuras organizacionales de las empresas, así como una vasta área de negocios.

Conectividad: el sistema no se debe confinar al espacio físico de la empresa y permitir la conexión con otras entidades pertenecientes al mismo grupo empresarial.

Selección de diferentes formas de negocio: debe contener una selección de las mejores prácticas de negocios en todo el planeta.

Simulación de la realidad: debe permitir la simulación de la realidad de la empresa en el computadora. De forma alguna el control del sistema debe estar fuera del proceso y debe ser posible la elaboración de informes para los usuarios que controlan el sistema.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

34

Manual de estudios Curso Programador ABAP Nivel Inicial

El mercado ofrece a las empresas opciones que varían no sólo en precio sino en integración, plataformas soportadas y funcionalidad. Antes de iniciar el proceso de selección es muy importante que la empresa tenga muy claro el objetivo por el cual está implantando un ERP y responda las siguientes preguntas: ¿Cuál es el resultado que se espera? ¿De cuánto tiempo dispone la empresa para alcanzar dicho objetivo? ¿Quiénes en la empresa conocen más a fondo los procesos? ¿Quiénes poseen la autoridad para modificar los procesos de uno u otro departamento?

En el siguiente gráfico podemos apreciar cuales son los tipos de industrias que más y menos implementan sistemas ERP:

Imagen 3.1 - Industrias que más implementan sistemas ERP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

35

Manual de estudios Curso Programador ABAP Nivel Inicial

Entre los ERP más conocidos se encuentran:

JD Edwards (Estados Unidos)

Oracle PeopleSoft (Estados Unidos)

Baan (Holanda)

R/3 (Alemania)

A continuación podemos ver una escala de la presencia en el mercado de los ERP mencionados anteriormente:

Imagen 3.2 - El mercado mundial de los sistemas ERP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

36

Manual de estudios Curso Programador ABAP Nivel Inicial

Varios son los puntos de vista en cuanto a los diferentes beneficios que se esperan en una implementación de un ERP, así como los impactos que este tendrá en la organización. Es importante mencionar que las diferentes marcas creadoras de software ERP tienen sus beneficios característicos. Sin embargo la mayoría de los ERP tienen en común varios beneficios. Algunos de ellos son: Solo un sistema para manejar muchos de sus procesos comerciales. Permiten la integración entre las funciones de las aplicaciones. Reducen los costos de la gerencia. Incrementan el retorno de inversión ROI. Son una fuente de Infraestructura abierta.

Imagen 5.1 - Razones por las cuales se implementa un sistema ERP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

37

Manual de estudios Curso Programador ABAP Nivel Inicial

Existen cinco razones por las cuales las empresas desean implementar un sistema ERP:

Integración de la información financiera: el CEO (Chief Executive Officer) siempre busca tener información financiera. En su búsqueda puede encontrarse con muchas versiones diferentes a la real. Cada departamento tiene por lo general sus propios números financieros, finanzas tiene su propio juego de números, el área de ventas tiene otra versión y las diferentes unidades comerciales de la empresa pueden tener sus números propios referente a cuanto están contribuyendo para la empresa. Con la implementación de los ERP todos tendrán solo una versión de los números, con esto no habrá vuelta de hojas, todo estará unificado.

Integración de la información de los pedidos de los clientes: con los sistemas ERP es posible centralizar y darle un seguimiento a los pedidos de los clientes, desde que se recibe el pedido hasta que se entrega la mercancía. Esto en lugar de tener varios sistemas los cuales se encarguen del seguimiento de los pedidos, ya que por lo regular se srcinan problemas de comunicación entre los sistemas. Con los ERPs esta tarea será más fácil.

Estandarizar y agilizar los procesos de manufacturación: los sistemas ERP vienen con los métodos estándares para automatizar algunos de los pasos de un proceso de fabricación. Estandarizar esos procesos y usar un solo sistema informático, integrado puede ahorrar tiempo, aumentar la productividad y reducir los costos.

Minimizar el inventario: los ERPs agilizan el flujo del proceso industrial más fácilmente, y mejoran la visibilidad del proceso de cumplimiento de orden por parte de la empresa. Eso puede srcinar que los inventarios sean reducidos y ayudar también a los usuarios para que desarrollen mejores planes de entrega con respecto a los pedidos de los clientes. Claro está, que para mejorar realmente el flujo de la cadena de suministro, sería necesario implementar un sistema que administre a la misma, sin embargo los ERPs ayudan en gran parte.

Estandarización de la información de RH (Recursos Humanos): especialmente en compañías con múltiples unidades de negocios, RH puede no tener un simple método unificado, para seguir el tiempo de los empleados y comunicarse con ellos sobre beneficios y servicios. Un ERP puede encargarse de eso.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

38

Manual de estudios Curso Programador ABAP Nivel Inicial

Definitivamente no todo lo que rodea a un ERP es bueno, también tienen sus desventajas: Son caros. Requieren cambios en la compañía y en los procesos para su instalación. Son complejos y muchas compañías no pueden ajustarse a ellos. Hay pocos expertos en el mercado en ERPs.

Cuando hablamos de sistemas ERPs se nos viene a la mente que estos se utilizan unicamente en mega empresas, pero desde unos años que las principales empresas desarrolladoras de sistemas ERP orientaron su mirada hacia las pequeñas y medianas empresas PYMES. Para poder satisfacer esta amplia brecha del mercado tuvieron que adaptar sus precios a los que una pequeña y mediana empresa puede pagar.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

39

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

¿Qué es SAP? Definimos que es SAP, que soluciones ofrece, conocemos el SAP ECC y otros productos de la empresa. También definimos su arquitectura, los módulos funcionales que lo componen y las soluciones de SAP para Pymes. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP

CVOSOFT IT Academy - Formación en Sistemas.

Imagen 1.1 - Casa central de SAP en Alemania

SAP proporciona una completa gama de aplicaciones de software empresarial y soluciones empresariales para fortalecer cada aspecto del negocio de una empresa.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

40

Manual de estudios Curso Programador ABAP Nivel Inicial

SAP BUSINESS SUITE es una completa familia de aplicaciones empresariales que permite a las empresas administrar toda su cadena de valores y los procesos empresariales más importantes. Ofrece una solución de software flexible para empresas con muchos usuarios y procesos en constante evolución.

Imagen 2.1 - Componentes del SAP Business Suite según el tamaño de la empresa

Finanzas, recursos humanos y logística son el núcleo de toda empresa. SAP ERP combina todos estos procesos empresariales cruciales de una empresa y proporciona funciones tanto para la central de la misma como para las subsidiarias más pequeñas. Todas las empresas pueden beneficiarse del uso de SAP ERP. Todo el software debe adaptarse a cada empresa. Una empresa pequeña con pocos empleados y unos procesos relativamente estables pueden utilizar sistemas SAP preconfigurados. SAP Business All-in-One es el nombre de la marca de soluciones verticales (específicas del ramo o del país) basadas en la tecnología de SAP Business Suite. SAP Business ByDesign es la solución empresarial más completa y adaptable del mundo diseñada para liberar a las empresas medianas de las restricciones de TI tradicional.

SAP Business One es una aplicación ERP integrada y de gran alcance con una interfase parecida a la de Microsoft Windows.

A partir del año 2004 SAP ofrece una nueva plataforma tecnológica denominada SAPNETWEAVER. Esta plataforma tecnológica convierte a SAP en un programa Web enabled, lo que significa que está totalmente preparado para trabajar con él mediante la web. Se puede trabajar con SAP mediante cualquier navegador de internet si se tienen los componentes apropiados de SAP NetWeaver.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

41

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.2 - Estructura general de SAPNetWeaver

Netweaver es una plataforma de integración y aplicación que reduce el costo total de adquisición en toda la infraestructura de TI y soporta la evolución de SAP Business Suite hacia una arquitectura orientada hacia los servicios.

SAP R/3 ha pasado por varios ciclos de release o nuevas versiones del sistema. En cada nueva versión, las funciones se han ampliado, las aplicaciones se han optimizado y las interfases con otros componentes de software se han ampliado.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

42

Manual de estudios Curso Programador ABAP Nivel Inicial

SAP ERP Central Component (SAP ECC) es el sucesor de SAP R/3.

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.

Imagen 3.1 - Módulos que componen SAP ERP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

43

Manual de estudios Curso Programador ABAP Nivel Inicial

Los principales módulos de la 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)

Las funciones y soluciones principales de SAP ERP se ven reforzadas y ampliadas con las siguientes aplicaciones de SAP Business Suite: APO (Advanced Planner and Optimizer) BW (Business Information Warehouse) BI (Business Intelligence) PORTAL (Portal de SAP) CRM (Customer Relationship Management)

SRM (Supplier Relationship Management) EHRMS (Human Resource Management Systems) PLM (Product Lifecycle Management) KW (Knowledge Warehouse)

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

44

Manual de estudios Curso Programador ABAP Nivel Inicial

SAP también ofrece aplicaciones específicas de sector. Muchos sectores requieren soluciones que se agrupan y enriquecen de manera especial con funciones y procesos específicos. SAP satisface esta necesidad con portafolios de soluciones para sectores. Hoy en día existen ofertas disponibles para más de 20 sectores. Entre ellas se incluyen soluciones para: Banca ( SAP Banking ) Empresas de servicios ( SAP ISU-Utilities ) Industria Química SAP For Chemicals Sanidad SAP For HealthCare

Petróleo y gas SAP for Oil and Gas Administración Pública SAP for Public Sector Comercio al por menor SAP Retail

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.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

45

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.1 - Arquitectura de capas de SAP

Aunque sus principales aplicaciones están destinadas a grandes empresas, SAP también se dirige a la pequeña y mediana empresa PYMES con productos como SAP Business One y mySAP All-in-one. Estas son soluciones SAP desarrolladas para responder a las necesidades de las PyMEs, preparadas para acompañar el crecimiento futuro de las empresas. Hoy, más que nunca, las empresas, cualquiera sea su tamaño, deben competir en una perspectiva global, disponer de las tecnologías de información más modernas y poder aplicarlas de forma eficaz y rentable. Las empresas pueden tener distintos tamaños, pero todas ellas desarrollan actividades similares (comprar, vender, relacionarse con sus clientes, organizar la contabilidad, gestionar los recursos humanos y adaptarse a las modificaciones de las normas legales y financieras).

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

46

Manual de estudios Curso Programador ABAP Nivel Inicial

Por este motivo, también las pequeñas y medianas empresas deben adoptar software para PyMEs que den soporte total a sus requerimientos y que les permitan reaccionar de forma rápida y flexible a los acontecimientos externos, interviniendo en la organización comercial, en la logística de la producción y en la toma de decisiones financieras. SAP dispone de una estrategia de negocio, adecuando el alcance y los costos de sus soluciones a la dimensión y estructura de las pequeñas y medianas empresas. Para ellas, SAP dispone de las siguientes soluciones:

7.1 | Para empresas medianas: SAP Business All-in-One: es la solución pre-configurada para los requerimientos específicos de los distintos sectores de actividad y para garantizar una rápida implementación. Adicionalmente, pueden ser personalizado para que se adapte totalmente a los requerimientos individuales de cada empresa. SAP Business All-in-One entiende los problemas reales del cliente, respondiendo directamente a sus problemas, requisitos y necesidades.

Imagen 7.1 - SAP Business-All-in-One

7.2 | Para pequeñas empresas: SAP Business One: es un software empresarial simple, pero poderoso, que sale al encuentro de las necesidades únicas de las pequeñas y medianas empresas. Con una vasta gama de funciones, incluyendo contabilidad, elaboración de informes, logística y gestión de oportunidades de ventas, entre otras. Disponible en un paquete de fácil utilización y de rápida implementación, este software para empresas abarca todas las necesidades y continuará haciéndolo, acompañando el crecimiento de cada negocio.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

47

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 7.2 - SAP Business One

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

48

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

¿Qué es ABAP? Definimos que es ABAP y cuales son sus principales fortalezas, características y herramientas. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP

CVOSOFT IT Academy - Formación en Sistemas.

Aunque la cantidad de aplicaciones desarrolladas por SAP es enorme, siempre existe la posibilidad que el cliente que adquiera el sistema, tenga alguna necesidad tan específica de su negocio que no esté contemplada en el estándar. También puede darse el caso que la funcionalidad que ofrece el estándar no se ajuste completamente a las necesidades del cliente. Para resolver estas situaciones existe un entorno completo de desarrollo de nuevas aplicaciones integradas en el sistema SAP. Este entorno, que SAP denomina ABAP Development Workbench, se compone de una serie de herramientas integradas que permiten crear desarrollos nuevos en poco tiempo.

El lenguaje de programación ABAP se caracteriza por su total integración en el sistema SAP. No en vano todo el software de aplicación, que se calcula en más de treinta millones de líneas de código, que el cliente recibe cuando adquiere SAP, está escrito en ABAP. 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.

Podemos decir que la programación ABAP es estructurada ya que en su mayoría, los programas tendrán la típica estructura TOP-DOWN.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

49

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.1 - Secuencia de ejecución de eventos de un programa ABAP

También podemos afirmar que la programación ABAP es Orientada a Eventos ya que si el usuario no realiza alguna acción, tal como presionar un botón de la pantalla, nada sucederá. En una de las últimas versiones del lenguaje ABAP se introduce la programación Orientada a Objetos de modo de estar a tono con las últimas tendencias del mercado mundial.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

50

Manual de estudios Curso Programador ABAP Nivel Inicial

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 multi-idioma. 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 posee determinadas herramientas que son propias del lenguaje y no están presentes en otros entornos de desarrollo. Ellas son: Diccionario de Datos (Transacción SE11): es el punto de referencia para los programadores ya que permite aislarles del sistema de gestión de base de datos que se utilice por debajo. Desde un misma pantalla se puede crear, modificar y borrar los objetos de base de datos, entre los que se incluyen: tablas bases de datos, estructuras, vistas, elementos de datos y dominios. Las definiciones de las tablas, por ejemplo, pueden ser referenciadas directamente en los programas permitiéndonos modificar posteriormente las tablas sin tener que cambiar los programas. Tenemos la posibilidad de gestionar otros objetos del Diccionario de datos como las ayudas de búsqueda, los objetos de bloqueo o los objetos de autorización.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

51

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - Diccionario de Datos ABAP

Editor de programas (Transacciones SE38 y SE80): el editor ABAP, aparte de proveer de las funciones básicas para la edición de texto, tiene múltiples características que facilitan la programación enormemente. Nos permite efectuar una verificación de sintaxis y aceptar las sugerencias del dispositivo de corrección automática que tiene incluido. También nos permite resaltar las palabras clave y tener una vista en forma de estructura jerárquica que ofrece la posibilidad de ocultar o desglosar bloques sintácticos. De esta manera, el programador obtiene una buena visión de conjunto de la estructura general del programa.

Imagen 3.2 - Editor ABAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

52

Manual de estudios Curso Programador ABAP Nivel Inicial

Screen Painter (Transacción SE51): con esta herramienta crearemos rápidamente interfases gráficas de usuario incluyendo una amplia gama de elementos de control, como botones de pulsación, botones de radio, checkboxes, etiquetas, campos de entrada, listas de base de datos, etc. Las pantallas que se crean se denominan dynpros y en ellas se incluye la definición de la pantalla y sus campos y la lógica de proceso de la misma. Esta lógica de proceso está dirigida por eventos, como los lenguajes visuales modernos, aunque la variedad de eventos posibles esta bastante limitada.

Imagen 3.3 - Screen Painter

Entorno de depuración (Dentro de la transacción SE38): el modo debugging de ABAP es posiblemente la herramienta más alabada por los programadores habituales de este lenguaje. Tiene todas las ventajas de este tipo de ayudas a la programación (creación de breakpoints, watchpoints, ejecución paso a paso, ejecución por bloques...) pero además nos permite hacer todo esto viendo el código fuente del programa, por lo que la localización del lugar del error es exacta.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

53

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.4 - Entorno de depuración ABAP

Otras herramientas: existen una gran variedad de herramientas adicionales cuyo uso no es tan frecuente como el Menu Painter, el análisis del tiempo de ejecución, el Object Browser, el sistema de test asistido por ordenador, etc.

A continuación vamos a explicar cuales son las tareas que realizan los Consultores Técnicos ABAP, como es su interacción con los Consultores Funcionales de SAP y como es la metodología de trabajo más comúnmente utilizada en el ciclo de vida de desarrollo de SAP. Cada empresa posee su propia metodología de trabajo, esta metodología afecta directamente la manera en que la información fluye entre los distintos niveles jerárquicos de la empresa. Si se encuentra bien implementada, mejora el control de los costos de las peticiones o requerimientos de los usuarios antes de llevarlas a cabo, aunque en primera instancia pudiera parecer un tanto burocrática, la misma garantiza la calidad del producto final y la organización del trabajo a realizar, ya que "en teoría" los tiempos han sido calculados con antelación, no teniendo que trabajar a las apuradas o con demasiado tiempo ocioso improductivo.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

54

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.1 - El ciclo de vida de un requerimiento en SAP

Veamos un ejemplo para comprender en detalle este concepto.

1º La Petición del Cliente al Consultor Funcional Es muy raro que un gerente de ventas contacte a un consultor Abap o Abaper directamente ante un requerimiento o petición de trabajo. Lo que habitualmente sucede (y es correcto que pase) es que el gerente de ventas cita a un Consultor Funcional SAP, para este ejemplo, por tratarse de un requerimiento del sector/módulo de Ventas, tendría que tomar esta petición un Consultor Funcional SAP SD, al cual el gerente le comentará sus necesidades de información. Por ejemplo: necesitamos un reporte de ventas que nos sirva para poder medir la productividad de nuestros vendedores a lo largo del mes. Luego el Consultor Funcional analizará el pedido del cliente y evaluará si ese trabajo se puede realizar "parametrizando" el sistema SAP, es decir configurando el sistema a través de las transacciones existentes. Para el caso de nuestro reporte de ventas, existe la posibilidad que SAP ya nos proporcione un reporte estándar de ventas para medir la productividad de los vendedores de la empresa. Si se puede realizar la adaptación mediante una "parametrización", o si SAP ya nos brinda dicho reporte y el mismo satisface las necesidades de información del cliente entonces será cuestión de utilizarlo y nuestro trabajo habrá terminado. Lo que suele suceder en cambio, es que el requisito del cliente excede a una parametrización o un reporte ya existente y es allí cuando el "Consultor Funcional" y el "Consultor Técnico" (el abaper para nuestro caso) se ponen a trabajar en equipo.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

55

Manual de estudios Curso Programador ABAP Nivel Inicial

2º La elaboración del Diseño Funcional: La forma más básica de realizar este trabajo Funcional y Técnico en conjunto, es que el Consultor Funcional, lo inicie elaborando una documentación llamada "Diseño Funcional", en este documento se le indica al Consultor Técnico entre otras cosas lo siguiente: Si se trata de hacer un programa Nuevo o modificar un programa existente. La funcionalidad del programa a realizar. El detalle de la interfaz gráfica de selección de datos que debe tener el programa o bien la modificación/es. Las tablas bases de datos que se accederán para obtener la información del programa. Las pruebas básicas a realizar luego que el programa esté terminado. Demás documentación que crea necesaria o útil al Consultor ABAP.

Una vez que el Consultor Funcional elaboró el "Diseño Funcional", en base a la metodología con la que trabaje la empresa, se le pedirá al Consultor Técnico, que en base al Diseño Funcional elabore y entregue un "Diseño Técnico", el cual es un documento en donde se especifica el trabajo que deberá realizar desde el punto de vista técnico, es decir se detalla: El nombre del programa a crear. Los campos que componen lo que se denomina en ABAP la pantalla de selección. La forma de acceder a las tablas de la base de datos para obtener información. Las validaciones que se realizarán en el programa. Si se imprimirán datos en pantalla. Si se generará un archivo de salida y muchas cuestiones más.

Normalmente aquí también se incluirá la estimación de las horas que se presume insumirá realizar o modificar el programa. Esta estimación por la general se elabora de común acuerdo entre el Consultor Funcional y el Consultor Técnico ABAP en base a: La dificultad de la tarea a realizar. La experiencia que posee el Consultor ABAP como programador.

3º La elaboración del Diseño Técnico y la Programación Una vez finalizado el Diseño Técnico, el Consultor ABAP comenzará el desarrollo del programa o modificación a realizar. Al terminarlo lo probará, realizando lo que se conoce como "Pruebas Unitarias", es decir pruebas básicas para asegurarnos que el programa cumple con los requisitos que nos solicitaron y avisa al consultor funcional. El Consultor Funcional a su vez realizará sus propias pruebas, las cuales se conocen como "Pruebas integrales", en donde se probará el programa rigurosamente y si está todo en orden, avisará al cliente, cerrando de esta manera el requerimiento establecido en un principio.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

56

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

57

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Ambientes, Mandantes y Clases de desarrollo o Paquetes Definimos en que consisten los Ambientes, los Mandantes y las Clases de desarrollo o Paquetes. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP

CVOSOFT IT Academy - Formación en Sistemas.

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.

Los programadores tendremos acceso para desarrollar nuestros programas 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.

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.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

58

Manual de estudios Curso Programador ABAP Nivel Inicial

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.

Imagen 1.1 - Estructura de Ambientes y Mandantes típica de una implementación SAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

59

Manual de estudios Curso Programador ABAP Nivel Inicial

Cualquier sistema SAP se instala inicialmente con tres mandantes estándar.

Imagen 2.1 - Mandantes estándar de SAP

Las funciones de los mandantes estándar son las siguientes: Mandante 000: es el mandante de referencia. No contiene datos de parametrización empresarial y por lo tanto las

creaciones de mandante propios se deben hacer como copias de este para asegurarnos que empezamos la parametrización desde cero. Durante un cambio de versión de SAP los datos dependientes de mandante se actualizan automáticamente en el 000 y los cambios al resto de mandantes se deben hacer desde aquí.

Mandante 001: es el mandante de ejemplo. Inicialmente es idéntico al 000 y salvo que lo cambiemos nosotros,

ninguna actualización de SAP lo va a modificar, al contrario de lo que ocurre con el 000. Siempre lo podemos tener como ejemplo de la instalación inicial aunque SAP no impone ninguna prohibición de cambiarlo o borrarlo. Mandante 066: es el mandante del servicio EarlyWatch, cuyo objetivo es garantizar la confidencialidad de nuestros

datos reales en productivo. Este mandante está aislado y es al cual se conecta SAP cuando le pedimos que nos realice un servicio de detección de problemas de rendimiento. Los usuarios de este mandante tiene las autorizaciones mínimas para poder ejecutar el informe de rendimiento. Este mandante tampoco debe ser borrado ni modificado nunca.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

60

Manual de estudios Curso Programador ABAP Nivel Inicial

A partir del mandante de referencia 000 podemos crear tantos mandantes como queramos (siempre que el tamaño de nuestra base de datos nos lo permita). En el ambiente de desarrollo se suelen crear varios mandantes, en integración o testing algunos menos y en el ambiente de producción solo debe existir un mandante propio. A continuación vamos a describir los mandantes que se crean habitualmente y cuales son sus funciones. Aunque vemos que tienen un número asignado, esto se ha hecho para facilitar la diferenciación entre ellos.

Imagen 3.1 - Mandantes propios de SAP

Es posible implementar SAP con más o menos mandantes de los indicados pero hay que buscar el equilibrio entre muchos y pocos. Con pocos mandantes podemos tener conflictos durante la parametrización, el desarrollo de programas o las pruebas, pero con muchos mandantes estaremos aumentando el tamaño de la base de datos y empeorando el rendimiento además de requerir un mayor esfuerzo en los procedimientos de administración de sistemas.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

61

Manual de estudios Curso Programador ABAP Nivel Inicial

Las funciones de los mandantes propios son las siguientes: Mandante 200: Desarrollo y parametrización en el sistema de desarrollo. Aquí iniciamos nuestro prototipo de empresa

y creamos los primeros desarrollos a medida que sean necesarios. Los programadores y consultores de aplicación trabajan en este sistema. No tendremos datos maestros ni transaccionales de manera que la pruebas las realizaremos en el mandante 220 después de pasar todos los cambios hechos aquí.

Mandante 210: se lo conoce como Sandbox. Las pruebas inusuales de parametrización las realizaremos en el 210

de manera que no interrumpamos el trabajo normal del mandante 200. Los cambios que hagamos aquí no se registran en ningún sitio de manera que si probamos algo en lo que nos va bien debemos repetirlo a mano en el 200 para que quede grabado en una orden de transporte (concepto que veremos más adelante) y se pueda pasar al mandante de pruebas unitarias. Periódicamente y para mantener el mandante limpio se hará una copia de refresco desde el 220.

Mandante 220: Pruebas unitarias en desarrollo. Los responsables de desarrollo y parametrización efectuarán aquí las

pruebas unitarias del prototipo que se está creando. Aquí si que tendremos datos maestros y transaccionales aunque no serán muy fiables debido a que la parametrización puede cambiarse.

Mandante 300: Pruebas integradas y control de calidad en integración. La función de este mandante es similar a la

del 220 pero con la diferencia de que las pruebas incluyen la interacción entre los diferentes módulos, rendimiento y aprobación del usuario. También se comprueba que el paso de las órdenes de transporte desde el ambiente de desarrollo sea correcto como garantía de que el paso de esas mismas órdenes a producción también lo sea.

Mandante 310: Formación a usuarios finales. Una vez superadas las pruebas correspondientes al mandante 300,

pasamos el prototipo aquí para que los usuarios finales reciban los cursos de formación y tengan un sitio donde poder seguir practicando después. De esta manera, los datos maestros y transaccionales que crean no nos interfieren en nuestro trabajo habitual.

Mandante 320: Maestro de parametrización. Este mandante se usa únicamente como referencia para poder consultar

la parametrización que tenemos en productivo sin tener que acceder a la máquina de productivo, no obligándonos a dar acceso a la misma a personal no autorizado. Para que cumpla su función se deben transportar los cambios al mandante 400 y al 320 al mismo tiempo y mantenerlos siempre sincronizados.

Mandante 400: Mandante productivo. Aquí es donde se lleva a cabo la explotación real del software. Este es el único

mandante propio que debe existir en el ambiente productivo. Antes del arranque en productivo realizaremos aquí las cargas iniciales de datos maestros, movimientos e históricos.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

62

Manual de estudios Curso Programador ABAP Nivel Inicial

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.

Imagen 4.1 - Asignación del paquete o clase de desarrollo

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

63

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Login al sistema SAP, ayuda en ABAP y el concepto de transacción Mostramos como loguearnos al sistema SAP, las diferentes formas de buscar ayuda en ABAP y explicamos detalladamente el concepto de transacción en SAP. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP CVOSOFT IT Academy - Formación en Sistemas.

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.

Imagen 1.1 - SAPLogon

Si hacemos doble clic en el SAP Logon podremos visualizar en pantalla todas los sistemas configurados en el. Para ingresar a estos sistemas basta con marcar la entrada y presionar el botón

Acceder al sistema .

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

64

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Sistemas configurados en el SAPLogon

En la pantalla que visualizamos a continuación introducimos los siguiente datos: El mandante o cliente al que nos vamos a loguear. Nuestro usuario de acceso a SAP. La password de dicho usuario.

Imagen 1.3 - Completamos nuestro usuario y password de SAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

65

Manual de estudios Curso Programador ABAP Nivel Inicial

Y finalmente presionamos enter. Inmediatamente luego visualizamos el modo SAP con el menú correspondiente al usuario logueado.

Imagen 1.4 - Menú inicial de SAP

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.

Imagen 1.5 - Campo de comandos

Por ejemplo, más adelante veremos que la transacción SE38 nos lleva al Editor ABAP.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

66

Manual de estudios Curso Programador ABAP Nivel Inicial

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.

Imagen 2.1 - Ayuda presionando F1 sobre una sentencia de ABAP

Usando la ayuda extendida de SAP. En todas las pantallas de SAP tenemos la opción Ayuda desde la que podemos buscar información.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

67

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.2 - Ayuda extendida por aplicación

SDN en donde vamos a encontrar una enorme cantidad de información y ayuda sobre cualquier tema dentro del mundo SAP.

Imagen 2.3 - Ayuda a través de la SDN

Internet en general. Aparte de la SDN, existen muchas otras páginas, foros y blogs donde encontraremos información muy útil. ©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

68

Manual de estudios Curso Programador ABAP Nivel Inicial

Una transacción comercial es un intercambio entre una parte del sistema y otra. La planta de producción, por ejemplo, quiere un suministro desde el almacén a cambio de un recibo. El almacén sabrá utilizar este recibo para conciliar el saldo de esta pieza en el inventario de las mismas. Mientras tanto, el departamento de contabilidad habrá anotado que el material ha pasado de la cuenta del almacén a la de la planta de producción y definirá una transacción financiera para registrar el intercambio de valor por el material. Cuando un usuario está trabajando en una terminal, por ejemplo un cajero automático, una transacción con el sistema no queda terminada hasta que éste verifica que las entradas de información son correctas. El sistema registrará automáticamente la transacción como un documento que queda en el sistema en prueba de quién hizo la transacción y cuándo ésta ocurrió exactamente. Llevando esta visión al sistema SAP:

Tras completar toda la información obligatoria y parte de los campos opcionales, el usuario tiene la opción de grabar la transacción (en el caso de que hablemos de una transacción de creación o modificación) o de desechar toda la operación. Este es el punto clave de una transacción; si se graba, entonces todos los datos quedarán registrados, si se cancela, entonces ningún dato se grabará.

El concepto de transacción implica que no pueden grabarse sólo una parte de los datos, porque esto provocaría una inconsistencia en el sistema. En el ejemplo anterior, si sólo se registrará el movimiento de mercancías entre la planta y el almacén y no se grabará la anotación contable correspondiente, no podríamos, en un momento dado, sacar un balance contable correcto. ©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

69

Manual de estudios Curso Programador ABAP Nivel Inicial

En SAP accedemos a las transacciones generalmente a través del menú, pero también podemos acceder directamente utilizando su código de transacción. Los usuarios novatos o principiantes no suelen utilizar este último método descrito, pero a medida que se acostumbran al sistema y se dan cuenta que suelen ejecutar siempre la misma decena de transacciones, aprenden el código y lo utilizan.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

70

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Mi primer programa ABAP Creamos nuestro primer programa ABAP y vemos que son las Órdenes de Transporte, cuales son sus tipos y cuales sus estados. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 1: Introducción a SAP y a ABAP

CVOSOFT IT Academy - Formación en Sistemas.

Vamos a crear nuestro primer programa en ABAP. Para esto nos logueamos a SAP como lo vimos anteriormente, escribimos en el campo de comandos la transacción SE38 y presionamos enter.

Visualizaremos el Editor ABAP, allí escribimos el nombre del programa que vamos a crear, el cual debe comenzar con Z y presionamos el botón

Imagen 1.1 - Ingresamos el nombre del programa a crear en el Editor ABAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

71

Manual de estudios Curso Programador ABAP Nivel Inicial

A continuación veremos una ventana en la cual el sistema SAP advierte que nuestro usuario no está registrado como desarrollador del sistema, por lo que nos solicita la clave de acceso. Para registrarnos como desarrollador debemos introducir por única vez el código de 20 dígitos que corresponde a nuestra clave de desarrollador en la pantalla.

Imagen 1.2 - Clave de desarrollador ABAP

Luego de introducir el número de 20 dígitos presionamos el botón Continuar. En la próxima pantalla el sistema nos solicitará para que ingresemos los siguientes datos relacionados con el nuevo programa: 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".

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

72

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.3 - Introducimos el título y el tipo del programa

Luego presionamos Grabar y el sistema, en una nueva ventana, nos solicitará 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.

Imagen 1.4 - Introducimos el paquete o clase de desarrollo local

En el editor escribiremos el siguiente código:

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

73

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.5 - Escribimos nuestras primeras líneas de código ABAP

Y luego activamos el programa presionando el botón "Activar"

. Para ello tendremos que seleccionar el objeto que

deseamos activar de la pantalla de activación que vemos en el siguiente gráfico y presionamos el botón

.

Imagen 1.6 - Activamos el programa ABAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

74

Manual de estudios Curso Programador ABAP Nivel Inicial

Una vez activado sin errores, lo ejecutaremos con el botón ejecutar

o presionando la tecla F8.

La pantalla de salida que visualizaremos será la siguiente:

Imagen 1.7 - Salida por pantalla luego de la ejecución

Felicitaciones! acabas de crear tu primer programa ABAP.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

75

Manual de estudios Curso Programador ABAP Nivel Inicial

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

.

Imagen 2.1 - Asignamos una clase de desarrollo o paquete Z

En la siguiente ventana de diálogo podemos elegir entre Crear una nueva órden de transporte exista en el sistema presionando el botón Órdenes propias

o utilizar una que

.

Imagen 2.2 - Creación de una nueva orden de transporte

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

76

Manual de estudios Curso Programador ABAP Nivel Inicial

En este caso presionamos el botón para crear una nueva orden de transporte

.

En la siguiente pantalla completaremos una Descripción breve para nuestra orden de transporte y presionamos el botón Grabar

.

Imagen 2.3 - Introducimos una descripción breve

Luego SAP nos propondrá asociar el objeto que acabamos de crear a un número de orden de transporte único en el sistema.

Imagen 2.4 - Asociamos el objeto creado a una orden de transporte

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

77

Manual de estudios Curso Programador ABAP Nivel Inicial

Por último, activamos el programa presionando el botón Activar

.

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.

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.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

78

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - Liberación de una orden de transporte

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

79

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

80

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 2: Declaración y Procesamiento de datos Declaración y Procesamiento de datos Curso: Programador ABAP Nivel Inicial CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

81

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

MÓDULO: PROGRAMADOR ABAP INICIAL UNIDAD: Declaración y Procesamiento de datos

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

82

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

83

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

84

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

85

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

86

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Características de los programas ABAP Analizamos las distintas aplicaciones o objetos que se pueden crear con ABAP, los Eventos de un programa ABAP y aprendemos a utilizar el debugger. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 2: Declaración y Procesamiento de datos

CVOSOFT IT Academy - Formación en Sistemas.

Dentro del mundo ABAP se pueden crear distintos tipos de objetos. Los más comunes de ellos son: Reporte, Reporte interactivo y Reporte ALV Programa de Dialogo Formularios Batch Input User exits Field exits Funciones y RFC

A medida que avanza el curso vamos a ir viendo en detalle cada uno de ellos. Ahora nos vamos a ocupar de los llamados Reportes Clásicos o simplemente Reportes.

Existen cuatro tipos de palabras claves: Declarativas: se utilizan para declarar datos que vamos a usar dentro del programa. Ej.: DATA, TABLES y CONSTANT. Eventos: que ocurren en el programa. Ej.: START-OF-SELECTION, TOP-OF-PAGE, etc. Control: sentencias de control de flujo de programa. Ej.: IF, WHILE, DO, etc. Operativas: realizan funciones según la palabra clave. Ej.: WRITE, MOVE, etc.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

87

Manual de estudios Curso Programador ABAP Nivel Inicial

Generalmente la estructura de un reporte va a ser de la siguiente manera:

Imagen 1.1 - Estructura de un reporte o programa ABAP

Existen dos formas de utilizar los comentarios en un programa ABAP: Con un asterisco en la primera columna de la fila. Con comillas dobles en cualquier posición de la línea.

Imagen 1.2 - Comentarios en un programa ABAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

88

Manual de estudios Curso Programador ABAP Nivel Inicial

Como dijimos anteriormente, la programación ABAP es orientada a eventos.

Los principales eventos que pueden ocurrir dentro de un programa son:

INITIALIZATION Es el primer evento que se ejecuta. Nos permite inicializar los campos de la pantalla de selección de un programa o cualquier otra variable.

AT SELECTION-SCREEN Este evento se utiliza para validar los datos introducidos en los parámetros que conforman a la pantalla de selección.

START-OF SELECTION Este evento se lanza cuando se procesa la instrucción REPORT. En ese momento se empieza a ejecutar el código que se encuentra entre REPORT y la palabra reservada START-OFSELECTION. Inmediatamente después se procesa el bloque contenido dentro de este evento. El evento START-OF-SELECTION se utiliza para realizar el procesamiento central del programa, tal como puede ser realizar la selección de los datos, procesar un archivo, realizar operaciones aritméticas, etc. Es el evento por defecto, es decir si escribimos sentencias ejecutables sin etiqueta de evento, estas se adjudican por defecto a START-OF-SELECTION.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

89

Manual de estudios Curso Programador ABAP Nivel Inicial

END-OF-SELECTION El código de este evento se procesa cuando se termina el procesamiento central del programa, es decir luego del evento START-OF-SELECTION. Contiene las últimas sentencias que se ejecutarán en el programa. En general se lo utiliza para realizar la impresión de listados.

AT LINE-SELECTION Permite al usuario seleccionar una línea de un listado y realizar alguna acción. Se utiliza en los llamados reportes interactivos.

AT USER-COMMAND Se ejecuta cuando el usuario presiona un botón del menú en un reporte.

TOP-OF-PAGE Este evento se procesa antes de que el primer dato aparezca en cada página. Se suele utilizar para colocar títulos o cabeceras.

END-OF-PAGE Este evento se lanza cuando se crea automáticamente una nueva página. Esto ocurrirá cuando el número de líneas procesado sobrepase el número de líneas fijado para la página en la sentencia REPORT.

Veamos un ejemplo de como usaríamos los eventos en un programa ABAP. Para ello, nos logueamos a SAP, ingresamos a la transacción SE38 y creamos el programa Z_PRUEBA_EVENTOS que lo grabamos como programa ejecutable y como objeto local con el siguiente código:

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

90

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - Eventos en un programa ABAP

Si ejecutamos este programa produciríamos la siguiente salida:

Imagen 2.2 - Salida de un programa ABAP

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

91

Manual de estudios Curso Programador ABAP Nivel Inicial

Es muy importante saber utilizar el debugger o depurador ya que en programación las cosas solo funcionan si y solo si son perfectas, es decir sin errores. Algunos errores se detectan a simple vista pero para resolver otros vamos a necesitar ejecutar nuestro programa y saber exactamente cuales son los valores que van tomando las variables internas del mismo. Para esto existe el debugger. Veamos como debaguear el programa Z_PRUEBA_EVENTOS que acabamos de crear. Para ello, visualizamos el programa a través de la transacción presionando el botón

SE38 y colocamos un breakpoint luego de la declaración de las variables

para breakpoints de sesión que durarán mientras la sesión este abierta o

para

breakpoints externos.

Imagen 3.1 - Colocamos un breakpoint

Luego ejecutaremos el programa y veremos en debugger en acción.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

92

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.2 - El debugger ABAP en acción

Presionando el botón Single step Presionando el botón Execute

o la

o la

tecla F5, ejecutaremos paso a paso es decir sentencia a sentencia.

tecla F6, ejecutaremos subrutina a subrutina sin entrar en el contenido de cada

una. Más adelante veremos el concepto de subrutina en detalle. Presionando el botón Return

o la

tecla F7, retornaremos a la rutina de nivel superior de la rutina actual en

ejecución. Presionando el botón Run

o la

tecla F8, continuaremos la ejecución hasta el final del programa.

En la parte inferior de la pantalla del debugger podemos ingresar el nombre de cualquiera de las variables del programa para saber cual es su contenido en cualquier momento del mismo. También podemos modificar el contenido de una variable para saber cual sería el resultado del programa con esta modificación.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

93

Manual de estudios Curso Programador ABAP Nivel Inicial

Configuramos el nuevo debug seleccionando la opción F.debugging nueva tal como vemos a continuación:

Imagen 3.3 - Configuración del nuevo debugger

Y al ejecutar nuevamente el debugger visualizaremos la siguiente pantalla:

Imagen 3.4 - Visualizamos el contenido almacenado en las variables

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

94

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Declaración de datos Analizamos los Tipos de datos existentes en ABAP, que son las Estructuras de datos, que son las Constantes y los Includes de datos. Finalmente aprendemos para que se utilizan las Variables del sistema. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 2: Declaración y Procesamiento de datos

CVOSOFT IT Academy - Formación en Sistemas.

Los principales tipos de datos que se utilizan en ABAP son:

Imagen 1.1 - Principales tipos de datos existentes en ABAP

También existen los Tipos STRING que se utilizan para cadenas de longitud variable y XSTRING que se utilizan como un string hexadecimal para cadenas de caracteres muy grandes. Para declarar una variable utilizaremos la palabra clave DATA y TYPE tal como vemos en el siguiente ejemplo.

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

95

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Ejemplos de declaración de variables

Con el agregado de VALUE, inicializamos con un valor determinado a una variable.

También podemos declarar variables que sean de igual tipo que otras ya creadas en el sistema. Para esto utilizamos la sentencia LIKE. En el siguiente caso, creamos la variable V_CARRID que es del mismo tipo que el campo CARRID de la tabla SFLIGHT de Vuelos de SAP.

Imagen 1.3 - Declaración de la variable V_CARRID

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

96

Manual de estudios Curso Programador ABAP Nivel Inicial

Existen tres formas de definir una estructura: La primera es utilizando la palabra clave DATA. En el siguiente ejemplo creamos una estructura de vuelos que tendrá los mismos campos que la tabla de vuelos SFLIGHT.

Imagen 2.1 - Declaración de una estructura del mismo tipo que SFLIGHT

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

97

Manual de estudios Curso Programador ABAP Nivel Inicial

En la segunda forma también utilizamos la palabra clave DATA pero vamos a crear una estructura de vuelos solo con ciertos campos.

Imagen 2.2 - Declaración de una estructura con ciertos campos particulares

La tercera forma es utilizando TIPOS, que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el código. Para esto se utiliza la palabra reservada TYPES.

Imagen 2.3 - Utilización de tipos en declaraciones de estructuras

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

98

Manual de estudios Curso Programador ABAP Nivel Inicial

Para su declaración se utiliza la palabra reservada CONSTANTS.

Imagen 3.1 - Ejemplo de declaración de constantes

©CVOSOFTITACADEMY| ISBN978-987-27549-2-1|[email protected]|w ww.cvosoft.com

99

Manual de estudios Curso Programador ABAP Nivel Inicial

Existen dos tipos de INCLUDES. Ellos son: INCLUDE de datos: se utiliza para agrupar declaraciones de datos. INCLUDE de subrutinas: se utiliza para agrupar declaraciones de subrutinas, concepto que veremos en detalle más adelante.

En este momento nos concentraremos en los Include de datos. Para su creación se utiliza la palabra clave INCLUDE seguida del nombre del include.

Imagen 4.1 - Declaración de un include de datos

Al hacer doble clic sobre z_prueba_abap_datos veremos la siguiente ventana de diálogo donde se nos consulta si deseamos crear el objeto, a la cual responderemos que sí.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

100

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.2 - Ventana de diálogo de consulta

Luego veremos la ventana de diálogo que nos muestra el objeto que será creado. Aquí simplemente presionamos el botón Grabar.

Imagen 4.3 - Presionamos grabar para crear el include

Finalmente habremos creado el INCLUDE Z_PRUEBA_ABAP_DATOS.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

101

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.4 - Include de datos creado

A parte de las variables que define el programador, existen otras que han sido definidas por el sistema y que son de gran utilidad dentro de los programas ABAP. Estas se encuentran en la tabla base de datos SYST y contienen información que va desde la hora del sistema, a saber si se ejecuto correctamente una sentencia ABAP o una actualización a una base de datos. Su contenido no puede ser modificado en los programas sino que cambia simplemente con la ejecución de los mismos.

Las más comúnmente utilizadas son: SY-SUBRC: código de retorno posterior a la ejecución de una sentencia ABAP. Si el resultado de la ejecución fue

exitoso, entonces es 0, sino es distinto de cero.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

102

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 5.1 - La variable SY-SUBRC

SY-DATUM: contiene la fecha del sistema.

Imagen 5.2 - La variable SY-DATUM

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

103

Manual de estudios Curso Programador ABAP Nivel Inicial

SY-UZEIT: contiene la hora del sistema.

Imagen 5.3 - La variable SY-UZEIT

SY-TABIX: contiene el índice de una tabla interna.

Imagen 5.4 - La variable SY-TABIX

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

104

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Procesamiento de los datos Aprenderemos a asignar valores e inicializar variables. También analizamos las operaciones con caracteres y operaciones aritméticas más importantes y comúnmente utilizadas. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 2: Declaración y Procesamiento de datos

CVOSOFT IT Academy - Formación en Sistemas.

Existen dos formas básicas para asignar un valor a una variable. La primera consiste en la asignación simple.

Imagen 1.1 - Asignación simple de variables

La segunda forma es mediante la sentencia MOVE.

Imagen 1.2 - Asignación de variables mediante MOVE

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

105

Manual de estudios Curso Programador ABAP Nivel Inicial

Para la inicialización o borrado del contenido de las variables utilizamos la sentencia CLEAR.

Imagen 2.1 - Inicialización de variables mediante CLEAR

Si inicializamos las variables que declaramos a continuación:

Imagen 2.2 - Declaración de variables a inicializar

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

106

Manual de estudios Curso Programador ABAP Nivel Inicial

El contenido de los campos sería el siguiente:

Imagen 2.3 - Variables inicializadas

Una sentencia muy importante a la hora de consultar el contenido de las variables que declaramos en nuestros programas es IS INITIAL. En la siguiente imagen vemos un ejemplo de su utilización.

Imagen 2.4 - Utilización de la sentencia IS INITIAL

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

107

Manual de estudios Curso Programador ABAP Nivel Inicial

Existen algunas funciones que se utilizan para tratar caracteres que son muy útiles en el trabajo diario de un programador ABAP. Ellas son: CONCATENATE: se

utiliza para concatenar varios campos alfanuméricos en uno solo.

Imagen 3.1 - Utilización de la sentencia CONCATENATE

Esta sentencia concatena los campos V_CAMPO1, V_CAMPO2 y V_CAMPO3 en la variable V_CAMPO. Todos estos campos son de tipo caracter. Con la cláusula SEPARATED BY se puede especificar un campo alfanumérico que se utilizará como separador entre los campos V_CAMPO1, V_CAMPO2 y V_CAMPO3.

TRANSLATE:

se utiliza para convertir caracteres de mayúscula a minúscula o viceversa, o para realizar sustituciones

de caracteres a través de ciertas reglas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

108

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.2 - Utilización de la sentencia TRANSLATE

La sentencia anterior convierte a mayúsculas el contenido de la variable V_TEXTO, siendo V_TEXTO de tipo caracter.

REPLACE:

reemplaza cierta parte de una cadena de caracteres por otra cadena de caracteres o caracter.

Imagen 3.3 - Utilización de la sentencia REPLACE

La sentencia anterior reemplaza el contenido de la variable V_TEXTO que es 'Hola' por el texto 'Casa'.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

109

Manual de estudios Curso Programador ABAP Nivel Inicial

SPLIT:

divide a un campo alfanumérico en varios campos por un separador.

Imagen 3.4 - Utilización de la sentencia SPLIT

La sentencia anterior utiliza el separador ',' para dividir el contenido del campo V_TEXTO_LARGO en las variables V_CAMPO1, V_CAMPO2, V_CAMPO3 y V_CAMPO4 que son de tipo caracter (TYPE c). Si todos los campos destino son lo suficientemente grandes para almacenar las partes del campo V_TEXTO_LARGO, SY-SUBRC valdrá 0, caso contrario valdrá 4.

SHIFT:

se utiliza para desplazar el contenido de un campo alfanumérico. Realiza el desplazamiento del contenido de

un campo hasta un string dado.

Imagen 3.5 - Utilización de la sentencia SHIFT ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

110

Manual de estudios Curso Programador ABAP Nivel Inicial

La sentencia anterior realiza el desplazamiento del campo V_ALFABETO hasta la quinta posición, quedando el resto de los caracteres que componen a V_ALFABETO en la variable y eliminando los cinco primeros.

SEARCH:

se utiliza para buscar una cadena de caracteres dentro de un campo alfanumérico.

Imagen 3.6 - Utilización de la sentencia SEARCH

La sentencia anterior busca en el campo V_ALFABETO la secuencia de caracteres 'ABC'. Como la secuencia existe, devolverá SY-SUBRC igual a 0. Caso contrario, si no existiera, sería distinto igual a 4.

CONDENSE:

se utiliza para borrar espacios en blanco en campos alfanuméricos. Borra cualquier secuencia de

espacios en blanco, dejando solo uno que exista entre palabras existentes en el campo. Los espacios en blanco por la izquierda también desaparecen.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

111

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.7 - Utilización de la sentencia CONDENSE

La salida en pantalla de la sentencia anterior sería 'Dr. Rafael Castro'. Con el agregado de la cláusula NO-GAPS al final de la sentencia, se eliminarán todos los espacios en blanco, es decir que también se eliminan los espacios existentes entre las palabras.

En ABAP las cuatro operaciones básicas ( suma , resta, multiplicación y división ) se pueden implementar de dos maneras obteniendo el mismo resultado.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

112

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.1 - Dos formas de implementar las operaciones artiméticas básicas

Siendo el resultado el mismo de ambas formas. También se utilizan las siguientes sentencias para operar aritméticamente con datos:

Imagen 4.2 - Operaciones aritméticas básicas

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

113

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Control del Flujo de Datos Aprenderemos a trabajar con condiciones, bucles y sentencias de control. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 2: Declaración y Procesamiento de datos

CVOSOFT IT Academy - Formación en Sistemas.

Las condiciones en ABAP se pueden representar de dos formas. Una es utilizando la palabra clave IF-ENDIF.

Imagen 1.1 - Condiciones utilizando IF-ENDIF

Si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que estén debajo del ELSE. La otra forma es mediante CASE-ENDCASE.

Imagen 1.2 - Condiciones utilizando CASE-ENDCASE

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

114

Manual de estudios Curso Programador ABAP Nivel Inicial

Si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que estén debajo del WHEN OTHERS. En ambas formas se utilizan los siguientes operadores lógicos.

Imagen 1.3 - Operadores lógicos

Los bucles en ABAP se puede pueden representar de varias formas. La primera es mediante la palabra clave LOOPENDLOOP.

Imagen 2.1 - Bucles utilizando LOOP-ENDLOOP

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

115

Manual de estudios Curso Programador ABAP Nivel Inicial

En el ejemplo anterior, Tabla es una tabla interna (Concepto que veremos en detalle más adelante). Con el agregado de la cláusula WHERE se puede restringir el número de líneas a leer, ya que se producirá la iteración siempre y cuando se cumpla la condición. Para más información presionar F1 sobre la sentencia.

Imagen 2.2 - Agregado de la cláusula WHERE

Otra forma es mediante la palabra clave DO-ENDDO.

Imagen 2.3 - Bucles utilizando DO-ENDDO

La iteración se ejecutará solo si la condición es verdadera.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

116

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.4 - Ejemplo de la utilización de DO-ENDDO

Las sentencias de control se utilizan para terminar el procesamiento de un bucle, de un proceso o de un programa. Ellas son:

CHECK : verifica

si la condición es verdadera. Si la condición es falsa, y la sentencia está dentro de un bucle, se

saltearán todas las sentencias siguientes que estén dentro del bucle y se continuará con la siguiente iteración. Fuera de un bucle, se saltearán todas las sentencias hasta el final del evento o del programa en proceso.

Imagen 3.1 - Utilización de la sentencia CHECK

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

117

Manual de estudios Curso Programador ABAP Nivel Inicial

EXIT: dentro

de un bucle saldrá del bucle, dentro de una subrutina saldrá de la misma y fuera de un bucle saldrá del

programa.

Imagen 3.2 - Utilización de la sentencia EXIT

CONTINUE:

se utiliza solo dentro de bucle. Luego de la ejecución de la sentencia el sistema continua con la

siguiente iteración.

Imagen 3.3 - Utilización de la sentencia CONTINUE

STOP:

se finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECTION.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

118

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.4 - Utilización de la sentencia STOP

LEAVE:

se finaliza el programa en ejecución pero no se ejecutará el evento END-OF-SELECTION.

Imagen 3.5 - Utilización de la sentencia LEAVE

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

119

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Formateando un Listado Aprenderemos a formatear la salida de los datos y a trabajar los formatos de página. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 2: Declaración y Procesamiento de datos

CVOSOFT IT Academy - Formación en Sistemas.

ABAP ofrece una serie de instrucciones especialmente diseñadas para generar reportes de manera sencilla. Una de ellas es la sentencia WRITE.

Imagen 1.1 - La sentencia WRITE

Donde offset indica la columna donde empezará la impresión y long indica la longitud de los valores a visualizar. Veamos un ejemplo:

Imagen 1.2 - Ejemplo de utilización de La sentencia WRITE

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

120

Manual de estudios Curso Programador ABAP Nivel Inicial

Y la salida por pantalla es:

Imagen 1.3 - Salida por pantalla de la sentencia WRITE

Existen muchos comandos adicionales a WRITE que se utilizan para producir una salida por pantalla determinada. Algunos de ellos son:

Tabla 1.1 - Comandos Adicionales a Write

Veamos un ejemplo de como centrar un texto con el comando CENTERED:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

121

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.4 - Centrado de un texto con CENTERED

Y la salida por pantalla será la siguiente:

Imagen 1.5 - Salida por pantalla centrada

Para dejar una línea en blanco se utiliza la sentencia SKIP y para escribir una línea horizontal se utiliza la sentencia ULINE.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

122

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.6 - Las sentencias SKIP y ULINE

Existen instrucciones especialmente destinadas a darle formato a la salida de un reporte ya sea por pantalla o por impresora. El evento TOP-OF-PAGE se utiliza para cambiar la cabecera de una página. Este evento ocurre tan pronto como el sistema empieza a procesar una nueva página. Por ejemplo, si queremos escribir un título particular al comienzo de cada página pondremos:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

123

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - El evento TOP-OF-PAGE

El evento END-OF-SELECTION se utiliza para realizar la impresión por pantalla de los datos, de modo que se separe esto del procesamiento de los mismos. Este evento se ejecuta luego del evento START-OF-SELECTION.

Imagen 2.2 - El evento END-OF-SELECTION

Para modificar la cantidad de líneas o columnas que se visualizan en la pantalla se utiliza la sentencia NO STANDARD PAGE HEADING.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

124

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - La sentencia NO STANDARD PAGE HEADING

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

125

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Pantalla de selección Aprenderemos a crear las pantallas de selección de nuestros programas y a crear clases de mensajes. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 2: Declaración y Procesamiento de datos CVOSOFT IT Academy - Formación en Sistemas.

Si queremos introducir algunas delimitaciones a nuestro programa de modo que nuestro reporte solo se ejecute para ciertos datos que el usuario deberá introducir en la pantalla entonces deberemos crear una pantalla de selección.

Dentro de una pantalla de selección se pueden declarar dos tipos de objetos: PARAMETER en los cuales el usuario podrá ingresar valores individuales y SELECT-OPTIONS en donde el usuario podrá ingresar rangos de valores. En el siguiente ejemplo declaramos los parámetros P_FECHA y P_NOMBRE.

Imagen 1.1 - Declaración de parámetros en la pantalla de selección

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

126

Manual de estudios Curso Programador ABAP Nivel Inicial

El agregado de la cláusula OBLIGATORY hace que el parámetro sea obligatorio. El agregado de la cláusula DEFAULT asigna un valor por defecto al parámetro. Si ejecutamos nuestro reporte veremos lo siguiente:

Imagen 1.2 - Las cláusulas OBLIGATORY y DEFAULT

Lo que vemos es que al ejecutar nuestro reporte nos aparece la pantalla de selección que acabamos de crear. Vemos que a la derecha de la fecha nos aparece el icono

.

Si presionamos sobre el ícono o presionamos F4 dentro del campo fecha, se abrirá la siguiente ventana:

Imagen 1.3 - Ayuda de búsqueda del calendario para campos de fecha

Aquí estamos viendo la ayuda de búsqueda asociada al campo SY-DATUM el cual es el tipo de nuestro parámetro. El tema de las ayudas de búsqueda lo veremos en detalle en la próxima unidad. ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

127

Manual de estudios Curso Programador ABAP Nivel Inicial

Ahora vamos a cambiar las descripciones de los parámetros que aparecen en pantalla. Para esto vamos a ir a:

Imagen 1.4 - Opción del menú para modificar los textos de selección

Y ingresamos las descripciones que mejor se adapten a nuestro propósito.

Imagen 1.5 - Modificamos los textos de selección

También se pueden crear parámetros tipo Checkbox en donde el usuario puede tildar las opciones que prefiera o tipo Radiobutton donde el usuario selecciona una de las opciones entre todas las existentes. Veamos un ejemplo de estos dos tipos de parámetros:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

128

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.6 - Declaración de parámetros checkbox y radiobutton

Los cuales se visualizarán de la siguiente manera en pantalla:

Imagen 1.7 - Visualización en pantalla de checkbox y radiobutton

Los SELECT-OPTIONS son iguales a los PARAMETER salvo que en ellos se puede ingresar rangos de valores, es decir un valor desde y un valor hasta, a parte de valores individuales. En el siguiente ejemplo, declaramos el SELECT-OPTIONS S_CLAVEP.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

129

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.8 - Declaración de select-options

De nuevo, si ejecutamos el reporte, a la derecha del campo Clave de país nos aparece el icono

, si lo presionamos

vemos la ayuda de búsqueda correspondiente al tipo LAND1_GP que es un tipo de la tabla KNA1.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

130

Manual de estudios Curso Programador ABAP Nivel Inicial

Una vez que ingresamos todos los parámetros de nuestro reporte y ejecutamos el programa, lo que vamos a querer es que dependiendo de los parámetros introducidos se produzcan determinadas acciones. Para analizar el contenido de los parámetros existe el evento AT SELECTION-SCREEN. En este evento es donde se validan los valores ingresados en la pantalla de selección. Supongamos que queremos que la fecha ingresada por pantalla sea mayor o igual a la fecha actual y que si no es así se emita un mensaje en la pantalla advirtiendo que el valor introducido es incorrecto. Para esto, vamos a tener que crear una Clase de mensajes a través de la transacción SE91 tal como vemos a continuación:

Imagen 2.1 - Creación de clases de mensajes a través de la transacción SE91

Le asignamos una descripción y grabamos.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

131

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.2 - Asignamos un texto breve a la clase de mensajes

Y creamos nuestro primer mensaje.

Imagen 2.3 - Creamos nuestro primer mensaje

Luego en nuestro programa, escribiremos el código correspondiente en el evento AT SELECTION-SCREEN para hacer cumplir con esta validación.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

132

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.4 - Escribimos el mensaje en el evento AT SELECTION-SCREEN

Por último, ejecutamos nuestro reporte con una fecha de la pantalla de selección anterior a la fecha actual y vemos el siguiente mensaje en el extremo inferior izquierdo de la pantalla.

Imagen 2.5 - Visualizamos el mensaje en pantalla

El mensaje que mostramos es un mensaje de error. Esto está determinado por la letra e que se antecede al número del mensaje y la clase de mensajes entre paréntesis.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

133

Manual de estudios Curso Programador ABAP Nivel Inicial

Los tipos de mensajes existentes son:

Tabla 2.1 - Tipos de mensaje

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

134

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

135

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 3: Diccionario de datos Diccionario de datos Curso: Programador ABAP Nivel Inicial

CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

136

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

MÓDULO: PROGRAMADOR ABAP INICIAL UNIDAD: Diccionario de datos

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

137

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

138

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

139

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

140

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

141

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Tablas internas Aprenderemos que son las tablas internas y todo lo relativo a su utilización en ABAP. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 3: Diccionario de datos

CVOSOFT IT Academy - Formación en Sistemas.

Si queremos guardar una colección de registros de datos de la misma estructura en memoria, sin necesidad de acceder continuamente a las bases de datos y poder realizar diversas operaciones con este conjunto de información, entonces utilizaremos tablas internas.

El uso típico que se le da a una tabla interna es: Para almacenar temporalmente los datos de las bases de datos para un procesamiento futuro. Para estructurar y formatear datos que se mostrarán como salida del programa. Para formatear datos para ser utilizados por otros servicios.

La sintaxis para su declaración es la siguiente:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

142

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - Sintaxis para la declaración de una tabla interna

De esta manera definiremos una tabla interna con n líneas en memoria más una línea de cabecera o área de trabajo. La cantidad de líneas que se especifican en OCCURS no limitan el tamaño de la tabla sino la cantidad de registros que se guardarán en memoria simultáneamente.

En el próximo ejemplo declaramos la tabla interna TI_PROVEEDORES.

Imagen 2.2 - Ejemplo de declaración de una tabla interna

Otra forma de declarar la misma tabla sería:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

143

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - Otra forma de declarar la misma tabla interna

Para llenar con datos una tabla interna utilizamos: APPEND TO :

se añade un registro a la tabla interna en la última posición con los valores que tengamos en el área

de trabajo. Veamos un ejemplo:

Imagen 3.3 - Agregado de registros a una tabla interna

Llenamos la tabla interna con el contenido de una base de datos. Esto lo haremos con la sentencia SELECT que veremos en detalle en la próxima lección.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

144

Manual de estudios Curso Programador ABAP Nivel Inicial

Para ordenar una tabla interna utilizamos la sentencia SORT.

Imagen 4.1 - Ordenamiento de una tabla interna

En el ejemplo anterior ordenamos la tabla TI_PROVEEDORES de forma descendente por DNI lo cual invertirá el orden en el que fueron cargados srcinalmente los registros. Para ordenar de menor a mayor hay que utilizar la cláusula ASCENDING.

Para recorrer una tabla interna y procesar registro a registro utilizaremos la sentencia LOOP-ENDLOOP.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

145

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 5.1 - Recorremos una tabla interna

Si no existe ningún registro que cumpla la condición especificada en la cláusula WHERE, el SY-SUBRC será distinto de cero.

Para leer un registro concreto de una tabla interna sin necesidad de recorrerla utilizamos la sentencia READ TABLE.

Imagen 6.1 - Lectura de una tabla interna

Si se encuentra el registro buscado, el SY-SUBRC será cero, caso contrario, será distinto de cero. Si se desea leer los datos que se encuentran en una posición particular de la tabla se utilizará la cláusula INDEX tal como vemos en el siguiente ejemplo. ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

146

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 6.2 - Lectura de una tabla interna por índice

Para modificar el contenido de un registro de una tabla interna utilizamos la sentencia MODIFY. En el siguiente ejemplo modificamos el campo DNI correspondiente al primer registro de la tabla interna.

Imagen 7.1 - Modificación de una tabla interna

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

147

Manual de estudios Curso Programador ABAP Nivel Inicial

Para insertar un registro en una posición determinada de una tabla interna utilizamos la sentencia INSERT. En el siguiente ejemplo insertamos un registro en la posición 2.

Imagen 7.2 - Inserción de registros en una tabla interna

Para borrar el contenido de un registro de una tabla interna utilizamos la sentencia DELETE. En el siguiente ejemplo borramos el registro de la tabla interna de proveedores con DNI igual a 20857492.

Imagen 7.3 - Borrado de un registro de una tabla interna

Para borrar todo el contenido de una tabla interna utilizamos la sentencia REFRESH. En el siguiente ejemplo inicializamos la tabla interna TI_PROVEEDORES.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

148

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 7.4 - Borrado del contenido completo de una tabla interna

Para saber cuantos registros tiene una tabla interna utilizamos la sentencia DESCRIBE TABLE. En el siguiente ejemplo declaramos V_LINEAS que es la variable que va a contener la cantidad de filas de la tabla interna TI_PROVEEDORES luego de ejecutar la sentencia DESCRIBE TABLE.

Imagen 7.5 - Cantidad de registros de una tabla interna

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

149

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Tablas Bases de datos, elementos de datos y dominios Analizaremos los distintos datos existentes en el sistema SAP, que es el diccionario de datos y como crear una tabla base de datos, un elemento de datos y un dominio. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 3: Diccionario de datos CVOSOFT IT Academy - Formación en Sistemas.

Podemos clasificar los datos del sistema SAP en tres tipos: datos maestros, datos de movimientos y datos del sistema o de control. Datos maestros: son datos que no se modifican muy a menudo. Por ejemplo: datos de materiales, cuentas, bancos, clientes, etc. Datos de movimientos: son datos muy volátiles y con gran volumen de generación. Por ejemplo: datos de facturas, pedidos, etc. Datos del sistema o de control: son datos que tienen que ver con la configuración del sistema.

El diccionario de datos permite la administración de todas las definiciones de datos usadas en el sistema SAP. Se accede a él a través de la transacción SE11 tal como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

150

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - El diccionario de datos ABAP

Aquí, podemos crear, modificar y visualizar tablas base de datos, Vistas, Estructuras, Elementos de datos, Grupos de tipos, Dominios, Ayudas para búsqueda y Objetos de bloqueo.

Vamos a crear la tabla ZTABLA_USUARIOS. Para esto ingresamos el nombre de la nueva tabla a la derecha del texto "Tabla base datos" y presionamos el botón Crear.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

151

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - Creación de una tabla base de datos

Luego veremos la siguiente pantalla:

Imagen 3.2 - Solapa Entrega y Actualización

Completamos la Descripción breve de la nueva tabla con el texto "Tabla de usuarios". En la solapa Entrega y actualización completamos la Clase de entrega con "A" que significa que la tabla es de aplicación y que tiene datos maestros y de movimientos. Existen otras opciones que podremos ver si presionamos el botón

que aparece al posicionar el cursor en el cuadro de texto.

En Browser datos/Actual. vista tabla elegiremos la opción "Visual./Actuali.permitida" esto significa que se podrá actualizar el contenido de la tabla mediante la transacción SM30.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

152

Manual de estudios Curso Programador ABAP Nivel Inicial

En la solapa "Campos" vamos a ingresar los campos que va a tener nuestra tabla. Estos van a ser: DNI, NOMBRE_APE, ESTADO_USU y el MANDANTE que no debe faltar en ninguna tabla.

Imagen 3.3 - Campos de una tabla base de datos

A cada campo de la tabla se le puede asignar un tipo instalado seleccionando la línea del campo y presionando el botón Tipo Instalado cada campo.

, como podría ser CHAR de 30 posiciones o crear un elemento de datos para

En nuestra tabla, crearemos los elementos de datos Z_DNI, Z_NOMBRE_APE y Z_ESTADO_USU. También es posible utilizar elementos de datos que ya existen en el sistema, como es el caso del MANDT. Para crear el elemento de datos Z_DNI haremos doble clic sobre el elemento, el sistema nos ofrecerá guardar la tabla, diremos que sí y le asignaremos como paquete objeto local. Luego nos aparecerá la siguiente ventana de dialogo:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

153

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.4 - Ventana de diálogo de creación de elementos de datos

Presionaremos la opción "Si" y nos aparecerá la siguiente pantalla:

Imagen 3.5 - Definición del tipo de datos del elemento de datos

En la Descripción breve completaremos una descripción del contenido del campo. Luego podemos elegir entre crear un dominio para este campo, utilizar un tipo instalado o predefined type ya existente en el sistema o utilizar un tipo referencia o Reference type. En este caso utilizaremos un tipo instalado y le asignaremos el tipo de datos NUMC de 8 posiciones. Luego iremos a la solapa Denom.campo (Field Label) y actualizaremos los denominadores de campo que son los títulos con los que se verá el campo cuando se visualice en una transacción o reporte.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

154

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.6 - Denominadores de campo

En este caso los denominadores de campo son todos iguales pero la idea es dar una descripción más detallada del breve a la cabecera. Por último, activaremos el elemento de datos mediante el botón

y nos aparecerá una nueva ventana de diálogo

donde confirmaremos la activación seleccionando el elemento a activar y presionando el botón

.

Para el campo NOMBRE_APE crearemos el elemento de datos Z_NOMBRE_APE tal como hicimos con Z_DNI.

Imagen 3.7 - Elemento de datos para el campo Nombre y Apellido

Para el campo ESTADO_USU, crearemos el elemento de datos Z_ESTADO_USU tal como hicimos con Z_DNI y también crearemos el dominio ZZ_ESTADO_USU para asociarle el ámbito de valores: A=Activo, I=Inactivo y N=Anulado.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

155

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.8 - Creación de un dominio para el campo Estado del Usuario

Si hacemos doble clic sobre ZZ_ESTADO_USU el sistema nos preguntará en una ventana de diálogo si deseamos crear el dominio. Contestaremos que sí y veremos la siguiente pantalla:

Imagen 3.9 -Definición del tipo de datos para el dominio

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

156

Manual de estudios Curso Programador ABAP Nivel Inicial

Completamos la Descripción breve del dominio con "Estado del usuario". El tipo de datos será CHAR de 1 posición. Luego en la solapa Value Range o Ámbito de valores completaremos el ámbito de los valores del dominio.

Imagen 3.10 -Definición del ámbito de valores para el dominio

Por último, activamos el dominio ZZ_ESTADO_USU, luego activamos el elemento de datos Z_ESTADO_USU y finalmente lo que nos queda antes de activar la tabla ZTABLA_USUARIOS es configurar las opciones técnicas de la tabla presionando el botón Opciones Técnicas (Technical Settings)

.

Aquí completaremos la Clase de datos con "APPL0" que es la correspondiente a "Datos maestros, tablas

transparentes" y la Categ.tamaño con "3" que es el valor correspondiente a una tabla de 78.000 a 310.000 registros de datos (Estos valores dependerán de la instalación).

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

157

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.11 -Configuración de las opciones técnicas

Luego activamos la tabla ZTABLA_USUARIOS y veremos la siguiente ventana de diálogo donde el sistema nos informa que existen mensajes de advertencia. Aquí se nos presentan dos opciones: si presionamos No la tabla se activará sin importar los mensajes de advertencia, si presionamos Sí el sistema nos dirá cuales son las advertencias para que las corrijamos previamente a la activación de la tabla. Dado que nuestro objetivo como desarrolladores ABAP siempre será priorizar la calidad presionaremos Sí.

Imagen 3.12 -Mensajes de advertencia en activación

En la siguiente pantalla el sistema nos informa que falta definir la Categoría de Ampliación de la tabla base de datos que acabamos de construir.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

158

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.13 -Mensajes de advertencia relativos a la categoría de ampliación

Para definir la Categoría de ampliación seleccionamos la opción del menú Detalles / Categoría de ampliación tal como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

159

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.14 - Definición de la categoría de ampliación

Luego visualizaremos la siguiente ventana de diálogo donde el sistema nos informa que la categoría de ampliación de la tabla no se encuentra clasificada. Presionamos el botón

.

Imagen 3.15 - Tabla base de datos no clasificada

Finalmente seleccionamos la opción Ampliable de cualquier manera y presionamos el botón Tomar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

160

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.16 - Seleccionamos la opción Ampliable de cualquier manera

Ahora sí podremos activar nuestra tabla base de datos sin ninguna advertencia.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

161

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Actualización y visualización de registros, Estructuras y Ayudas de búsqueda Analizaremos como crear una superficie de actualización para una tabla, como visualizar los registros de una tabla, como crear una estructura y una ayuda de búsqueda para parámetros. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 3: Diccionario de datos CVOSOFT IT Academy - Formación en Sistemas.

Una vez que creamos la tabla ZTABLA_USUARIOS vamos a crearle una superficie de actualización para poder ingresarle registros. Para esto vamos a ingresar a la transacción SE11 con el nombre de la tabla y vamos a ir a la siguiente opción del menú:

Imagen 1.1 - Creación de la superficie de actualización a través del menú

Aquí veremos la siguiente pantalla en donde completaremos los campos:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

162

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Completamos los campos necesarios

Grupo de autorizaciones (Authorization group): con &NC& que significa que no estamos asociando la superficie a ningún grupo en particular. Grupo de Funciones (Function group): aquí colocaremos el mismo nombre de la tabla. Este tema lo veremos en detalle en la unidad de Funciones y Subrutinas. Tipo actualización (Maintenance type): seleccionaremos un nivel es decir one step.

Luego presionaremos el botón Buscar N°Imágenes

y el sistema nos ofrecerá números de imágenes.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

163

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.3 - Seleccionamos la opción Proponer números de imagen

Presionaremos el botón presionamos el botón

y se completará con números, el campo de la pantalla "Imágen resumen". Finalmente y guardamos los cambios como "Objeto local".

Ahora vamos a probar de ingresar registros en la tabla ZTABLA_USUARIOS, para ello vamos a ir a la transacción SM30, escribiendo el nombre de nuestra tabla y presionamos el botón Actualizar

.

Imagen 1.4 - Actualización de la tabla base de datos a través de la transacción SM30

Aquí presionamos el botón Nuevas Entradas

y comenzamos a cargar registros en nuestra tabla.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

164

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.5 - Introducimos las nuevas entradas en la tabla

Al finalizar la carga presionamos el botón Grabar

.

Para visualizar los datos que acabamos de crear vamos a utilizar la transacción SE16. Allí vamos a escribir el nombre de nuestra tabla y presionamos enter.

Imagen 2.1 - Imagen inicial de la transacción SE16

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

165

Manual de estudios Curso Programador ABAP Nivel Inicial

Inmediatamente después, veremos la siguiente pantalla en donde podremos filtrar los datos a mostrar por cualquiera de los campos que componen nuestra tabla. También podremos saber la cantidad de registros de nuestra tabla con el botón Cantidad de entradas .

Imagen 2.2 - Visualizamos los campos para filtrar la visualización de los registros

Aquí presionamos F8 y visualizaremos el contenido de la tabla ZTABLA_USUARIOS tal como vemos:

Imagen 2.3 - Visualización de los registros almacenados en la tabla

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

166

Manual de estudios Curso Programador ABAP Nivel Inicial

Vamos a crear una estructura, para ello accedemos a la transacción SE11, en Tipo de datos colocamos el nombre de nuestra estructura que será ZUSUARIOS y presionamos el botón Crear.

Imagen 3.1 - Creación de una estructura a través de la transacción SE11

Luego aparecerá en la pantalla la siguiente ventana de diálogo, seleccionamos la opción Estructura y presionamos el botón continuar de la tilde verde.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

167

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.2 - Seleccionamos la opción Estructura

Luego ingresamos la Descripción breve que será "Estructura de usuarios" y los campos que tendrá la estructura, que en este caso serán los mismos de la tabla ZTABLA_USUARIOS como vemos a continuación:

Imagen 3.3 - Introducimos la descripción breve y los campos de la estructura

Finalmente activamos

.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

168

Manual de estudios Curso Programador ABAP Nivel Inicial

Supongamos que tenemos un reporte ABAP con la siguiente pantalla de selección:

Imagen 4.1 - Pantalla de selección de un reporte

Y queremos que al presionar F4 sobre el campo de entrada de la pantalla se muestren los nombre y apellidos de los usuarios. Para ello, tenemos que crear la ayuda de búsqueda Z_AYUDA_USUARIOS en la transacción SE11. Ingresamos el nombre Z_AYUDA_USUARIOS o la derecha del texto Ayuda de búsqueda (Search help) y presionamos el botón Crear.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

169

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.2 - Creación de una ayuda de búsqueda a través de la transacción SE11

Luego veremos la siguiente ventana de diálogo:

Imagen 4.3 - Seleccionamos ayuda de búsqueda elemental

Aquí seleccionaremos la opción Ayuda p.búsqueda elemental (Elementary search help) y completamos la pantalla con los siguientes datos:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

170

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.4 - Configuramos la ayuda de búsqueda

El método de selección será el nombre de la tabla de donde se obtienen los datos. Los campos NOMBRE_APE, DNI y ESTADO_USU son los que se mostrarán por pantalla al utilizar la ayuda y el campo NOMBRE_APE en particular será el que se exporte a la pantalla del reporte por eso tiene tildada la columna EXP. Para finalizar activamos la ayuda.

Luego, modificaremos la declaración del parámetro de la pantalla de selección de nuestro reporte con la sentencia MATCHCODE OBJECT seguida del nombre de la ayuda de búsqueda que acabamos de crear.

Imagen 4.5 - Modificamos la declaración del parámetro en la pantalla de selección

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

171

Manual de estudios Curso Programador ABAP Nivel Inicial

Vemos que al ejecutar el reporte aparece el icono

a la derecha del campo Usuario. Finalmente, si lo presionamos

veremos el siguiente listado de opciones de selección:

Imagen 4.6 - Visualizamos la ayuda de búsqueda en pantalla

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

172

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Instrucciones SQL: La sentencia SELECT Aprenderemos a utilizar la sentencia SELECT. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 3: Diccionario de datos

CVOSOFT IT Academy - Formación en Sistemas.

Existen en ABAP un conjunto de sentencias que se utilizan para acceder a las bases de datos. La principal sentencia es SELECT, cuya sintaxis es la siguiente:

Imagen 1.1 - La sentencia SELECT

Si quisiéramos obtener todos los registros de la tabla ZTABLA_USUARIOS usaríamos el siguiente código:

Imagen 1.2 - La sentencia SELECT *

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

173

Manual de estudios Curso Programador ABAP Nivel Inicial

Donde TI_USUARIOS es una tabla interna del mismo tipo de la tabla ZTABLA_USUARIOS. El asterisco indica que se obtendrán todos los campos de la tabla. La cláusula INTO TABLE se utiliza cuando el resultado de la consulta se guarda en una tabla interna.

En la sentencia anterior, en caso de existir registros en la tabla ZTABLA_USUARIOS, estos pisarán el contenido de la tabla interna TI_USUARIOS. Podría ocurrir que queramos conservar el contenido de la tabla interna TI_USUARIOS luego de reiteradas selecciones. En este caso tendríamos que usar la cláusula APPENDING TABLE en lugar de INTO TABLE.

Si quisiéramos obtener de todos los campos de la tabla ZTABLA_USUARIOS el campo DNI deberíamos crear una tabla auxiliar solo con el campo DNI para alojar el resultado de la consulta.

Imagen 1.3 - SELECT de un solo campo almacenado en una estructura

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

174

Manual de estudios Curso Programador ABAP Nivel Inicial

Si quisiéramos obtener la primera ocurrencia de la tabla ZTABLA_USUARIOS donde se cumpla determinada condición debemos usar la cláusula SINGLE como vemos a continuación:

Imagen 1.4 - La sentencia SELECT SINGLE

El resultado de esta consulta será guardado en la estructura WA_USUARIOS que es del mismo tipo que la tabla ZTABLA_USUARIOS. Si quisiéramos hacer la misma consulta anterior pero necesitamos obtener solo el campo DNI entonces ya no sería necesaria la estructura WA_USUARIOS sino que guardaríamos el resultado en la variable V_DNI tal como vemos en el siguiente ejemplo:

Imagen 1.5 - SELECT de un solo campo almacenado en una variable

Si quisiéramos obtener de una tabla los registros que cumplan una condición pero queremos guardarlos en una tabla interna que no tiene la misma estructura que la tabla, entonces tenemos que usar la cláusula INTO CORRESPONDING FIELDS OF TABLE.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

175

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.6 - La sentencia SELECT INTO CORRESPONDING FIELDS OF TABLE

En el ejemplo anterior, la tabla interna TI_USUARIOS2 está compuesta por los campos NOMBRE_APE y ESTADO_USU. Supongamos que tenemos un reporte que tiene la pantalla de selección:

Imagen 1.7 - Pantalla de selección de un reporte

Donde Nombre y Apellido es el parameter P_NOMAPE y Estado Usuario es el select-options S_ESTADO. Si quisiéramos hacer una selección a la tabla ZTABLA_USUARIOS en base a lo que los usuarios ingresan por pantalla haríamos lo siguiente:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

176

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.8 - Selección utilizando los parámetros de la pantalla de selección

La cláusula IN se utiliza para los select-options en las condiciones de un select. Ahora, si quisiéramos obtener el usuario activo con DNI más alto tendríamos que usar la cláusula MAX de la siguiente forma:

Imagen 1.9 - La sentencia SELECT SINGLE MAX

Si quisiéramos saber la cantidad de usuarios con estado = "activo", debemos usar la cláusula COUNT de la siguiente manera:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

177

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.10 - La sentencia SELECT SINGLE COUNT

Si quisiéramos obtener de una tabla todos los registros que existan en una tabla interna cargada con datos, entonces debemos utilizar la sentencia FOR ALL ENTRIES IN que nos permite especificar condiciones en tiempo de ejecución. Veamos un ejemplo:

Imagen 1.11 - La sentencia FOR ALL ENTRIES

Si quisiéramos obtener todos los registros que cumplan con un patrón de texto en alguno de sus campos, debemos utilizar la sentencia LIKE como vemos en el siguiente ejemplo:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

178

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.12 - La sentencia LIKE

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

179

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

INSERT, UPDATE, MODIFY, DELETE y actualización y recuperación de la BD Aprenderemos a utilizar las sentencias INSERT, UPDATE, MODIFY, DELETE y como realizar la actualización y recuperación de la base de datos. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 3: Diccionario de datos

CVOSOFT IT Academy - Formación en Sistemas.

La sentencia INSERT permite introducir nuevos registros a una base de datos. Por ejemplo, si quisiéramos introducir un nuevo registro en la tabla ZTABLA_USUARIOS haríamos lo siguiente:

Imagen 1.1 - INSERT de un registro en una tabla base de datos

Si quisiéramos introducir todos los registros de una tabla interna haríamos lo siguiente:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

180

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - INSERT de una tabla interna en una tabla base de datos

Si existe algún registro en la base de datos con igual clave que un registro en la tabla interna se producirá un error (SY-SUBRC distinto de cero).

La sentencia UPDATE permite actualizar el contenido de uno o varios registros de una tabla base de datos registros de una tabla base de datos. Por ejemplo, si quisiéramos actualizar un registro de una tabla base de datos haríamos lo siguiente:

Imagen 2.1 - Actualización de un registro de la tabla base de datos

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

181

Manual de estudios Curso Programador ABAP Nivel Inicial

Si quisiéramos actualizar los registros de la tabla ZTABLA_USUARIOS que cumplan determinada condición, haríamos lo siguiente:

Imagen 2.2 - Actualizamos los registros que cumplen la condición

Si quisiéramos actualizar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:

Imagen 2.3 - Actualización de una tabla base de datos a partir de una tabla interna

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

182

Manual de estudios Curso Programador ABAP Nivel Inicial

La sentencia MODIFY permite modificar el contenido de uno o varios registros de una tabla base de datos. Por ejemplo, si quisiéramos modificar un registro de una tabla base de datos haríamos lo siguiente:

Imagen 3.1 - Modificación de un registro de la tabla base de datos

Si quisiéramos modificar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:

Imagen 3.2 - Modificación de una tabla base de datos a partir de una tabla interna

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

183

Manual de estudios Curso Programador ABAP Nivel Inicial

La sentencia DELETE permite borrar el contenido de uno o varios registros de una tabla base de datos. Por ejemplo, si quisiéramos borrar un registro de una tabla base de datos haríamos lo siguiente:

Imagen 4.1 - Borrado de un registro de la tabla base de datos

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

184

Manual de estudios Curso Programador ABAP Nivel Inicial

Si quisiéramos borrar los registros de la tabla ZTABLA_USUARIOS que cumplan determinada condición, haríamos lo siguiente:

Imagen 4.2 - Borrado de los registros que cumplan la condición

Si quisiéramos borrar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:

Imagen 4.3 - Borrado de los registros que existan en la tabla interna

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

185

Manual de estudios Curso Programador ABAP Nivel Inicial

Para finalizar una unidad de procesamiento lógico LUW de base de datos se utiliza un COMMIT WORK, que realiza un update físico en la base de datos, haciendo irrevocable cualquier modificación en la base de datos. Si deseamos deshacer todas las operaciones realizadas sobre la base de datos desde el último COMMIT WORK, realizaremos un ROLLBACK WORK. Veamos un ejemplo al insertar registros en la base de datos ZTABLA_USUARIOS:

Imagen 5.1 - Las sentencias COMMIT y ROLLBACK

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

186

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

187

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 4: Subrutinas, Funciones y Batch Subrutinas, Funciones y Batch Curso: Programador ABAP Nivel Inicial

CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

188

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

· MÓDULO: PROGRAMADOR ABAP INICIAL · UNIDAD: Subrutinas, Funciones y Batch

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

189

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

190

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

191

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

192

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

193

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Subrutinas Aprenderemos que son las subrutinas y que tipos de subrutinas existen, analizaremos en detalle cada uno de ellos. También analizaremos las distintas formas de pasar parámetros a subrutinas. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 4: Subrutinas, Funciones y Batch

CVOSOFT IT Academy - Formación en Sistemas.

La idea de pasar el código de los programas a subrutinas, es para que los programas sean más fáciles de leer y de mantener.

La modularización ayuda a encontrar más fácilmente los errores en los programas. Esto se debe a que al debaguear un programa solo me preocupo que el resultado de una subrutina sea el esperado sin entrar en detalle de como se llega a ese resultado. Una subrutina se declara con la palabra reservada PERFORM seguida del nombre de la subrutina. Veamos un ejemplo:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

194

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.1 - Declaración de una subrutina

Aquí creamos una subrutina para modularizar la selección de los datos. Si hacemos doble clic en el nombre de la subrutina, el sistema nos propondrá crear la subrutina en la siguiente ventana de diálogo:

Imagen 1.2 - Ventana de diálogo de creación de una subrutina

Contestaremos que sí y el sistema nos preguntará donde queremos generar la subrutina, las opciones son: crear un nuevo include de datos o crearlas en el mismo programa de control. En este caso, las crearemos en el programa de control. Luego el sistema generará el siguiente bloque de código en nuestro programa para que lo completemos con el código que corresponda:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

195

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.3 - Generación de la subrutina

Existen dos tipos de subrutinas: Internas: cuando la subrutina está dentro del mismo programa que la llama. Externas: cuando la subrutina está en un programa distinto al que las llama. Como puede ser el caso de un include de subrutinas o otro programa.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

196

Manual de estudios Curso Programador ABAP Nivel Inicial

Como vimos en el ejemplo del punto 1, para crear una subrutina interna usamos la palabra clave PERFORM seguida del nombre de la subrutina. Esto crea un bloque FORM-ENDFORM donde colocamos nuestro código. Se pueden pasar datos entre los programas principales y una subrutina a través de parámetros. A los parámetros definidos en el programa principal, a la derecha de la palabra PERFORM se los llama parámetros actuales. A los parámetros definidos en la subrutina, a la derecha de la palabra FORM, se los llama parámetros formales.

Los parámetros pueden ser de tres tipos: De entrada: cuando se utilizan para pasar datos del programa principal a la subrutina. De salida: cuando se utilizan para pasar datos de la subrutina al programa principal. De entrada y salida: cuando se utilizan para pasar datos de la subrutina al programa principal y también viceversa.

Para pasar los parámetros utilizaremos tres opciones: USING, CHANGING y TABLES. Estas opciones se deben escribir en el orden que mostramos a continuación en el siguiente gráfico:

Imagen 4.1 - Utilización de USING, CHANGING y TABLES

En el bloque FORM-ENDFORM debemos especificar el tipo de los parámetros formales. De esta forma nos aseguramos que solo se pasen parámetros del tipo que corresponde a la subrutina. Veamos un ejemplo donde pasamos una tabla interna, una estructura y una variable de tipo carácter.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

197

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.2 - Ejemplo de paso de parámetros

Existen tres formas de pasar parámetros: Paso por valor: durante la llamada a la subrutina, los parámetros formales son creados como copias de los parámetros actuales. Los cambios en los parámetros formales no afectan a los parámetros actuales. Veamos un ejemplo:

Imagen 4.3 - Paso de parámetros por valor

Y la salida será B.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

198

Manual de estudios Curso Programador ABAP Nivel Inicial

Paso por referencia: durante la llamada a la subrutina, solo la dirección de los parámetros actuales se transfieren a los parámetros formales. Dentro de la subrutina, se trabaja con el campo del programa que hace la llamada. Si cambiamos los parámetros formales, el contenido del campo del programa que hace la llamada también cambia.

Imagen 4.4 - Paso de parámetros por referencia

Y la salida será A B y X X.

Paso por valor y resultado: durante la llamada a la subrutina, los parámetros formales son creados como copias de los parámetros actuales. Los cambios en los parámetros formales son copiados a los parámetros actuales al final de la subrutina.

Imagen 4.5 - Paso de parámetros por valor y resultado

Y la salida será H1 es: B.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

199

Manual de estudios Curso Programador ABAP Nivel Inicial

Si quisiéramos llamar a una subrutina que está en un programa distinto al que estamos procesando, debemos utilizar la siguiente sintaxis:

Imagen 5.1 - Sintaxis para la llamada de una subrutina externa

También podemos agregar includes de subrutinas a nuestro programa de la siguiente manera:

Imagen 5.2 - Declaración de includes de subrutinas

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

200

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Módulos de Función Aprenderemos que son los módulos de función y cuales son los pasos necesarios para crear un módulo de función. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 4: Subrutinas, Funciones y Batch CVOSOFT IT Academy - Formación en Sistemas.

Para acceder a estas funciones, utilizaremos la transacción SE37 como vemos a continuación:

Imagen 1.1 - Biblioteca de funciones transacción SE37

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

201

Manual de estudios Curso Programador ABAP Nivel Inicial

Tienen una interfaz definida, ya que su diseño facilita el paso de parámetros tanto de entrada como de salida.

Imagen 1.2 - Estructura de un módulo de funciones

Veamos un ejemplo de como utilizar un módulo de función ya existente.

Vamos a crear un nuevo programa ABAP,

donde vamos a ejecutar la función POPUP_TO_CONFIRM que se utiliza para pedir confirmación al usuario antes de tomar una acción determinada.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

202

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.3 - Ejemplo de declaración de POPUP_TO_CONFIRM

La ejecución de este programa dará como resultado la siguiente salida:

Imagen 1.4 - Ejecución de la función POPUP_TO_CONFIRM

Para crear un módulo de función accedemos a la transacción SE37. Allí escribiremos el nombre de nuestra función que será Z_TEST_CLIENTES y presionaremos el botón Crear, como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

203

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - Creamos el módulo de funciones

Inmediatamente después veremos la siguiente ventana de diálogo en donde debemos escribir el nombre del grupo de funciones al que pertenece la función y una descripción breve de la función que queremos crear.

Imagen 2.2 - Introducimos el grupo de funciones y una descripción

Al presionar el botón Grabar el sistema nos informa que previamente a la creación del módulo de funciones debemos crear el Grupo de funciones asociado:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

204

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - El grupo de funciones no existe por lo que lo creamos

Para crear un grupo de funciones, debemos seleccionar en el menú de la transacción SE37 la ruta Pasar a / Gestión gr.funciones / Crear grupo (Goto/Functions Groups/Create Group) tal como vemos a continuación:

Imagen 2.4 - Opción del menú para crear el grupo de funciones

Aquí ingresaremos el nombre de nuestro grupo de función y presionamos el botón Grabar como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

205

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.5 - Introducimos el nombre del grupo de funciones y grabamos

Luego veremos en la parte inferior de la pantalla el siguiente mensaje que nos indica que el grupo de funciones ha sido creado correctamente:

Imagen 2.6 - El grupo de funciones ha sido creado

Si quisiéramos definir variables que se puedan utilizar en todas las funciones pertenecientes a nuestro grupo de funciones, debemos dirigirnos en el menú de la transacción SE37 a Pasar a / Datos Globales (Goto/GlobalData) y veríamos la siguiente pantalla donde definiremos las variables globales.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

206

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.7 - Declaración de datos globales de un grupo de funciones

Si quisiéramos declarar subrutinas que puedan ser utilizadas por todas las funciones del grupo, debemos en el menú de la transacción SE37, ir a Pasar a / Programa de Control (Goto/MainProgram).

Imagen 2.8 - Visualizamos el menú Pasar a / Programa de control

Allí descomentamos el primero de los include que está especificado para Subprogramas, le cambiamos el nombre para que comience con Z, lo creamos haciendo doble clic sobre él y luego colocamos las subrutinas en él.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

207

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.9 - Declaración de subrutinas globales de un grupo de funciones

Finalmente, volvemos a la transacción SE37 con nuestro grupo de funciones creado, presionamos Crear, ingresamos el grupo de función y la descripción de la función, grabamos y veremos la función Z_TEST_CLIENTES creada tal como muestra el siguiente gráfico:

Imagen 2.10 - Módulo de funciones creado

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

208

Manual de estudios Curso Programador ABAP Nivel Inicial

Veamos la utilidad de cada una de las solapas que se visualizan: Atributos (Attributes): aquí especificamos la descripción de la función y el tipo de función que puede ser Normal, RFC o Update module.

Import: aquí especificamos los parámetros de entrada de la función.

Export: aquí especificamos los parámetros de salida de la función.

Modificaciones (Changing): aquí especificamos los parámetros de salida que cambiarán de valor con la ejecución de la función.

Tablas (Tables): aquí especificamos las tablas que se utilizan en la función.

Excepciones (Exceptions): aquí especificamos las excepciones de la función. Una excepción es un error que se produce al ejecutar la función y que ha sido catalogado cuando se creo el módulo de función de modo de poder identificar rápidamente el motivo del error.

Código Fuente (Source Code): aquí pondremos el código ABAP de la función.

Ahora, volviendo a nuestra función Z_TEST_CLIENTES, vamos a agregarle como parámetro de entrada el DNI.

Imagen 2.11 - Agregamos los parámetros de entrada

Y como parámetro de salida, en la solapa Modificaciones definimos la estructura de usuarios de la tabla que creamos en la unidad 2 ZTABLA_USUARIOS.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

209

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.12 - Agregamos los parámetros de salida

Si quisiéramos pasar como parámetro una tabla interna en lugar de una estructura, entonces debemos crear un Tipo Tabla a través de la transacción SE11, por ejemplo ZTT_USUARIOS, el cual va a tener la estructura de la tabla ZTABLA_USUARIOS.

Imagen 2.13 - Como pasar tablas internas como parámetros

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

210

Manual de estudios Curso Programador ABAP Nivel Inicial

Luego pondremos código en la solapa Código Fuente para recuperar de la tabla ZTABLA_USUARIOS, los datos del usuario al que pertenezca el DNI de entrada.

Imagen 2.14 - Introducimos el código fuente de nuestro módulo de funciones

Finalmente activamos.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

211

Manual de estudios Curso Programador ABAP Nivel Inicial

Y podremos probar nuestra función ejecutándola.

Imagen 2.15 - Ejecutamos el módulo de funciones desde la transacción SE37

Y veremos los resultados de la ejecución de la misma:

Imagen 2.16 - Salida del módulo de funciones luego de su ejecución

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

212

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Módulos de función RFC Aprenderemos que es un módulo de función RFC, como se crea una RFC y cuales son los tipos de RFCs existentes. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 4: Subrutinas, Funciones y Batch CVOSOFT IT Academy - Formación en Sistemas.

El objetivo principal de las RFC es acceder a otros ambientes para obtener datos. La comunicación puede darse entre sistemas SAP o entre un sistema SAP y otro sistema que no sea SAP. Para llamar a una función RFC se debe agregar la cláusula DESTINATION al momento de declarar la función, como vemos en el siguiente ejemplo.

Veamos un ejemplo simple de cuando utilizaríamos una RFC: Si quisiéramos leer un registro de un cliente del sistema o ambiente DCR, a través de un programa ABAP existente en el ambiente DTR, crearíamos una RFC en DCR que devuelva los registros de los clientes. Luego llamaríamos a esta función en el ambiente DTR, utilizando un destino que previamente hemos creado a través de la transacción SM59 como veremos más adelante.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

213

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.1 - Ejemplo de utilización de una función RFC

Una función RFC se crea de la misma manera que se crea una función. Se accede a la transacción SE37 y se completan los mismos parámetros que completamos para crear una función a excepción de que se debe seleccionar en la solapa de Atributos la opción Módulo de acceso remoto (Remote Enabled Module) .

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

214

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - Marcamos módulo de acceso remoto

A su vez , las funciones creadas como RFC, pueden ser utilizadas como módulos de función Normales. Esto se logra de dos maneras diferentes: Utilizando la declaración CALL FUNCTION DESTINATION 'NONE' . Utilizando la declaración de un módulo de función normal, sin el agregado de la cláusula DESTINATION.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

215

Manual de estudios Curso Programador ABAP Nivel Inicial

Existen tres tipos de RFC: Sincrónicas: ambos sistemas deben estar disponibles al momento de la llamada de la función. Estas RFC están basadas en una comunicación sincrónica.

Transaccionales: los sistemas no necesitan estar disponibles al momento de la llamada a la función. Un único ID de transacción es generado y los programas llamados son almacenados en el sistema junto con los datos. Para crear una RFC transaccional debo utilizar el sufijo IN BACKGROUND TASK como mostramos en el siguiente gráfico:

Imagen 3.1 - Estructura de una RFC transaccional

En las RFC transaccionales, el sistema deja un log con el pedido de la llamada remota en las tablas estándar de SAP ARFCSSTATE y ARFCSDATA con todos los valores de los parámetros pasados en la ejecución.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

216

Manual de estudios Curso Programador ABAP Nivel Inicial

Para visualizar este log, utilizaremos la transacción SM58.

Imagen 3.2 - Visualizamos el log de ejecución con la transacción SM58

Cuando el programa que ejecuta la RFC ejecuta la sentencia COMMIT WORK, entonces es cuando la llamada remota es enviada al sistema remoto para su ejecución.

Asincrónicas: el programa llamador, llama a la función RFC y inmediatamente después termina su procesamiento. Luego la función RFC se ejecuta independientemente del programa llamador. Para crear una RFC asincrónica debo utilizar el sufijo STARTING NEW TASK como mostramos en el siguiente gráfico:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

217

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.3 - Estructura de una RFC asincrónica

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

218

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Destinos RFC Aprenderemos que es un destino RFC, cuales son los tipos de destinos RFC existentes y como crear, visualizar, actualizar y testear destinos RFC. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 4: Subrutinas, Funciones y Batch

CVOSOFT IT Academy - Formación en Sistemas.

Los destinos de las RFC son creados en la tabla estándar SAP RFCDES a través de la transacción SM59.

Imagen 1.1 - Transacción estándar SM59

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

219

Manual de estudios Curso Programador ABAP Nivel Inicial

Los Tipos de destinos RFC que se pueden crear en SAP son los siguientes: Conexiones ABAP Conexiones HTTP a servidor externo Conexiones internas Conexiones lógicas (SNA o CPI-C) Conexiones TCP/IP Conexiones con ABAP driver

En la transacción SM59 se pueden crear, visualizar, actualizar y testear destinos RFC.

Creación de un destino Para crear un nuevo destino RFC basta con presionar el botón Crear.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

220

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - Creación de un destino RFC

Y luego ingresamos ciertos parámetros que dependerán del tipo de conexión a crear.

Imagen 3.2 - Parámetros propios de la conexión

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

221

Manual de estudios Curso Programador ABAP Nivel Inicial

Visualización/Modificación de un destino Para Visualizar o modificar un destino RFC basta con presionar el botón de visualización o modificación dependiendo de la acción deseada.

Imagen 3.3 - Modificación y visualización de un destino RFC

Testeo de un destino Podemos chequear si un destino funciona correctamente. Para ello, hacemos doble clic sobre el destino y en la pantalla que nos aparece presionamos el botón Test de conexión.

Imagen 3.4 - Prueba de un destino RFC

Si la conexión funciona correctamente, veremos la siguiente pantalla:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

222

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.5 - Test de conexión exitoso

Entrada al sistema Remoto Podemos ingresar al sistema remoto a donde apunta la conexión RFC presionando el botón Entrada al sistema Remota que vemos a continuación:

Imagen 3.6 - Entrada al sistema remoto

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

223

Manual de estudios Curso Programador ABAP Nivel Inicial

Al ejecutar esta opción veremos la pantalla de conexión de SAP en donde deberemos introducir nuestros datos de acceso del sistema destino.

Imagen 3.7 - Introducimos los datos de acceso al sistema

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

224

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Batch Aprenderemos que es la ejecución de fondo de un programa ABAP y como realizarla. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 4: Subrutinas, Funciones y Batch

CVOSOFT IT Academy - Formación en Sistemas.

Existen dos formas de ejecutar un programa en ABAP: Online y Batch. En la ejecución Online el programa se ejecuta al momento de presionar F8 y los resultados de la ejecución se producen de manera inmediata. Esta forma de ejecución es conveniente para los programas donde se requiere interacción con el usuario o cuando el tiempo de ejecución es muy poco. Pero en ciertos otros casos, especialmente hablando en un ambiente real de trabajo, el tiempo de procesamiento de un programa podría ser muy alto. Esto se puede deber a que el programa tiene muchos accesos a base de datos, que tienen millones de registros, a la ejecución de múltiples transacciones o a otras varias razones. Para estos casos que acabamos de mencionar, va a ser conveniente la ejecución Batch o de fondo. Veamos un ejemplo paso a paso de como ejecutar un programa de fondo.

Supongamos que tenemos el programa ABAP ZPRUEBA_FONDO_B que obtiene los registros de la tabla ZTABLA_USUARIOS y los imprime por pantalla.

Imagen 1.1 - Código del programa ZPRUEBA_FONDO_B

Ahora vamos a crear el nuevo programa ABAP ZPRUEBA_FONDO el cual cumplirá el rol de programa padre del programa ZPRUEBA_FONDO_B. Lo primero que debemos hacer es crear un Job. Para esto le asignamos un nombre a la variable V_JOBNAME y luego ejecutamos la función JOB_OPEN. Para modularizar vamos a crear la subrutina ABRIR_JOB que tendrá el siguiente código. ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

225

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Apertura del job mediante la función JOB_OPEN

Lo que sigue es lanzar el Job. Para esto vamos a crear la subrutina LANZAR_JOB, que ejecutará la sentencia SUBMIT, la cual se utiliza para ejecutar un programa dentro de otro programa y con el agregado de la cláusula VIA JOB NUMBER la ejecución del programa se realizará de fondo.

Imagen 1.3 - Lanzamos el job mediante la sentencia SUBMIT ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

226

Manual de estudios Curso Programador ABAP Nivel Inicial

Con el agregado de la cláusula AND RETURN el programa llamador permanece en espera mientras se ejecuta el programa llamado. Cuando el programa llamado termina, se devuelve el control al programa llamador. Luego debemos cerrar el Job mediante la función JOB_CLOSE. Para esto vamos a crear la subrutina CERRAR_JOB como vemos a continuación.

Imagen 1.4 - Cerramos el job mediante la función JOB_CLOSE

Por último, después de cerrar el Job, imprimimos por pantalla el mensaje "Se lanzo el Job, para visualizarlo ir a la Trx SM37". Ahora vamos a ejecutar Online el programa ZPRUEBA_FONDO presionando F8. Veremos en la pantalla el mensaje "Se lanzo el Job, para visualizarlo ir a la Trx SM37", por lo tanto vamos a ir a buscar el resultado a la transacción SM37. Allí presionamos F8 o Ejecutar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

227

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.5 - Buscamos el job en la transacción SM37

Identificamos nuestro proceso, lo tildamos y presionamos el botón Spool.

Imagen 1.6 - Seleccionamos nuestro job y presionamos el botón Spool

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

228

Manual de estudios Curso Programador ABAP Nivel Inicial

Ahora vemos el pedido del Job correspondiente a nuestro programa.

Imagen 1.7 - Visualizamos la orden de spool correspondiente a nuestro job

Finalmente, presionamos el botón de visualización

y vemos el resultado del procesamiento.

Imagen 1.8 - Visualizamos la salida del job en pantalla

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

229

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Uso de la memoria en ABAP Aprenderemos a utilizar la memoria en ABAP. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 4: Subrutinas, Funciones y Batch

CVOSOFT IT Academy - Formación en Sistemas.

En ciertas oportunidades, podría pasar que mientras ejecutamos un programa o objeto ABAP, necesitemos de datos que se obtengan en otro programa ABAP que se ejecuto previamente. Existen varias formas de solucionar esto, una de ellas es pasando parámetros de un programa a otro, si es que ambos objetos son programas. Otra opción es utilizar la memoria para pasar los datos. En ABAP existen sentencias que nos permiten manipular fácilmente los datos que subimos y bajamos de memoria. Para subir datos a memoria vamos a utilizar la sentencia EXPORT tal como mostramos a continuación.

Imagen 1.1 - Sintaxis de la sentencia EXPORT

El ID que se utiliza debe ser único. Veamos un ejemplo de como levantar o subir datos a memoria.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

230

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Ejemplo de exportación de datos a memoria

Para bajar o descargar los datos de memoria utilizamos la sentencia IMPORT tal como mostramos a continuación.

Imagen 1.3 - Sintaxis de la sentencia IMPORT

Veamos un ejemplo de como bajar o descargar datos de memoria.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

231

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.4 - Ejemplo de importación de datos desde memoria

Luego de bajar los datos de memoria, es conveniente liberar el área de memoria utilizada. Esto lo hacemos con la sentencia FREE MEMORY tal como vemos a continuación.

Imagen 1.5 - Liberamos la memoria luego de utilizada

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

232

Manual de estudios Curso Programador ABAP Nivel Inicial

Utilizaremos la sentencia SUBMIT para poder llamar a un programa dentro de la ejecución de otro programa. Veamos un ejemplo de un programa que exporta datos:

Imagen 1.6 - Ejemplo de programa que exporta datos a memoria

Luego en el programa que importa los datos haremos lo siguiente:

Imagen 1.7 - Ejemplo de programa que importa datos de memoria

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

233

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

234

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 5: Reportes Reportes Curso: Programador ABAP Nivel Inicial

CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

235

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

MÓDULO: PROGRAMADOR ABAP INICIAL UNIDAD: Reportes

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

236

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

237

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

238

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

239

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

240

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Conceptos importantes de reportes Aprenderemos a crear una variante de ejecución, a crear una transacción asociada a un reporte. Analizaremos el navegador de objetos y la Utilización de colores en reportes. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 5: Reportes

CVOSOFT IT Academy - Formación en Sistemas.

Supongamos que tenemos un queremos

ejecutar

nuestro

reporte que tiene una pantalla de selección con 20 parámetros. Si cada vez que reporte,

tenemos

que

introducir

en

la

pantalla

el

contenido

de

los

20

parámetros perderíamos mucho tiempo. Para solucionar este inconveniente, SAP creo el concepto de variante, que es aplicable tanto a reportes como a cualquier objeto que se pueda ejecutar y que permite guardar los parámetros ingresados por pantalla, para no tener que volver a cargarlos.

Para probar este nuevo concepto, vamos a crear el reporte ZPRUEBA_USUARIOS y le vamos a ingresar los siguientes datos en la pantalla de selección que vemos a continuación.

Imagen 1.1 - Primer paso para crear una variante de ejecución

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

241

Manual de estudios Curso Programador ABAP Nivel Inicial

Luego, presionamos en el menú el botón

Guardar

y veremos la siguiente pantalla donde asignaremos un nombre y

una descripción a la variante.

Imagen 1.2 - Asignamos un nombre y descripción a la variante

Finalmente presionamos guardar de nuevo y quedará guardada la variante ZPRUEBA.

Imagen 1.3 - La variante se crea correctamente ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

242

Manual de estudios Curso Programador ABAP Nivel Inicial

Si ejecutamos otra vez el reporte, veremos en el menú, el botón

obtener variante.

Imagen 1.4 - El botón obtener variantes

Si hacemos clic, podremos ver las variantes disponibles para el reporte.

Imagen 1.5 - Visualizamos las variantes disponibles para el reporte

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

243

Manual de estudios Curso Programador ABAP Nivel Inicial

Para que los usuarios finales puedan utilizar los programas que nosotros desarrollamos, debemos crear transacciones asociadas a los programas, ya que ellos no tienen acceso a la transacción SE38, ni a ninguna otra transacción de desarrollo. Mediante la transacción estándar SE93, podemos crear transacciones asociadas a reportes.

Veamos un ejemplo. Vamos a ejecutar la transacción SE93, completamos el nuevo nombre de la transacción, que será ZTRX_USUARIOS y hacemos clic en el botón

Crear.

Imagen 2.1 - Creación de una transacción en la transacción SE93

Luego veremos una ventana de diálogo donde completamos la descripción breve y seleccionamos el tipo de transacción, que en nuestro caso será transacción de reporte y hacemos clic en continuar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

244

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.2 - Completamos la descripción y seleccionamos el tipo

En la siguiente pantalla, ingresamos el nombre del programa (el cual debe existir previamente), la pantalla de selección inicial, que por default (defecto) es la 1000, podemos agregar una variante para que se ejecute con la transacción y finalmente grabamos.

Imagen 2.3 - Introducimos los datos del programa

Luego para ejecutar nuestra transacción la escribimos en el campo de comandos y presionamos enter como con cualquier otra transacción estándar de SAP.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

245

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.4 - Ejecutamos nuestra transacción desde el campo de comandos

Mediante la transacción SE80 podemos crear, modificar y visualizar todo tipo de objetos. Algunos de ellos son: Paquetes, Programas, Módulos de función, Clases, Aplicaciones WebDynpro, etc.

Al momento de crear un programa de cierta complejidad, esta transacción resulta mucho más útil que la SE38, ya que permite crear directamente desde aquí, todos los objetos componentes de dicho programa.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

246

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - El navegador de objetos correspondiente a la transacción SE80

Se pueden utilizar colores a la hora de hacer impresiones por pantalla, tanto en un reporte interactivo como en un reporte clásico. Para esto, vamos a ejecutar la sentencia FORMAT COLOR antes de hacer un WRITE tal como mostramos a continuación.

Imagen 4.1 - La sentencia FORMAT COLOR

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

247

Manual de estudios Curso Programador ABAP Nivel Inicial

Y la salida de esta sentencia en un reporte será:

Imagen 4.2 - Salida por pantalla utilizando la sentencia FORMAT COLOR

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

248

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Status GUI y Títulos Aprenderemos a crear los Status GUI y los títulos de nuestros reportes. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 5: Reportes

CVOSOFT IT Academy - Formación en Sistemas.

Está compuesto por barras de menú, barras de herramientas estándar, barras de herramientas de aplicaciones y la configuración de teclas de función. En el siguiente gráfico, identificamos cada uno de los componentes en la pantalla de salida de un reporte ABAP.

Imagen 1.1 - Componentes existentes en un STATUS GUI

Vamos a crear un Status GUI para el reporte ZPRUEBA_EST_USUARIOS, que mostrará los usuarios activos y los inactivos dependiendo de que botón de la barra de herramientas de la aplicación ha sido presionado. Para esto, accedemos a la transacción SE80, ingresamos el nombre del programa, presionamos enter y lo creamos tal como lo hacíamos a través de la transacción SE38.

Luego, vamos a crearle un Status GUI, para ello sobre el nombre del programa, hacemos botón derecho Crear / Status GUI tal como vemos en la siguiente imagen:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

249

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Ruta del menú para crear un STATUS GUI

En la siguiente ventana, ingresamos el nombre del Status GUI, que será 0100, una descripción que podría ser "Status del reporte de usuarios" y presionamos continuar.

Imagen 1.3 - Introducimos un nombre y una descripción para el STATUS GUI

Luego veremos a la derecha de la pantalla, los componentes del Status GUI como vemos a continuación.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

250

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.4 - Visualizamos los componentes del STATUS GUI

Luego, desplegamos la lista que está en la Barra de pulsadores y en el primer ítem en blanco, escribimos el código de función correspondiente a la ejecución del botón de usuarios activos, que será USU_ACTI y presionamos enter.

Imagen 1.5 - Creamos un botón en la barra de pulsadores

Aquí veremos una ventana de diálogo que nos indicará que no existe texto asignado a esa función y presionaremos continuar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

251

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.6 - El código de función asignado no se ha utilizado para otro botón

Luego veremos otra ventana donde completamos los datos referentes al nuevo botón.

Imagen 1.7 - Completamos la información requerida para el nuevo botón

Código de Función: se utiliza para darle un nombre al botón.

Texto función: se corresponde al texto que se muestra a la derecha del ícono del botón.

Nombre ícono: será el ícono que se visualice por pantalla dentro del botón. Este se puede elegir dentro de un gran variedad de íconos que se visualizan presionando F4.

Texto Info: es el nombre de ayuda del botón. Este se visualizará cuando dejemos quieto unos segundos el puntero del mouse sobre el botón.

Luego presionamos continuar y en la siguiente ventana de diálogo asignaremos una tecla de función al botón, que tendrá el mismo efecto que cuando hacemos clic con el puntero del mouse el botón. Por ejemplo, seleccionamos ShiftF1 y presionamos continuar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

252

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.8 - Seleccionamos una tecla de función

Finalmente con el botón creado veremos el primer ítem de la siguiente manera.

Imagen 1.9 - Visualizamos el botón creado en la barra de pulsadores

Aquí presionamos enter sobre el código USU_ACTI y completamos en la siguiente ventana, el campo Icon text. que será el texto que se visualice dentro del botón en la pantalla de salida.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

253

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.10 - Completamos más información del botón

Luego haremos lo mismo con el botón de usuarios inactivos, cuyo código será USU_INACTI y finalmente grabamos los cambios realizados y activamos.

Imagen 1.11 - Creamos el botón de usuarios inactivos

Ahora vamos a introducir código en el reporte para poder utilizar el nuevo Status GUI. Lo primero que debemos hacer es declarar la utilización del status. Esto lo haremos mediante la sentencia SET PF-STATUS, tal como vemos a continuación.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

254

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.12 - Declaramos el STATUS mediante la sentencia SET PF-STATUS

Luego para capturar cual botón presiono el usuario, utilizaremos el evento AT USER-COMMAND junto con la variable del sistema SY-UCOMM que contendrá el código de función correspondiente al botón presionado. Las

subrutinas

USUARIOS_ACTIVOS

y

USUARIOS_INACTIVOS

realizan

la

selección

e

impresión

de

los

correspondientes registros de la tabla ZTABLA_USUARIOS.

Imagen 1.13 - Analizamos que botón presionó el usuario

Finalmente activamos y al ejecutar el reporte veremos:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

255

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.14 - Visualización de los botones al ejecutar el programa

Si presionamos el botón "Reporte de usuarios activos" vemos un listado de los usuarios activos. Si no existen registros de usuarios activos, visualizaremos un mensaje de error. Lo mismo sucederá con los usuarios inactivos.

Imagen 1.15 - Salida por pantalla al presionar el botón reporte de usuarios activos

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

256

Manual de estudios Curso Programador ABAP Nivel Inicial

Vamos a crear títulos para nuestro reporte. Para ello, en la transacción SE80, sobre el nombre del programa, hacemos botón derecho Crear/Títulos GUI, tal como vemos en la imagen siguiente.

Imagen 2.1 - Ruta utilizada para la creación de títulos

En la siguiente ventana asignaremos un nombre al título y su descripción, que será la que se visualice en pantalla.

Imagen 2.2 - Asignamos un nombre y una descripción al título

Luego crearemos el título 0200 para los usuarios inactivos y el título 0300 para la primer pantalla del reporte. Finalmente, presionamos el botón "Títulos (todos)" y veremos en pantalla los tres títulos creados. Lo último que nos queda es activarlos.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

257

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - Activamos todos los títulos creados

Para declarar la utilización de los títulos en el reporte, usamos la sentencia SET TITLE tal como vemos en el siguiente gráfico.

Imagen 2.4 - Declaramos los títulos mediante la sentencia SET TITLE

Finalmente al ejecutar el reporte, visualizaremos los títulos, según los botones presionados de la pantalla.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

258

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.5 - Visualizamos los títulos creados al presionar los botones correspondientes

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

259

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Reportes Interactivos Aprenderemos que es un Reporte interactivo, cuales son los Eventos y las variables del sistema que debemos tener en cuenta en un reporte interactivo y crearemos nuestro primer reporte interactivo. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 5: Reportes

CVOSOFT IT Academy - Formación en Sistemas.

A diferencia del Reporte clásico, que puede ser ejecutado tanto Online como Batch, el reporte interactivo es ejecutado solo en forma Online, ya que requiere de la interacción con el usuario.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

260

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.1 - Lógica de procesamiento de los reportes interactivos

Veamos un ejemplo para el cual nos convendría crear un reporte interactivo: Supongamos que tenemos un primer listado que muestra los usuarios con sus nombres y luego cuando hacemos doble clic sobre un usuario en particular, vemos datos detallados del usuario, como pueden ser el país, código postal, región, etc. En este caso, bastaría con crear un reporte interactivo para cumplir con este requerimiento.

Cuando hacemos clic en alguna posición de la lista principal que se muestra por pantalla, se ejecutará el evento AT LINE-SELECTION. Este evento debemos ubicarlo luego del evento START-OF-SELECTION. En este momento, ciertas variables del sistema se completan con información muy útil. Ellas son:

SY-LSIND:

contiene el indice de la lista de detalle.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

261

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - La variable del sistema SY-LSIND

SY-LISEL:

tiene el contenido de la línea seleccionada.

Imagen 2.2 - La variable del sistema SY-LISEL

SY-LILLI:

contiene la línea seleccionada de la lista.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

262

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - La variable del sistema SY-LILLI

SY-CUROW:

contiene la posición del cursor vertical en la pantalla.

Imagen 2.4 - La variable del sistema SY-CUROW

Utilizaremos el evento TOP-OF-PAGE DURING LINE-SELECTION para imprimir por pantalla los textos de las cabeceras de las listas de detalle.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

263

Manual de estudios Curso Programador ABAP Nivel Inicial

Vamos a crear el reporte interactivo del ejemplo que dimos en el punto 1. Para esto, vamos a agregar en nuestra tabla de usuarios ZTABLA_USUARIOS los campos: DIRECCION que será CHAR de 30 posiciones, CODIGO_POSTAL que será CHAR de 4 posiciones, F_NACIMIENTO que será DATS de 8 posiciones y ESTADO_CIVIL que tendrá un dominio, que será CHAR de 1 posición y admitirá los valores S(Soltero) y C (Casado).

Después debemos volver a generar la superficie de actualización, que creamos en la unidad 3 y finalmente ingresamos datos en la tabla a través de la transacción SM30. Luego creamos el programa ABAP ZREPORTE_INT_USUARIOS. Dentro del evento START-OF-SELECTION realizamos la selección del DNI y Nombre y Apellido de los usuarios. Después imprimimos por pantalla el resultado de la selección realizada.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

264

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - Creamos nuestro primer reporte interactivo

La salida por pantalla de nuestro programa se verá de la siguiente manera:

Imagen 3.2 - Salida por pantalla del reporte

Ahora vamos a agregar el evento AT LINE-SELECTION. El código que este dentro de este evento se ejecutará cuando hagamos doble clic en algún lugar de la pantalla, donde se visualiza el primer listado. Utilizaremos la variable del sistema SY-LISEL para obtener el DNI correspondiente a la línea de la pantalla a la cual le realizamos clic.

Luego crearemos la subrutina GENERAR_REPORTE_NIVEL2, la cual seleccionará de la tabla ZTABLA_USUARIOS los datos de detalle correspondientes al usuario, cuyo DNI fue capturado anteriormente y los imprimirá por pantalla.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

265

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.3 - Declaramos la subrutina que crea el reporte de nivel 2

Utilizaremos el evento TOP-OF-PAGE DURING LINE-SELECTION para imprimir por pantalla la cabecera de cada nivel de listados de detalle.

Imagen 3.4 - Imprimimos el encabezado de cada nivel

Finalmente ejecutamos el reporte, hacemos clic en la línea correspondiente al DNI 23547312 y veremos el siguiente detalle.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

266

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.5 - Al presionar una línea del listado principal visualizamos el listado de nivel 2

Otra posibilidad, es mostrar la pantalla del nivel de detalle como una ventana de dialogo o subscreen. Para esto usamos la sentencia WINDOWS STARTING AT tal como mostramos a continuación.

Imagen 3.6 - La sentencia WINDOWS STARTING AT

Y se visualizará la ventana de la siguiente manera:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

267

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.7 - Visualizamos el listado de nivel 2 en una ventana de diálogo

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

268

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Reportes ALV: Grillas y Listas Aprenderemos que es un ALV y crearemos nuestro primer reporte ALV. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 5: Reportes

CVOSOFT IT Academy - Formación en Sistemas.

Las principales ventajas de los reportes ALV son:

Simplifican el desarrollo de reportes, por lo tanto se reducen los tiempos de programación

Proporcionan a nuestros reportes un montón de funcionalidad estándar

Proporcionan una salida por pantalla estandarizada e uniforme

Imagen 1.1 - Ejemplo de un reporte ALV en donde identificamos sus principales componentes

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

269

Manual de estudios Curso Programador ABAP Nivel Inicial

La creación de un Reporte ALV, se basa en la utilización de funciones. Los tipos de ALV más comúnmente usados son tres: Grillas, Listas y Jerárquico. Las Grillas y las Listas pueden utilizarse en cualquier reporte, pero el Jerárquico se utiliza sólo en los casos donde se muestran datos de cabecera y de detalle, como por ejemplo números de factura y detalles o Aerolíneas y vuelos. A cada tipo de ALV le corresponde una función diferente. Ellas son:

Grillas -> REUSE_ALV_GRID_DISPLAY

Imagen 1.2 - Reporte ALV Grilla

Listas -> REUSE_ALV_LIST_DISPLAY

Imagen 1.3 - Reporte ALV Lista

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

270

Manual de estudios Curso Programador ABAP Nivel Inicial

Jerárquico -> REUSE_ALV_HIERSEQ_LIST_DISPLAY

Imagen 1.4 - Reporte ALV Jerárquico

Vamos a crear nuestro primer reporte ALV. Para esto seguiremos los siguientes pasos:

PASO 1ero. : Declaraciones de tipos, estructuras y tablas propias del ALV Dentro de este paso, declaramos el tipo SLIS, que es necesario para la utilización de reportes ALV.

Imagen 2.1 - El TYPE-POOLs slis

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

271

Manual de estudios Curso Programador ABAP Nivel Inicial

También declaramos una tabla y una estructura para el catálogo del ALV que son del tipo SLIS_T_FIELDCAT_ALV y SLIS_FIELDCAT_ALV, otra estructura para la configuración de la salida que es del tipo SLIS_LAYOUT_ALV y una variable del tipo SY-REPID, para almacenar el nombre del programa.

Imagen 2.2 - Declaramos el catálogo del ALV

PASO 2do. : Declaración de la tabla de salida del ALV Vamos a declarar la tabla de salida TI_USUARIOS que se mostrará en el ALV.

Imagen 2.3 - La tabla de salida del ALV

PASO 3ero. : Selección de los datos que se mostrarán en el ALV Ahora seleccionamos los datos de la tabla ZTABLA_USUARIOS, que mostraremos en el listado de salida y los guardamos en la tabla interna TI_USUARIOS.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

272

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.4 - Seleccionamos los datos a mostrar en el ALV

PASO 4to. : Armado del catálogo del ALV Armamos el catálogo del ALV con los campos que serán las columnas de nuestro reporte. Para ello, completaremos para cada columna del listado, los siguientes campos pertenecientes a la tabla del catálogo.

Imagen 2.5 - Completamos el catálogo del ALV

PASO 5to. : Configuración de la salida del ALV Vamos a cargar con valores la estructura ST_LAYOUT para configurar ciertos aspectos de la salida del ALV.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

273

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.6 - Configuración del layout del ALV

PASO 6to. : Ejecución de la función del ALV Por último, lo que nos queda es la ejecución de la función del ALV. Si queremos un reporte tipo grilla, ejecutaremos la función

REUSE_ALV_GRID_DISPLAY.

Si

queremos

un

reporte

tipo

lista,

ejecutaremos

la

función

REUSE_ALV_LIST_DISPLAY. Ambas funciones se completan de la misma manera. Como dijimos anteriormente, los ALV jerárquicos se utilizan para cuando tenemos que mostrar datos de cabecera y detalle, por lo tanto no es aplicable para este ejemplo. Si es grilla:

Imagen 2.7 - La función REUSE_ALV_GRID_DISPLAY

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

274

Manual de estudios Curso Programador ABAP Nivel Inicial

Si es lista:

Imagen 2.8 - La función REUSE_ALV_LIST_DISPLAY

Finalmente si ejecutamos el reporte veremos, si usamos la función para grillas:

Imagen 2.9 - Salida por pantalla del ALV GRID

Y si usamos la función para listas:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

275

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.10 - Salida por pantalla del ALV LIST

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

276

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Catálogo ALV automático, logos, encabezados y status Aprenderemos a crear el catálogo de un reporte ALV en forma automática. Analizaremos como incluir Logos, encabezados y Status GUIs. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 5: Reportes

CVOSOFT IT Academy - Formación en Sistemas.

Existen dos formas de crear el catálogo del ALV, la primera es en forma manual, ingresando campo por campo, tal como hicimos en el ejemplo de la lección anterior. La segunda, es crear el catálogo en forma automática con la función REUSE_ALV_FIELDCATALOG_MERGE. Si tomamos el ejemplo de la lección anterior, el código para la creación automática sería el siguiente:

Imagen 1.1 - Creación automática del catálogo del ALV

Pero para poder hacer esto vamos a tener que modificar dos puntos del programa. El primero es la forma como se declara la tabla interna del ALV. Si creamos el catálogo en forma automática debemos declarar la tabla interna utilizando LIKE y haciendo referencia a campos de una tabla base de datos existente.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

277

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Declaración de la tabla interna del ALV

Lo otro que debemos hacer es configurar el editor, para que se restrinja la cantidad de caracteres de ancho de la pantalla a 72.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

278

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.3 - Configuración del editor para 72 columnas de ancho

En los ALV Grilla podemos agregar logos y encabezados en los listados. Para ello, debemos declarar una tabla del tipo SLIS_T_LISTHEADER y una estructura del tipo SLIS_LISTHEADER.

Imagen 2.1 - Declaración de la tabla y estructura para el encabezado

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

279

Manual de estudios Curso Programador ABAP Nivel Inicial

Antes de completar el catálogo, vamos a llenar la tabla TI_HEADER con el encabezado del Reporte, el tipo de reporte y la fecha del sistema.

Imagen 2.2 - Llenamos la tabla interna del encabezado

Luego, agregamos en la llamada a la función del ALV, el parámetro exporting I_CALL_TOP_PAGE con el literal 'TOP_OF_PAGE', que será el nombre de la subrutina que cargue el contenido del encabezado y el logo.

Imagen 2.3 - El parámetro EXPORTING I_CALL_TOP_PAGE

Ahora creamos la subrutina TOP_OF_PAGE, con la llamada a la función REUSE_ALV_COMMENTARY_WRITE, que carga el encabezado que definimos en la tabla interna TI_HEADER, junto con el logo 'ENJOYSAP_LOGO'.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

280

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.4 - La función REUSE_ALV_COMMENTARY_WRITE

Finalmente ejecutamos el programa y vemos:

Imagen 2.5 - Visualizamos el encabezado con toda la información correpondiente

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

281

Manual de estudios Curso Programador ABAP Nivel Inicial

Para poder utilizar un Status GUI en un reporte ALV, vamos a 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 declare 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.

Imagen 3.1 - Lo s pa rámetros I_CALLBACK_PF_STATUS_SET y I_CALLBACK_USER_COMMAND

Ahora definimos la subrutina PF_STATUS que setea el status.

Imagen 3.2 - Subrutina que declara el STATUS

Vamos a crear en el status, un botón con la descripción "Usuarios activos" y el código USU_ACTI. También en las Teclas de función (Function Keys) del status, agregamos los códigos para poder navegar para atrás, volver a la pantalla principal o salir del programa. Cuando creamos estos botones, debemos acordarnos de setearlos con Tipo de función (Function Type) igual a ''E' ', sino no funcionarán como esperamos.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

282

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.3 - Teclas de función de navegación

Imagen 3.4 - El tipo de función debe ser Comando Exit

Por último agregamos la subrutina que capturará las acciones realizadas por el usuario.

Imagen 3.5 - Escribimos el código que procesará la acción deseada

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

283

Manual de estudios Curso Programador ABAP Nivel Inicial

Finalmente si ejecutamos el reporte, veremos en el Status GUI, el botón de usuarios activos y si lo ejecutamos, se procesará el código existente en la subrutina USER_COMMAND.

Imagen 3.6 - Visualizamos el STATUS GUI en la salida del reporte

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

284

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

ALV Jerárquico y Agrupamiento Aprenderemos a agrupar los datos de un reporte ALV y analizaremos el tipo de reporte ALV Jerárquico. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 5: Reportes

CVOSOFT IT Academy - Formación en Sistemas.

Podemos

agrupar

los

registros

que

mostramos

en

un

ALV.

Para

ello,

declaramos

una

tabla

del

tipo

SLIS_T_SORTINFO_ALV y una estructura del tipo SLIS_SORTINFO_ALV.

Imagen 1.1 - Tabla y estructura necesarias para agrupar el ALV

Luego antes de llamar a la función del ALV, vamos a cargar la tabla TI_SORT con los registros en el orden en el que deseamos agrupar.

Imagen 1.2 - Cargamos la tabla interna de agrupamiento del ALV

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

285

Manual de estudios Curso Programador ABAP Nivel Inicial

Ahora debemos completar el parámetro exporting IT_SORT con nuestra tabla interna TI_SORT.

Imagen 1.3 - Completamos el parámetro exporting IT_SORT

Finalmente, si ejecutamos el reporte, veremos la agrupación por Estado Civil.

Imagen 1.4 - Al ejecutar el reporte visualizamos la agrupación

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

286

Manual de estudios Curso Programador ABAP Nivel Inicial

Como dijimos anteriormente, los ALV Jerárquicos se utilizan cuando tenemos que mostrar en un reporte, datos de cabecera y de posición. En las declaraciones de las tablas internas de cabecera y posiciones, debe haber como mínimo un campo en común. En el caso que mostramos a continuación, el campo común es el CARRID, que es la compañía aérea.

Imagen 2.1 - Tablas internas que vamos a utilizar en el ALV Jerárquico

Debemos declarar una estructura del tipo SLIS_KEYINFO_ALV, que será ST_KEYINFO y contendrá el campo clave que une a las dos tablas internas.

Imagen 2.2 - Estructura que almacena el campo clave de unión

Ahora vamos a cargar las tablas internas de cabecera y detalle con un juego de datos para la compañía aérea ARG. En el programa de ejemplo de la lección, también cargamos un juego de datos para la compañía aérea LAN.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

287

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - Cargamos las tablas internas del ALV Jerárquico

Luego crearemos el catálogo del ALV para ambas tablas internas, sumando los campos de ambas tablas en la tabla del catálogo TI_CATALOGO.

Imagen 2.4 - Completamos el catálogo en forma automática para ambas tablas internas

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

288

Manual de estudios Curso Programador ABAP Nivel Inicial

Ahora tenemos que completar la estructura ST_KEYINFO. En los campos HEADER01 y ITEM01 va a ir el campo de la tabla de cabecera que hace de vínculo con la tabla de detalles.

Imagen 2.5 - Completamos el campo clave de unión

Por último, ejecutamos la función REUSE_ALV_HIERSEQ_LIST_DISPLAY.

Imagen 2.6 - La función REUSE_ALV_HIERSEQ_LIST_DISPLAY

Y veremos el siguiente reporte ALV:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

289

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.7 - Salida por pantalla del reporte ALV Jerárquico

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

290

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

291

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 6: Tratamiento de Archivos y Field Symbols Tratamiento de Archivos y Field Symbols Curso: Programador ABAP Nivel Inicial

CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

292

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

· MÓDULO: PROGRAMADOR ABAP INICIAL · UNIDAD: Tratamiento de Archivos y Field Symbols

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

293

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

294

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

295

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

296

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

297

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Archivos Locales: Upload de datos Aprenderemos a trabajar con archivos locales. También analizaremos búsqueda de archivos locales en la PC y como realizar la lectura de datos de los archivos locales. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 6: Tratamiento de Archivos y Field Symbols

CVOSOFT IT Academy - Formación en Sistemas.

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. Los conceptos de clases y métodos los veremos en detalle en el "Módulo Programador ABAP Nivel Avanzado". Por ahora, nos basta con entender que los métodos se ejecutan como si fueran funciones. Para visualizar todos los métodos disponibles en la clase, editamos un programa ABAP y presionamos el botón Modelo (Pattern).

Imagen 1.1 - El botón Modelo

Aquí marcamos la opción Patrón p.objetos ABAP (ABAP Object Patterns) y presionamos continuar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

298

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Seleccionamos Patrón para param. objetos

En la siguiente pantalla escribimos lo siguiente:

Imagen 1.3 - Introducimos la clase CL_GUI_FRONTEND_SERVICES

Y luego presionamos F4 en Método (Method) y veremos la siguiente pantalla con todos los métodos de la clase:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

299

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.4 - Visualizamos todos los métodos de la clase CL_GUI_FRONTEND_SERVICES

Veremos en detalle 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. GUI_DOWNLOAD: para descargar datos de los programas a archivos en la PC. GUI_UPLOAD: para bajar datos de los archivos de la PC a nuestros programas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

300

Manual de estudios Curso Programador ABAP Nivel Inicial

Para buscar archivos locales en el directorio de nuestra PC, utilizaremos el método FILE_OPEN_DIALOG. Veamos un ejemplo de su utilización:

Imagen 2.1 - El método FILE_OPEN_DIALOG

Analicemos los parámetros más importantes del método: WINDOW_TITLE: asigna un título a la ventana de búsqueda.

DEFAULT_FILENAME: contiene 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.

FILE_TABLE: contiene la ruta y nombre del archivo seleccionado. Al igual que las funciones, el método FILE_OPEN_DIALOG tiene definidas excepciones. Cada excepción tiene asociada una descripción que contempla cada uno de los errores posibles que pueden ocurrir al ejecutar dicho método. Si ejecutamos el código anterior veremos la siguiente ventana de diálogo:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

301

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.2 - Ventana de diálogo para buscar archivos

Para leer datos de los archivos locales en las tablas internas de nuestros programas, utilizaremos el método GUI_UPLOAD.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

302

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.1 - El método GUI_UPLOAD

Analicemos los parámetros más importantes del método: FILENAME: contiene el directorio y nombre del archivo local con el que estamos trabajando.

FILETYPE: contiene el tipo o extensión del archivo local. Los tipos admitidos son: BIN: para archivos binarios. ASC: para archivos ASCII. DAT: para archivos excel. Las columnas son separadas utilizando tabs. Las líneas son separadas con saltos de línea. WK1: para archivos excel y de lotus.

HAS_FIELD_SEPARATOR: indica que el archivo local tiene separadores.

DATA_TAB: es la tabla interna donde almacenaremos los datos del archivo local.

En este método están definidas excepciones con descripciones que contemplan cada uno de los errores que se pueden producir al ejecutar el método.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

303

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

304

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Archivos Locales: Download de datos Aprenderemos a grabar datos en archivos locales. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 6: Tratamiento de Archivos y Field Symbols

CVOSOFT IT Academy - Formación en Sistemas.

Para grabar datos existentes en las tablas internas de nuestros programas a archivos ubicados en la PC, utilizaremos el método GUI_DOWNLOAD. Veamos un ejemplo de su utilización:

Imagen 1.1 - El método GUI_UPLOAD

Analicemos algunos de los parámetros del método: FILENAME: contiene el directorio y nombre del archivo a descargar a la PC.

FILETYPE: contiene el tipo o extensión del archivo que descargamos a la PC.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

305

Manual de estudios Curso Programador ABAP Nivel Inicial

Los tipos o extensiones admitidas son: BIN: para archivos binarios. Se debe especificar la longitud del archivo en el parámetro

BIN_FILESIZE. La tabla interna que se utiliza debe tener un solo campo del tipo X. ASC: para archivos ASCII. DAT: para archivos excel. Las columnas son separadas utilizando tabs.

Las líneas son separadas con saltos de línea. WK1: para archivos excel y de lotus.

WRITE_FIELD_SEPARATOR: indica si se generará un separador de archivo o no y cual será.

DATA_TAB: aquí se almacena el contenido del archivo. Esta tabla debe tener la misma estructura del archivo.

En este método también están definidas excepciones con descripciones que contemplan cada uno de los errores que se pueden producir al ejecutar el método. Luego si ejecutamos el código veremos el mensaje que dice que la transferencia de datos se realizó correctamente y se especifica la cantidad de bytes transferida.

Imagen 1.2 - Transferencia realizada correctamente

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

306

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Archivos en Servidor: las sentencias OPEN y READ Aprenderemos a trabajar con archivos en el servidor y analizaremos como se realiza la apertura y lectura de los archivos en el servidor. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 6: Tratamiento de Archivos y Field Symbols

CVOSOFT IT Academy - Formación en Sistemas.

En un ambiente real de trabajo, es común la utilización de un servidor de aplicaciones, para trabajar con archivos. ABAP dispone de una serie de sentencias para el tratamiento de archivos ubicados en el servidor de aplicaciones. Las principales sentencias para el manejo de archivos en el servidor de aplicaciones son: OPEN DATASET:

para la apertura de archivos del servidor.

READ DATASET:

para la lectura de archivos del servidor.

TRANSFER: DELETE: CLOSE:

para transferir datos de archivos al servidor.

para borrar archivos del servidor.

para cerrar archivos del servidor.

A continuación veremos en detalle cada una de estas sentencias.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

307

Manual de estudios Curso Programador ABAP Nivel Inicial

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

Imagen 2.1 - La sentencia OPEN DATASET

El nombre del archivo junto con el directorio en donde se encuentra, pueden ingresarse como un literal entre comillas o en una variable. Si no ingresamos el directorio y solo ingresamos el nombre, entonces el sistema intentará abrir el archivo en el directorio en el que corre el servidor de aplicaciones. Si queremos abrir un archivo para lectura, debemos utilizar la cláusula FOR INPUT, tal como vemos a continuación:

Imagen 2.2 - Apertura de archivos para lectura

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

308

Manual de estudios Curso Programador ABAP Nivel Inicial

Veamos un ejemplo:

Imagen 2.3 - Ejemplo de apertura de archivo para lectura

En el ejemplo anterior, p_path es una parámetro de la pantalla de selección en donde el usuario ingresa el directorio y nombre del archivo.

Si queremos abrir un archivo para escritura, debemos utilizar la cláusula FOR OUTPUT, tal como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

309

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.4 - Apertura de archivos para escritura

Veamos un ejemplo:

Imagen 2.5 - Ejemplo de apertura de archivo para escritura

Si queremos abrir un archivo para agregar información, debemos utilizar la cláusula

FOR APPENDING, tal como

vemos a continuación.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

310

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.6 - Apertura de archivos para agregar información

Veamos un ejemplo:

Imagen 2.7 - Ejemplo de apertura de archivos para agregar información

Existen dos modos de apertura de archivos: MODO TEXTO

Para abrir un archivo en modo texto, debemos utilizar la cláusula IN TEXT MODE, tal como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

311

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.8 - Apertura de archivos en modo texto

Veamos un ejemplo:

Imagen 2.9 - Ejemplo de apertura de archivos en modo texto

MODO BINARIO

Para abrir un archivo en modo binario, debemos utilizar la cláusula IN BINARY MODE, tal como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

312

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.10 - Apertura de archivos en modo binario

Veamos un ejemplo:

Imagen 2.11 - Ejemplo de apertura de archivos en modo binario

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

313

Manual de estudios Curso Programador ABAP Nivel Inicial

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

Imagen 3.1 - La sentencia READ DATASET

Veamos un ejemplo:

Imagen 3.2 - Ejemplo de lectura de archivos con READ DATASET

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

314

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Archivos en Servidor: las sentencias TRANSFER, DELETE y CLOSE Aprenderemos a transferir datos a los archivos del servidor. También analizaremos el borrado, cierre y búsqueda de archivos en el servidor. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 6: Tratamiento de Archivos y Field Symbols

CVOSOFT IT Academy - Formación en Sistemas.

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

Imagen 1.1 - La sentencia TRANSFER

Veamos un ejemplo:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

315

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Ejemplo de transferencia de archivos con TRANSFER

Utilizaremos la sentencia DELETE DATASET para borrar archivos del servidor de aplicaciones. La sintaxis de la sentencia es la siguiente:

Imagen 2.1 - La sentencia DELETE DATASET

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

316

Manual de estudios Curso Programador ABAP Nivel Inicial

Veamos un ejemplo:

Imagen 2.2 - Ejemplo del borrado de archivos con DELETE DATASET

Utilizaremos la sentencia CLOSE DATASET para cerrar archivos del servidor de aplicaciones. La sintaxis de la sentencia es la siguiente:

Imagen 3.1 - La sentencia CLOSE DATASET

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

317

Manual de estudios Curso Programador ABAP Nivel Inicial

Veamos un ejemplo:

Imagen 3.2 - Ejemplo de cierre de archivos con CLOSE DATASET

Utilizando la función /SAPDMC/LSM_F4_SERVER_FILE podemos crear una ventana de navegación en el servidor de aplicaciones para poder seleccionar el archivo que deseamos. Veamos un ejemplo de su utilización:

Imagen 4.1 - La función /SAPDMC/LSM_F4_SERVER_FILE ©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

318

Manual de estudios Curso Programador ABAP Nivel Inicial

Si ejecutamos el código anterior veremos el siguiente mensaje ya que no disponemos de un servidor de aplicaciones para probar.

Imagen 4.2 - Mensaje que nos informa que no disponemos del server

Si lo tuviéramos, visualizaríamos una ventana de diálogo donde podremos buscar los archivos en el servidor.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

319

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Field Symbols Aprenderemos que son los Field Symbols, como se declaran y como se realiza la asignación de datos a un Field Symbol. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 6: Tratamiento de Archivos y Field Symbols

CVOSOFT IT Academy - Formación en Sistemas.

Al contrario de lo que sucede con el acceso estático de los datos, donde necesitamos especificar el nombre de un objeto para poder hacer algo con él, los Field Symbol nos permiten acceder y pasar datos cuyos nombres y atributos no conocemos hasta el momento de la ejecución. Se puede considerar a los Field Symbol como nombres simbólicos de los datos, ya que cuando se utilizan, el sistema trabaja con el contenido de los datos asignados y no con el contenido del field symbol.

Los Field Symbol nos proveen de gran flexibilidad debido a que: Si queremos procesar partes de campos, nos permiten especificar el offset y el desplazamiento de un campo en forma dinámica.

Se puede forzar a un Field Symbol para que tome diferentes atributos técnicos que los del campo asignado a él.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

320

Manual de estudios Curso Programador ABAP Nivel Inicial

Para declarar un Field Symbol vamos a utilizar la siguiente sintaxis:

Imagen 2.1 - Sintaxis para la declaración de un Field Symbol

Los tipos de datos genéricos posibles para un Field Symbol son:

Tabla 2.1 | Datos genéricos posibles para un Field Symbol

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

321

Manual de estudios Curso Programador ABAP Nivel Inicial

Veamos un ejemplo de la utilización de un Field symbol:

Imagen 2.2 - Ejemplo de utilización de Field Symbols

Para asignar datos a un Field Symbol utilizamos la sentencia ASSIGN. La asignación que utilizamos es estática ya que sabemos el nombre del campo que queremos asignar al Field Symbol. La sintaxis utilizada sería la siguiente:

Imagen 3.1 - Sintaxis de la sentencia ASSIGN

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

322

Manual de estudios Curso Programador ABAP Nivel Inicial

Veamos un ejemplo:

Imagen 3.2 - Otro ejemplo de utilización de Field Symbols

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

323

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Los Estándares de Programación Aprenderemos que son los Estándares de Programación y porque es tan importante que los utilicemos. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 6: Tratamiento de Archivos y Field Symbols CVOSOFT IT Academy - Formación en Sistemas.

La utilización de Estándares de Programación es sumamente beneficiosa ya que hace que los programas sean mucho más simples de leer y mantener al momento de tener que realizar una modificación.

Les propongo evaluar la utilidad de seguir estándares de programación en la siguiente situación hipotética pero que se repite muy a menudo en el ambiente laboral real de SAP: "Supongamos que en la empresa en donde trabajamos el equipo de Programación o Desarrollo ABAP está compuesto por dos programadores entre los cuales nos encontramos nosotros. Supongamos que en esta empresa no se ha definido ningún Estándar de Programación y que cada una de las dos personas que se encargan de la programación en ABAP tiene bien dividido el trabajo, de modo que dependiendo de que trate el desarrollo ABAP a realizar lo tomará uno de los programadores o el otro. Ahora por último imaginemos que debido a la alta demanda de empleo en SAP, nuestro compañero de equipo se va de la empresa y a nosotros nos toca tener que modificar los programas ABAP que él creó. Si no se utilizó ningún Estándar de programación es muy probable que modificar los programas ABAP desarrollados por otro programador se convierta en una tarea complicada, que nos puede llegar a llevar más del doble del tiempo que debería."

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

324

Manual de estudios Curso Programador ABAP Nivel Inicial

Hay muchos estándares de programación que se pueden utilizar. Un buen estándar de programación generalmente considerará los siguientes factores: Factor nemotécnico: para que el programador pueda recordar el nombre de una variable fácilmente.

Factor sugestivo: para que otros programadores puedan leer y entender rápidamente nuestro código.

Consistencia: de modo que utilicemos las mismas convenciones de nomenclatura en todo el programa y hagamos que el texto del código sea "legible".

Podemos resumir algunos de los beneficios de utilizar estándares de programación en los siguientes puntos: Los nombres de variables serán nemotécnicos con lo que se podrá saber el tipo de dato de cada variable con sólo ver el nombre de la variable.

Los nombres de variables serán sugestivos, de tal forma que se podrá saber el uso y finalidad de dicha variable o función fácilmente con solo ver el nombre de la variable.

La decisión de poner un nombre a una variable o función será mecánica y automática, puesto que seguirá las reglas definidas por el estándar.

Permiten el uso de herramientas automáticas de verificación de nomenclaturas tales como el Chequeo Extendido del Código o el Inspector de Código.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

325

Manual de estudios Curso Programador ABAP Nivel Inicial

Si los estándares tienes tantos beneficios, entonces la pregunta es ¿por qué los programadores los usan muy pocas veces? La razón tiene que ver más con los seres humanos que con la tecnología:

Trabajan en un proyecto que no ha adoptado ningún estándar. No los entienden o no los pueden recordar. No ven el beneficio de utilizarlos. Están muy apurados o cansados. Prefieren creatividad y consistencia arbitraria. Piensan que es divertido usar nombres "bonitos" en el código. Son "artistas del software" y no quieren estar regidos por convenciones.

A continuación les presentamos los Estándares de Programación que utilizaremos a lo largo de la Carrera SAP ABAP.

Los estándares que les presento a continuación fueron elaborados en base a la experiencia recopilada en los distintos proyectos en los que he participado como Consultor SAP ABAP y como Líder del equipo de Desarrollo.

Para las declaraciones dentro de un programa ABAP utilizaremos los siguientes estándares:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

326

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 5.1 - Estándares a utilizar dentro de un programa ABAP

Para las declaraciones de los datos que creamos en el Diccionario de datos ABAP utilizaremos los siguientes estándares:

Imagen 5.2 - Estándares a utilizar para objetos del Diccionario de datos

Utilizaremos la siguiente nomenclatura para establecer los nombres de los siguientes objetos:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

327

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 5.3 - Estándares a utilizar para el resto de los objetos

Para los Encabezados de Programas ABAP Cuando creamos un programa ABAP nuevo en SAP es recomendable utilizar siempre el mismo encabezado de modo de unificar criterios entre todos los programadores de un mismo proyecto. A continuación les proponemos una versión del esqueleto de un programa ABAP que pueden utilizar para sus desarrollos.

Imagen 5.4 - Ejemplo de comentarios en el encabezado de un programa ABAP

Más abajo, dentro de la misma plantilla de programa nuevo, especificamos las declaraciones de los Includes, Tipos, Tablas internas, etc.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

328

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 5.5 - Comentarios para declaraciones de includes, tipos y tablas

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

329

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

330

Manual de estudios Curso Programador ABAP Nivel Inicial

Inicio Nueva Unidad:

Unidad 7: Batch Input vs Bapis y temas avanzados Batch Inputs vs Bapis y temas avanzados Curso: Programador ABAP Nivel Inicial

CVOSOFT IT Academy - Formación en Sistemas.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

331

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Descripción de Unidad

MÓDULO: PROGRAMADOR ABAP INICIAL UNIDAD: Batch Inputs vs Bapis y temas avanzados

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

332

Manual de estudios Curso Programador ABAP Nivel Inicial

:: Lecciones que componen esta unidad Las siguientes lecciones componen a esta unidad de estudios:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

333

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

334

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

335

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

336

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

El concepto de Batch Input Aprenderemos que es un Batch Input, cuales son las técnicas existentes para realizarlo, cuales son los pasos para creación de un Batch Input y como cargar la tabla BDCDATA. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 7: Batch Input vs Bapis y temas avanzados

CVOSOFT IT Academy - Formación en Sistemas.

Cuando se instala una aplicación en un ambiente de producción, es necesario dar de alta toda la información que es indispensable para que pueda funcionar. A este proceso lo llamamos carga inicial de datos. Supongamos que necesitamos hacer la carga inicial de datos en SAP de 10.000 clientes. Para hacer esto, tendríamos que ingresar 10.000 veces a la transacción maestro de clientes, lo que cual sería una tarea demasiado tediosa y sumamente costosa en tiempo. Algo similar ocurriría si necesitamos ingresar 10.000 registros en una tabla base de datos, ya que si bien, en este caso, podríamos crear un programa que mediante instrucciones Open SQL carguen los registros, no estaríamos utilizando todas las validaciones estándar que tienen las transacciones SAP, por lo que necesitaríamos dedicar mucho tiempo para cubrir ese bache. Para solucionar estos inconvenientes, SAP introduce la técnica de Batch Input, mediante la cual, podremos dar de alta, modificar o borrar grandes cantidades de datos en el sistema, de forma automática y utilizando las mismas transacciones, con sus respectivas validaciones, tal como si lo hiciéramos manualmente de a 1 dato por vez.

Generalmente, la carga inicial de datos se realizará levantando los datos de un archivo, tal como vimos en la unidad anterior.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

337

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.1 - Carga inicial de datos en SAP

Existen dos técnicas para realizar un Batch Input, una se realiza de forma Online y la otra en forma Batch. Ellas son: CALL TRANSACTION: se realiza de forma Online, por lo que ejecuta las actualizaciones en el momento en que se ejecuta el programa del Batch Input. Se utiliza la sentencia estándar CALL TRANSACTION.

JUEGO DE DATOS: se realiza de forma Batch (o de fondo) y queda almacenado en SAP para su posterior ejecución mediante la transacción SM35. Consiste en la ejecución de una serie de funciones estándar para la apertura, ejecución y cierre del juego de datos.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

338

Manual de estudios Curso Programador ABAP Nivel Inicial

Los pasos para la generación de un

Batch Input dependen de la técnica utilizada. Veamos cuales son los pasos a

seguir para cada técnica:

CALL TRANSACTION Paso 1ero: Declaración de datos propios del Batch Input.

Paso 2do: Lectura de datos de archivo de entrada.

Paso 3ero: Carga de la tabla BDCDATA.

Paso 4to: Ejecución de la sentencia CALL TRANSACTION.

JUEGO DE DATOS Paso 1ero: Declaración de los datos propios del Batch Input.

Paso 2do: Lectura de datos de archivo de entrada.

Paso 3ero: Apertura de la sesión del Juego de Datos.

Paso 4to: Carga de la tabla BDCDATA.

Paso 5to: Inserción del Juego de Datos.

Paso 6to: Cierre de la sesión del Juego de Datos.

Paso 7mo: Ejecución del Juego de Datos a través de la transacción SM35 o a través de la creación de un job y la ejecución del programa estándar RSBDCBTC.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

339

Manual de estudios Curso Programador ABAP Nivel Inicial

El paso más importante en la ejecución de un Batch Input es la carga de la tabla BDCDATA. Tal como hacemos referencia, la tabla BDCDATA será una tabla interna que tendrá los mismos campos que la estructura BDCDATA. Los campos que forman parte de esta estructura son:

Imagen 4.1 - Estructura de la tabla BDCDATA

Veamos un ejemplo sencillo de como cargaríamos la tabla BDCDATA. Supongamos que queremos hacer un Batch Input, para cargar con un registro a nuestra tabla de usuarios ZTABLA_USUARIOS. Si ejecutamos esta acción en forma manual, deberíamos hacer lo siguiente: Ingresar a la transacción SM30, introducir el nombre de la tabla, presionar el botón de modificación o maintain, presionar el botón de nuevas entradas o new entries, introducir el contenido del registro con todos sus campos, presionar el botón grabar y salir de la transacción. Si representamos en código el procedimiento anteriormente descrito, escribiríamos: Para ingresar a la primer pantalla y presionar el botón de mantenimiento.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

340

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.2 - Introducimos los datos de la primer pantalla en la tabla BDCDATA

Luego, presionamos el botón de Nuevas entradas.

Imagen 4.3 - Presionamos el botón Nuevas entradas

Después ingreso el registro del usuario. En la imagen que vemos a continuación no figuran todos los campos de la tabla de usuarios.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

341

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 4.4 - Introducimos los campos de la tabla de usuarios

Por último, grabamos y salimos de ambas pantallas.

Imagen 4.5 - Grabamos y salimos de la transacción

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

342

Manual de estudios Curso Programador ABAP Nivel Inicial

En la próxima lección veremos como hacer para obtener los datos para completar la tabla BDCDATA.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

343

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Subrutinas y Grabación de datos de un BI Aprenderemos a utilizar subrutinas en un Batch Input. Analizaremos como obtener los datos necesarios para la carga de la tabla BDCDATA y como realizar la grabación de un Batch Input. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 7: Batch Input vs Bapis y temas avanzados

CVOSOFT IT Academy - Formación en Sistemas.

Para hacer más simple la creación de un Batch Input, vamos a utilizar la

subrutina BDC_FIELD, que nos van a

permitir modularizar los programas.

Imagen 1.1 - La subrutina BDC_FIELD

Si cambiamos el código de la lección anterior, utilizando la subrutina BDC_FIELD, el mismo quedaría de la siguiente manera:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

344

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Utilizamos la subrutina BDC_FIELD en nuestro código ABAP

Vamos a explicar como obtener los valores que cargamos en la tabla interna BDCDATA. Para ello, tomamos el ejemplo de la carga de la tabla BDCDATA, que vimos en la lección anterior. Vamos a entrar a la transacción SM30, y recuperar los datos correspondientes a la primer pantalla. Existen varias formas de obtener información de una pantalla. Ellas son: Parándonos sobre un campo de entrada de datos, presionamos F1:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

345

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - Presionamos F1 en el campo Tabla/Vista

Y luego hacemos clic en el botón de Información técnica:

Imagen 2.2 - El botón de información técnica

Y veremos una ventana de diálogo con información relevante para el armado de la tabla BDCDATA, como es el nombre del programa, el nombre de la dynpro y el nombre del campo.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

346

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.3 - Visualizamos la información técnica de la dynpro

Parándonos sobre un botón de la pantalla presionamos F1:

Imagen 2.4 - Presionamos F1 sobre el botón Actualizar

Y veremos una ventana de diálogo con el nombre del programa y el código de función correspondiente al botón.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

347

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.5 - Visualizamos la información técnica del botón

En todas las pantallas de SAP, podemos visualizar en el extremo inferior derecho de las mismas, diferentes datos de la pantalla como ser el nombre del programa en ejecución, la transacción, etc.

Imagen 2.6 - Información presente en todas pantallas de SAP

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

348

Manual de estudios Curso Programador ABAP Nivel Inicial

Otra forma más eficiente de obtener los datos para la carga de la tabla BDCDATA, consiste en realizar una grabación de los pasos que hacemos en la ejecución de las transacciones, mediante la transacción SM35.

Imagen 3.1 - La transacción SM35

Para realizar la grabación, presionamos el botón Grabación (Recording):

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

349

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.2 - Presionamos el botón grabación

Luego el botón Grabación nueva (New Recording):

Imagen 3.3 - Presionamos el botón Nueva grabación

Y veremos la siguiente ventana de diálogo:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

350

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.4 - Introducimos los datos necesarios para iniciar la grabación

Grabación (Recording): aquí asignamos un nombre a la grabación. Código de Transacción (Transaction code): aquí ingresamos el nombre de la transacción. El resto de las opciones, las dejamos como están y presionamos el botón Iniciar grabación (Start Recording). Luego seguiremos la secuencia de pantallas hasta generar un registro en la tabla ZTABLA_USUARIOS, que finaliza presionando el botón grabar y saliendo de la transacción. Después de esto, veremos la siguiente pantalla con la grabación.

Imagen 3.5 - La grabación

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

351

Manual de estudios Curso Programador ABAP Nivel Inicial

Si nos fijamos, la tabla con las columnas que visualizamos en la grabación tiene la misma estructura que la tabla BDCDATA. Luego si presionamos el botón grabar, la grabación quedará almacenada en el sistema para consultarla mientras hacemos el Batch Input. También es posible exportarla a un archivo o importar de un archivo una grabación.

Por último, si volvemos para atrás, presionando el botón Back de la pantalla, veremos la grabación que acabamos de crear con cierta información de la misma.

Imagen 3.6 - Volvemos atrás presionando el botón back

Podremos ejecutar la grabación cuantas veces queramos, presionando el botón procesar y seleccionando la grabación de la pantalla. También es posible modificar una grabación creada para volver a ejecutarla.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

352

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Batch Input utilizando Call transaction Creamos nuestro primer Batch Input utilizando CALL TRANSACTION. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 7: Batch Input vs Bapis y temas avanzados

CVOSOFT IT Academy - Formación en Sistemas.

Vamos a crear nuestro primer Batch Input utilizando la técnica de CALL TRANSACTION. El objetivo del Batch Input será la carga inicial de datos de la tabla ZTABLA_USUARIOS. Para ello, vamos a crear un archivo de texto con registros que cumplan con la estructura de la tabla ZTABLA_USUARIOS, sin tener en cuenta al campo mandante.

Imagen 1.1 - Archivo de texto de entrada con datos

Como lo que vamos a hacer será la carga inicial de la tabla de usuarios, borraremos su contenido previamente a la ejecución de este ejemplo. Ahora, seguiremos los pasos que establecimos en la primer lección de la unidad.

Paso 1ero. : Declaración de datos propios del batch input Declaramos una tabla interna y una estructura, ambas del tipo BDCDATA, otra tabla interna del tipo BDCMSGCOLL con su estructura, que servirán para almacenar los mensajes que se produzcan cuando ejecutemos el CALL TRANSACTION, la tabla interna de usuarios, que contendrá los datos que levantemos del archivo de entrada y una tabla para mostrar por pantalla los errores entre otras declaraciones.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

353

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Declaramos los tipos de datos necesarios para realizar el BI

Paso 2do. : Lectura de datos de archivo de entrada Ejecutamos el método GUI_UPLOAD para levantar el archivo de entrada con la información para generar el Batch Input.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

354

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.3 - Levantamos el archivo de entrada con el método GUI_UPLOAD

Paso 3ero. : Carga de la tabla BDCDATA Para cargar la tabla BDCDATA utilizamos la subrutina BDC_FIELD, que vimos en la lección anterior. Antes debemos inicializar la tabla interna del Batch Input y la de los mensajes. Como vamos a ingresar más de un registro, tendremos que manejar indices para saber en que fila de la pantalla estamos cargando los datos. Esto lo solucionamos fácilmente, concatenando al nombre del campo el número de fila que le corresponde en la pantalla entre paréntesis.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

355

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.4 - Carga de la tabla BDC_DATA

Paso 4to. : Ejecución de la sentencia Call Transaction Ahora vamos a ejecutar la sentencia CALL TRANSACTION. La sintaxis de la sentencia es la siguiente:

Imagen 1.5 - Ejecución de la sentencia CALL TRANSACTION

Veamos en detalle cada una de las opciones. USING: aquí especificamos la tabla BDCDATA que se utilizará. MODE: determina el modo de procesamiento que utilizará el Batch Input. Los modos posibles de procesamiento son:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

356

Manual de estudios Curso Programador ABAP Nivel Inicial

Tabla 1.1 | Modos posibles de procesamiento

UPDATE: determina el modo de actualización de los cambios que producirá el Batch Input. Los modos posibles son:

Tabla 1.2 | Modos de acualización

MESSAGES INTO: con el uso de esta opción, todos los mensajes generados durante el procesamiento del Batch Input son almacenados en una tabla interna de tipo BDCMSGCOLL. Para armar los mensajes, vamos a utilizar la función MESSAGE_PREPARE tal como vemos a continuación:

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

357

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.6 - Tratamiento de mensajes con la función MESSAGE_PREPARE

Ahora que ya terminamos con todos los pasos del Batch Input, vamos a ejecutarlo con modo de procesamiento "A", que nos permite ver el paso a paso de las actualizaciones. Lo primero que hacemos es ingresar a la transacción SM30 con el nombre de la tabla y presionamos el botón Actualizar (Maintain) .

Imagen 1.7 - En modo paso a paso se presiona el botón Actualizar

Luego presionamos el botón Entradas nuevas (New Entries).

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

358

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.8 - En modo paso a paso se presiona el botón Nuevas entradas

Se cargan todos los campos del registro y presionamos grabar.

Imagen 1.9 - En modo paso a paso se cargan los campos de un registro completo

Finalmente salimos de la transacción y repetiremos esta secuencia de pasos por cuantos registros de usuario ingresemos en la tabla.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

359

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.10 - En modo paso a paso salimos de la trx y se cargan los demás registros del archivo

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

360

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Batch Input utilizando Juego de Datos Creamos nuestro primer Batch Input utilizando Juego de Datos y analizamos la utilización del programa RSBDCBTC para la ejecución del juego de datos. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 7: Batch Input vs Bapis y temas avanzados

CVOSOFT IT Academy - Formación en Sistemas.

Vamos a crear nuestro primer Batch Input utilizando la técnica de Juego de datos. El objetivo del Batch Input será la carga inicial de datos de la tabla ZTABLA_USUARIOS. Para ello, vamos a crear un archivo de texto con registros que cumplan con la estructura de la tabla ZTABLA_USUARIOS, sin tener en cuenta el campo mandante.

Imagen 1.1 - Creamos un archivo de entrada sin el campo mandante

Como lo que vamos a hacer será la carga inicial de la tabla de usuarios, borraremos su contenido previamente a la ejecución de este ejemplo. Ahora seguiremos los pasos que establecimos en la primer lección de la unidad.

Paso 1ero. : Declaración de los datos propios del Batch Input Declaramos una tabla interna y una estructura, ambas del tipo BDCDATA y otra tabla interna de usuarios que contendrá los registros que levantemos del archivo de entrada.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

361

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.2 - Declaramos los tipos de datos necesarios para el BI

Paso 2do. : Lectura de datos de archivo de entrada Ejecutamos el método GUI_UPLOAD para levantar el archivo de entrada con la información para generar el

batch

input.

Imagen 1.3 - Lectura del archivo de entrada con el método GUI_UPLOAD

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

362

Manual de estudios Curso Programador ABAP Nivel Inicial

Paso 3ero. : Apertura de la sesión del Juego de Datos Para realizar la apertura de la sesión del

Juego de Datos, vamos a utilizar la función BDC_OPEN_GROUP,

especificando el mandante, el grupo y el usuario.

Imagen 1.4 - Apertura del juego de datos

Paso 4to. : Carga de la tabla BDCDATA Para cargar la tabla BDCDATA utilizaremos la subrutina BDC_FIELD, que vimos en la lección dos. Antes debemos inicializar la tabla interna del Batch Input.

Paso 5to. : Inserción del Juego de Datos Para realizar la inserción del

Juego de Datos vamos a utilizar la función BDC_INSERT, tal como vemos a

continuación.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

363

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.5 - Inserción del juego de datos

Paso 6to. : Cierre de la sesión del Juego de Datos Para cerrar el Juego de Datos vamos a utilizar la función BDC_CLOSE_GROUP, tal como vemos a continuación.

Imagen 1.6 - Cierre del juego de datos

Paso 7mo. : Ejecución del Juego de Datos Para realizar la ejecución del Juego de Datos vamos a entrar a la transacción SM35. Vamos a seleccionar el Juego de Datos y lo ejecutamos presionando el botón Ejecutar (Process).

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

364

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.7 - Ejecución del juego de datos a través de la transacción SM35

En la siguiente ventana de díalogo marcamos la opción Invisible (Background) y presionamos Ejecutar (Process).

Imagen 1.8 - Seleccionamos invisible

Finalmente la sesión cambiará de status dependiendo del resultado de la ejecución y los datos se actualizarán en la tabla ZTABLA_USUARIOS.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

365

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 1.9 - Cambia el estado del juego de datos dependiendo del resultado de la ejecución

Podemos ejecutar el Juego de Datos en forma Online mediante la ejecución del programa estándar RSBDCBTC. Para ello, vamos a tener que crear un job, submitir la ejecución del programa RSBDCBTC y cerrar el job, tal como vemos a continuación.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

366

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 2.1 - SUBMIT al programa RSBDCBTC

Luego, si vamos a la transacción SM35, vemos que el juego de datos se procesó sin la necesidad de hacerlo manualmente.

Imagen 2.2 - Juego de datos procesado en la transacción SM35

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

367

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

BAPIS Aprenderemos

que

es

una

BAPI,

analizaremos

algunas

bapis

estándar

y

aprenderemos a trabajar con la transacción BAPI. Curso: Programador ABAP Nivel Inicial Unidad: Unidad 7: Batch Input vs Bapis y temas avanzados

CVOSOFT IT Academy - Formación en Sistemas.

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

Se pueden utilizar BAPIS desde cualquier plataforma de desarrollo que soporte el uso de funciones RFC.

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.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

368

Manual de estudios Curso Programador ABAP Nivel Inicial

Existen ciertas BAPIS que son estándares y pueden ser implementadas para la mayoría de los objetos de negocios. Estas BAPIS tienen funciones especificas, como puede ser listar las instancias existentes de un objeto de negocio SAP. Ellas son:

Bapis estándar para lectura de datos GetList(): con esta BAPI se pueden seleccionar un rango de objetos como pueden ser sociedades o números de materiales.

GetDetail(): se utiliza para recuperar los datos de una instancia de un objeto de negocio.

GetStatus(): se utiliza para obtener el status de un objeto de negocio.

ExistenceCheck(): chequea si existe una entrada determinada de un objeto de negocio.

Bapis estándar para crear o modificar datos Create() o CreateFromData(): se utilizan para crear instancias de objetos de negocios.

Change(): se utiliza para modificar una instancia de un objeto de negocio.

Delete() y Undelete(): se utilizan para borrar y para cancelar el borrado de una instancia de un objeto de negocio.

Bapis estándar para procesamiento masivo Las BAPIS para crear o modificar datos pueden ser utilizadas para procesamiento masivo, es decir para procesar grandes cantidades de datos. Para ello, será necesario agregar el sufijo Múltiple al nombre de los métodos. Por ejemplo: ChangeMultiple(), CreateMultiple() or DeleteMultiple().

Bapis estándar para replicar instancias de objetos Las BAPIS Replicate() y SaveReplicate() son utilizadas para copiar instancias de objetos de un sistema a otro.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

369

Manual de estudios Curso Programador ABAP Nivel Inicial

Para visualizar las BAPIS existentes en el sistema, podemos utilizar la transacción estándar BAPI.

Imagen 3.1 - La transacción BAPI

Veamos por ejemplo la Bapi BAPI_USER_GET_DETAILS, que se utiliza para obtener los datos personales de los usuarios de SAP. Para buscarla seleccionamos en el menú la opción Tratar / Buscar.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

370

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.2 - Buscamos una bapi en la transacción

Ingresamos el nombre del objeto que es USER y presionamos continuar.

Imagen 3.3 - Introducimos el nombre del objeto

Y dentro del menú que vemos a la izquierda de la pantalla, vamos a User y allí seleccionamos GetDetail.

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

371

Manual de estudios Curso Programador ABAP Nivel Inicial

Imagen 3.4 - Visualizamos la GETDETAIL

Si ejecutamos la BAPI desde la transacción SE37, podremos acceder a los datos personales del usuario.

Imagen 3.5 - Ejecución de la bapi BAPI_USER_GET_DETAIL en la transacción SE37

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

372

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

373

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

374

Manual de estudios Curso Programador ABAP Nivel Inicial

Lección:

Bibliografía Bibliografía utilizada a lo largo del módulo de estudios. Curso: Programador ABAP Nivel Inicial Unidad: Entrega de Materiales y Bibliografía

CVOSOFT IT Academy - Formación en Sistemas.

Manual SAP BC400 Introduction to ABAP Workbench Manual SAP BC405 Technics of List Processing and Sap Query Manual SAP BC410 Transaction Programming 1 y 2 Manual SAP BC415 Programming Communications Interfaces in ABAP Manual SAP BC420 Interfaces and Data Transfer Manual SAP BC430 ABAP Dictionary SAP BC ABAP Programming Release 4.6B December 1999 SAP Getting Started December 1999 SAP Introducción R/3 Enterprise Junio 2003 Manual SAP TAW_10_1 Manual SAP TAW_10_2 Manual SAP TAW_10_3 Manual SAP TAW_12_1 Manual SAP TAW_12_2

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

375

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

376

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

377

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

378

Manual de estudios Curso Programador ABAP Nivel Inicial

©CVOSOFTITACADEMY |ISBN978-987-27549-2-1|[email protected]| www.cvosoft.com

379

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF