Curso Conceptos Tecnicos ABAP

34
Conceptos Técnicos SAP ABAP Buenos Aires, Diciembre de 2011 SAP ABAP

Transcript of Curso Conceptos Tecnicos ABAP

Page 1: Curso Conceptos Tecnicos ABAP

Conceptos Técnicos

SAP ABAPBuenos Aires, Diciembre de 2011

SAP ABAP

Page 2: Curso Conceptos Tecnicos ABAP

2

confidencialidad

Aviso: Este documento es material confidencial y propiedad de everis. Se

prohíbe el uso, reproducción o la divulgación del contenido de este

material sin permiso previo y por escrito de la empresa propietaria.

Derechos de Autor

© 2011, everis. All rights reserved

Page 3: Curso Conceptos Tecnicos ABAP

3

1. Objetivo Principal

2.Conceptos Básicos / Vocabulario

3.Transacciones útiles

4.Debugging

índ

ice

Page 4: Curso Conceptos Tecnicos ABAP

4

IntroducciónObjetivo Principal

Brindar los conocimientos técnicos básicos de ABAP para facilitar las tareas de análisis dentro del entorno de SAP, reduciendo así los tiempos y además contribuir a un mejor análisis .

Page 5: Curso Conceptos Tecnicos ABAP

5índ

ice

1. Objetivo Principal

2.Conceptos Básicos / Vocabulario

3.Transacciones útiles

4.Debugging

Page 6: Curso Conceptos Tecnicos ABAP

6

Conceptos Básicos 1/12

Estructura SAP – Funciones de los ambientes

Organización

Mandante: es un área de trabajo dentro de un ambiente de SAP. Por ejemplo, dentro del ambiente de desarrollo, podemos tener distintos mandantes: uno para desarrollo, otro para pruebas, otro para customizing, etc.

Page 7: Curso Conceptos Tecnicos ABAP

7

Conceptos Básicos 2/12Organización

RolesAnalista Funcional Analista TécnicoProgramador

Escenario Ideal

Analista Funcional Analista Técnico Programador

Escenario Real

Analista Funcional Programador

Page 8: Curso Conceptos Tecnicos ABAP

8

Conceptos Básicos 3/12SAP ABAP

No importa cuán abarcativo sea un software de gestión, las necesidades particulares de cada cliente y los requisitos de los distintos escenarios de negocios, puede generar  una necesidad de customizing del software que excede la parametrización.

En el caso particular de SAP, es sabido que no se permite modificar el código fuente de un programa ABAP standard. Por ello, SAP proporciona recursos e instrumentos que permiten intromisiones "controladas" al código, a través del concepto de ampliaciones o Enhancements. La idea es expandir la funcionalidad dentro del sistema SAP para atender las necesidades adicionales del cliente, sin modificar el código fuente del programa standard. Las sucesivas versiones de SAP fueron incoporando nuevos y mejores instrumentos para llevar a cabo esta tarea.

Asimismo, permite generar nuevas funcionalidades fuera del standard de SAP, comunmente se trata de programas ABAP ‘Z’, con funcionalidades como reportes y aplicaciones especificas de negocio.

Page 9: Curso Conceptos Tecnicos ABAP

9

Conceptos Básicos 4/12SAP ABAP

Un programa es un conjunto de sentencias de un lenguaje de programación (ABAP Advanced Business Application Programming), con un orden específico, orientado al desarrollo de aplicaciones de negocios.

Una Transacción en terminología SAP es la ejecución de un programa, la forma normal de ejecutar código ABAP en el sistema SAP es ingresando un código de transacción. Los programas ABAP ( Reports) pueden visualizarse a través de la transacción SE38Podemos diferenciar varios tipos de programas:

Includes (SE38): Son programas referenciados dentro de los Reports (que se incluyen en un programa report ), se utilizan para poder ordenar el código, generalmente contienen subrutinas ( performs ) especificas, por ejemplo las subrutinas de pantalla, de salida, y proceso.

Jobs (SM36 / SM37): Son programas ( creados por SE38 ) que tienen asociada una periodicidad de ejecución. Se crean y modifican a través de la transacción SM36, se ejecutan y monitorean en la transacción SM37.

IDocs( Intermediate Documents): Permiten intercambiar información entre distintos sistemas. Es una estructura de datos para el intercambio electrónico de datos ( EDI). Se lo puede ver como un archivo de texto plano, con registros. Los IDocs se crean y luego se envían. Los distintos tipos IDOC definen las diferentes categorías de datos, tales como órdenes de compra o facturas, que a su vez puede dividirse en categorías más específicas llamados tipos de mensaje. Más específicamente, significa que un tipo de IDOC es capaz de almacenar sólo los datos necesarios para una determinada operación, lo que aumenta la eficiencia y disminuye la demanda de recursos.

Page 10: Curso Conceptos Tecnicos ABAP

10

Conceptos Básicos 5/12SAP ABAP

Batch Inputs Emula la interacción de un usuario indicando los datos y operaciones que realiza dentro de una transacción SAP específica. En resumen no es más que un a proceso automatizado.

Se pueden realizar de dos maneras diferentes:• CALL TRANSACTION, se realiza el proceso al momento de ejecución del

programa• Juego de datos, donde el proceso realizado se guarda junto con los datos

intervinientes para una posterior ejecución.

Asimismo existe tres modos de ejecución: • Modo A: Muestra todas las pantallas paso a paso y la acción a realizar en cada

paso• Modo E: Ejecuta en fondo hasta encontrar un mensaje de error y luego sigue

paso a paso .• Modo N: Ejecuta en fondo, al finalizar muestra los mensajes obtenidos.

Page 11: Curso Conceptos Tecnicos ABAP

11

Conceptos Básicos 6/12SAP ABAP

Módulo de Función: Programa Z o estándar, que opera con parámetros de entrada y parámetros de salida, estos pueden ser campos, estructuras o tablas. Pueden visualizarse en la transacción SE37, tienen una funcionalidad especifica que puede ser utilizada en diferentes lugares, como por ejemplo en un programa, user-exit , ampliaciones. Por ejemplo K_PLAN_ATTRIBUTES_GET, Z01FIAP_FFIJO_VALIFNR ( Validación del proveedor),

BAPIS: Módulo de Función estándar de SAP que permite realizar una operación específica. Por ejemplo:

• BAPI_PO_CREATE > Creación de Pedidos• BAPI_GOODSMVT_CREATE > Crear Movimientos de mercancías• BAPI_ACC_DOCUMENT_POST > Contabilidad: Posting (creación de documentos

contables)

En la transacción BAPI, se pueden visualizar todas la BAPIs existentes, los datos de cada BAPI en particular se visualizar y testean en la transacción SE37.

Page 12: Curso Conceptos Tecnicos ABAP

12

Conceptos Básicos 7/12SAP ABAP

Parámetros de input /output(Export)

Descripciones generales

Tilde de RFC (Modulo de Acceso

Remoto)Permite que la

función sea llamada desde un sistema

legacyRFC = Interfaz

Page 13: Curso Conceptos Tecnicos ABAP

13

Conceptos Básicos 8/12SAP ABAP

Ampliaciones / Enhacements:

Son puntos dentro de espacios estándares en los que SAP permite agregar código Z. Están puestos estratégicamente por SAP para validar distintos datos, por ejemplo en la grabación de solp, pedidos, movimientos, facturas, etc.La idea es expandir la funcionalidad dentro del sistema SAP para atender las necesidades adicionales del cliente, sin modificar el código fuente del programa standard.

•User exits: Los USER EXITS son como subrutinas vacías dentro de un programa estándar en las cuales se puede agregar código. (El nombre de las mismas comienza con USEREXIT).  Este método utiliza módulos de función mediante los cuales se puede ingresar código ABAP. El sistema provee las funciones donde los user-exits son llamados y se cuenta con una interfaz definida y un programa Include. Es en este programa Include donde se agrega el código requerido.  Se consideran técnicamente modificaciones, dado que hay que tocar programas includes de SAP, para lo cual se necesita clave de modificación de objeto (proporcionada por SAP).

•Field Exits: TODOS los campos pueden tener una validación especifica en una pantalla especifica. Están asociados al elemento de datos ( tipo de dato especifico ).

Page 14: Curso Conceptos Tecnicos ABAP

14

Conceptos Básicos 9/12SAP ABAP

•Badi’s: Las BADI’s (Bussiness Add-ins) son las nuevas técnicas de ampliación del código estándar de SAP basadas en programación ABAP orientada a objetos. Usan instancias de ABAP Objects. Se invocan con CALL METHOD. Se crean con la transacción SE18 y se implementan con la transacción SE19. Objetos estándares que contienen mensajes Z donde se puede agregar código ( Los métodos y clases se visualizan desde SE24 )  

•BTE’s: BTE (BUSINESS TRANSACTION EVENTS). Estas son ampliaciones que fueron desarrolladas para el módulo de Contabilidad Financiera (FI), que permiten agregar componentes adicionales en los programas estándares por medio de funciones (FUNCTION MODULES). Una característica común de las BTE, es que son independientes de mandante. Se pueden configurar a través de la transacción FBIF donde a un determinado código de evento se asigna un módulo de función Z que copia su interface de un módulo de función Standard.

•Customer Exits: Los CUSTOMER EXITS se definen dentro de un proyecto de ampliación, por lo tanto se gestionan con la transacción CMOD. Permiten ampliar código fuente (function module exit), menúes (menu exit) y pantallas estándares(screen exit), y no permiten múltiples implementaciones.

Page 15: Curso Conceptos Tecnicos ABAP

15

Conceptos Básicos 10/12SAP ABAP

Formularios : Existen dos tipos de formularios: SAPscript y Smartforms.

Donde los Formularios SAPscripts son dependientes de mandante y además se separa la parte gráfica de la lógica, estos se visualizan desde la transacción SE71 y siempre tienen un programa impresor asociado. En cambio, los Smartfoms son independientes de mandante. Se ejecutan a través de módulos de funciones que están ligadas directamente al formulario. Una vez creado el Formulario, mediante las transacciones SMARTFOMS y SMARTSTYLES, el sistema escribe automáticamente las rutinas del control del formulario y podremos invocar al formulario a través de un par de funciones estándar de sistema. En la transacción SMARTSTYLES se define el estilo del formulario llamada en la cual se definen tipo de párrafos, tipo de caracteres, los fonts que se van a usar, el tamaño que tendrán, los tabuladores, etc.

Page 16: Curso Conceptos Tecnicos ABAP

16

Conceptos Básicos 11/12SAP ABAP

Variantes son grabaciones de los parámetros de entrada de un programa ( Transacción ) o Módulo de Función. Simplemente se utilizan para no tener que volver a escribir los datos cada vez que se utilizan.

Graba la variante

Recupera variantes existentes

Page 17: Curso Conceptos Tecnicos ABAP

17

Conceptos Básicos 12/12SAP ABAP

Gestión de Versiones cada orden de transporte al ser liberada guarda una versión del objeto, por ejemplo de un programa. Con la gestión de versiones podemos ver el histórico de versiones de un programa, comparar las versiones entre los diferentes ambientes (DES, QAS PRD) utilizando la comparación remota y rescatar versiones anteriores. Para visualizar la gestión de versiones por ejemplo de un programa en la transacción SE38 ir a Menú: Utilidades > Versiones > Gestión de Versiones.

Comentarios Los programas sufren modificaciones continuamente, y estas modificaciones son realizadas por diferentes programadores a lo largo del tiempo, por ello para lograr un mejor mantenimiento de los mismos, se recomienda que al menos el 30% de las líneas de código de un programa sean comentarios. En ABAP las líneas de comentario comienzan con un asterisco ( * ) o comillas dobles ( “ ) y resaltadas en azul o gris según la versión del editor ABAP .

Page 18: Curso Conceptos Tecnicos ABAP

18

Diccionario de Datos 1/6SAP ABAP

El diccionario de datos es donde se describen y manejan todas las definiciones de datos usadas en el sistema. El Diccionario ABAP soporta la definición de tipos definidos por el usuario (elementos de datos, estructuras y tipos de tablas ).También se puede definir la estructura de objetos de la base de datos (tablas, índices y vistas). 

Tablas Pueden ser definidas, independientemente de la base de datos. Los campos de la tabla son definidos con sus tipos de datos (independientes de base de datos) y longitudes o elementos de datos. Cuando la tabla se activa, se crea una definición física sobre la base de datos. Una definición de tabla en el Diccionario ABAP contiene los siguientes componentes:

• Los campos de la tabla definen los nombres de los campos y los tipos de datos de los campos de la tabla.

• Las claves externas son las relaciones de la tabla con otras tablas.• Los aspectos técnicos es el control de cómo la tabla debería ser creada en la base de datos.

Se debe especificar su clase de datos y categoría del tamaño esperado.

Elementos de Datos Describen el significado de un campo,  tienen un carácter semántico.  indica qué se está almacenando en el campo. El elemento de datos siempre tiene asociado un dominio.

Dominio Describe las propiedades físicas de los datos (tipo y longitud). Entre los tipos disponibles existen por ejemplo CHAR, NUMC, DATS, CURR, etc.

Clave se trata de unos o mas campos que identifican a cada registro de información contenido como único.

Page 19: Curso Conceptos Tecnicos ABAP

19

Diccionario de Datos 2/6SAP ABAP

Estructura general

Campos Clave

Datos del elemento de datos

Datos del dominio

SE11 Diccionario de Datos - Tablas

Page 20: Curso Conceptos Tecnicos ABAP

20

Diccionario de Datos 3/6SAP ABAP

Tabla Transparente Se refiere a tablas que se definen en SAP y se corresponden directamente con tablas de base de datos tradicionales. Existe con la misma estructura tanto en el diccionario, así como en la base de datos exactamente con los mismos datos y los campos.

Tabla Pooled o cluster Es una tabla lógica de la base de datos que contiene varias tablas. Se utilizan para almacenar datos de control. Una pooled tabla es una tabla 'virtual' contenida en una Tabla pool. La tabla en la base de datos tiene diferente nombre, distinto número de campos y nombres de campos diferentes. Realmente su efectividad consiste en tener muchas subtablas y así ahorrar accesos a distintas tablas. Como en la tabla pooled, la tabla cluster es una tabla lógica con la estructura de otras tablas transparentes que tienen clave principal común y sus datos deben accederse simultáneamente, NO tiene existencia física dentro de la base de datos. Las tablas clusters al ser procesadas por la base de datos requiere mucha memoria disponible. Por ejemplo BSEG contiene la estructura y los registros de las tabla transparentes BSIS, BSAS, BSID, BSAD, BSIK, BSAK, etc.

Tabla Transparente vs Estructura Una estructura no guarda datos, la tabla si. Los datos pueden ser almacenados en la base por medio de las tablas transparentes (de existencia física), pero las estructuras solo contienen datos temporales, mientras se ejecuta un programa.

Tabla de Customizing vs Tabla de Aplicación Ambas guardan datos en SAP y pueden o no ser tablas Z. Difieren en la manera en la que se cargan los datos. Las tablas de customizing generan una orden de transporte en cada actualización. Las de aplicación deben cargarse en cada ambiente / mandante.

Tabla Transparente vs Tabla Interna La tabla interna es una tabla creada en un programa. Contiene valores calculados o tomados de las tablas transparentes, su contenido solo aplica mientras dura la ejecución del programa.

SE16 vs SE11 La SE11 se puede visualizar como esta compuesto el objeto (elementos de datos, dominios, clave, etc). La SE16 solo permite ver el contenido de una tabla, los datos de cada registro.

Page 21: Curso Conceptos Tecnicos ABAP

21

Diccionario de Datos 4/6SAP ABAP

SE11 Diccionario de Datos - Tablas

La estructura NO tiene campos

clave

Tipo de datos (Estructura o Tabla transparente)

Tipo de tabla (customizing o

aplicación)

Page 22: Curso Conceptos Tecnicos ABAP

22

Diccionario de Datos 5/6SAP ABAP

Índices Es una alternativa de performance para acceder a los datos de una tabla con campos distintos de la clave. Puede traer n registros. Siempre que no se pueda acceder a una tabla por su clave se debe verificar la existencia de un índice que permita el acceso con mejor performence.

Referencia de utilización La referencia de utilización se utiliza para buscar un objeto, como por ejemplo, buscar programas que utilizan una determinada tabla transparente o buscar en tablas un campo específico a través del elemento de datos.

Traducciones de elementos de datos estándar La transacción SE11 puede utilizarse para copiar las descripciones de los elementos de datos en otros idiomas.

Page 23: Curso Conceptos Tecnicos ABAP

23

Diccionario de Datos 6/6SAP ABAP

SE11 Diccionario de Datos - Tablas

Referencias de utilización

índices

Page 24: Curso Conceptos Tecnicos ABAP

24índ

ice

1. Objetivo Principal

2.Conceptos Básicos / Vocabulario

3.Transacciones útiles

4.Debugging

Page 25: Curso Conceptos Tecnicos ABAP

25

Transacciones Útiles 1/3SAP ABAP

Transacciones Generales

OSS1 Online Service System (Notas SAP) http://service.sap.com

SE09 / SE10 Ordenes de transporte.

SE80/ SE84 Repositorio de objetos ABAP. SE80 Object navigator incluye SE84 sistema de información

SE91 Actualización de Mensajes

SE93 Actualización de Transacciones

ST22 Analisis de Dumps ABAP (Errores en tiempo de ejecución que interrumpen el proceso)

AL11 Directorios SAP. Visualización de carpetas del servidor (UNIX)

SM04 Visualización de lista de usuarios on line en SAP

Page 26: Curso Conceptos Tecnicos ABAP

26

Transacciones Útiles 2/3SAP ABAP

Programas / código

SE37 Editor de Grupo de Funciones

SE38 Editor de programas ABAP.

SE71 Editor de Formularios SAP Script

SMARTFORMS/ SMARTSTYLES Editor de formularios Smartforms y hojas de estilo.

SE51 Editor de Screen Painter

SE24 Editor de Clases, Métodos.

SM35 Editor de Batch inputs

SM36 Editor de Jobs en fondo

SM37 Resumen de selección de Jobs

SMOD / CMOD Gestión de ampliaciones SAP

BAPI Explorador de BAPIs

Page 27: Curso Conceptos Tecnicos ABAP

27

Transacciones Útiles 3/3SAP ABAP

Tablas

SE11 Diccionario de datos(tablas, estructuras, dominios, etc)

SE16 Browser de datos

SM30 Actualización de vistas (tablas)

Envío de mails

SO01/02/03 Bandeja de mails personal.

SOST Resumen de Mails enviados

SCOT SAP Connect: Gestión.

Page 28: Curso Conceptos Tecnicos ABAP

28índ

ice

1. Objetivo Principal

2.Conceptos Básicos / Vocabulario

3.Transacciones útiles

4.Debugging

Page 29: Curso Conceptos Tecnicos ABAP

29

Debbugging 1/5SAP ABAP

Hay varias formas de ingresar al modo debugging. Una de ellas, es indicándole al editor que coloque un break en la parte del código en el cual deseamos que el programa detenga la ejecución y comience el debugging. Coloquemos un break posicionándonos en una línea del código y presionando el botón correspondiente, y veremos como aparece el indicador de break en dicha línea. Ahora, cuando presionemos la tecla F8 para ejecutar el programa, en primer lugar aparecerá la pantalla de selección. Luego de ejecutar la misma, no aparecerá como hasta ahora la pantalla con el listado, sin que veremos que aparece una pantalla como la de la figura. Vemos a la izquierda el código del report, comenzando por el punto de break, y a la derecha, una pantalla con las variables.

Page 30: Curso Conceptos Tecnicos ABAP

30

Debbugging 2/5SAP ABAP

Esta función permite ejecutar el programa línea a línea. Se activa con la sentencia “/h” en el campo de OK-CODE, o fijando un break point.

Breakpoint

• Fijo Se realiza dentro del código utilizando la sentencia BREAK, la misma puede estar asignada independientemente del usuario a un punto específico con la sentencia BREAK-POINT., o asignada a un usuario específico BREAK SE11567. (usuario)

• Variable Se asigna a la línea de ejecución indicada por el cursor .

• En sentencia Se asigna a una sentencia determinada en todas las repeticiones existentes dentro del programa en ejecución

Watchpoint Según un cambio en el valor contenido en un campo determinado.

Page 31: Curso Conceptos Tecnicos ABAP

31

Debbugging 3/5SAP ABAP

Variables Work Area Es una estructura que contiene

los datos de un registro de una tabla interna. Tabla Interna para su manipulación se

utilizan sentencias como :• LOOP AT / ENDLOOP: Recorre uno a

uno los registros de la tabla interna.• READ TABLE: Lee un registro

especifico de la tabla interna. Modificación de Valores Para diversos fines

de pruebas en el programa, podemos modificar los valores de variables en tiempo de ejecución. Veamos cómo. Hagamos doble clic sobre un valor del primer registro, por ej., sobre el campo, en la solapa de variables hay un lapicito, hacemos doble clic sobre el mismo, y pasamos a modo de edición.

Page 32: Curso Conceptos Tecnicos ABAP

32

Debbugging 4/5SAP ABAP

Comandos

• Single step (F5) Ejecución Paso a Paso

• Execute(F6) Ejecución Paso a Paso, pero las rutinas y funciones se ejecutaran como una instrucción, sin ingresar al código de las mismas

• Return (F7) Si ingresamos a una rutina o función, presionando F7, finalizaremos la ejecución de la misma, y volveremos al código principal. Ejecuta hasta salir de la subrutina o función

• Continue (F8) Con el mismo, saltaremos hasta el próximo break establecido, o , si no hay más breaks, finalizaremos la ejecución del report.

Page 33: Curso Conceptos Tecnicos ABAP

33

Debbugging 5/5SAP ABAP

Consultas SQL

El Lenguaje ABAP utiliza sentencias de SQL para comunicarse con cualquier base de Datos .

• Consulta básica

Select (campos)From (tabla) into (tabla interna o variables)Where (condición)

• SY-SUBRC variable de sistema que indica el resultado de la ejecución de la línea de código ejecutada. Puede indicar distintos valores de respuesta.

0 Indica que la sentencia fue ejecutada correctamente, y en caso de que se trate de una sentencia de SQL, indica que se encontraron valores que cumplen las condiciones requeridas.

Cualquier valor distinto de Cero, Indica que hubo algún tipo de error, por ejemplo 4 significa que no se hallaron valores que cumplan la consulta.

• SY-TABIX Variable de Sistema que indica la cantidad de valores que se encontraron.

Page 34: Curso Conceptos Tecnicos ABAP

everis.com