Вы находитесь на странице: 1из 34

SAP ABAP

Conceptos Tcnicos SAP ABAP


Buenos Aires, Diciembre de 2011

confidencialidad
Aviso: Este documento es material confidencial y propiedad de everis. Se prohbe el uso, reproduccin o la divulgacin del contenido de este material sin permiso previo y por escrito de la empresa propietaria.

Derechos de Autor 2011, everis. All rights reserved

ndice

1. Objetivo Principal
2.Conceptos Bsicos / Vocabulario 3.Transacciones tiles 4.Debugging

Introduccin
Objetivo Principal

Brindar los conocimientos tcnicos bsicos de ABAP para facilitar las tareas de anlisis dentro del entorno de SAP, reduciendo as los tiempos y adems contribuir a un mejor anlisis .

ndice

1. Objetivo Principal

2.Conceptos Bsicos / Vocabulario


3.Transacciones tiles 4.Debugging

Organizacin
Conceptos Bsicos 1/12
Estructura SAP Funciones de los ambientes

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.

Organizacin
Conceptos Bsicos 2/12
Roles Analista Funcional Analista Tcnico

Programador

Escenario Ideal

Analista Funcional

Analista Tcnico

Programador

Escenario Real

Analista Funcional

Programador
7

SAP ABAP
Conceptos Bsicos 3/12

No importa cun abarcativo sea un software de gestin, 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 parametrizacin. En el caso particular de SAP, es sabido que no se permite modificar el cdigo fuente de un programa ABAP standard. Por ello, SAP proporciona recursos e instrumentos que permiten intromisiones "controladas" al cdigo, a travs 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 cdigo 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.

SAP ABAP
Conceptos Bsicos 4/12
Un programa es un conjunto de sentencias de un lenguaje de programacin (ABAP Advanced Business Application Programming), con un orden especfico, orientado al desarrollo de aplicaciones de negocios. Una Transaccin en terminologa SAP es la ejecucin de un programa, la forma normal de ejecutar cdigo ABAP en el sistema SAP es ingresando un cdigo de transaccin. Los programas ABAP ( Reports) pueden visualizarse a travs de la transaccin SE38 Podemos 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 cdigo, 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
ejecucin. Se crean y modifican a travs de la transaccin SM36, se ejecutan y monitorean en la transaccin SM37.

IDocs( Intermediate Documents): Permiten intercambiar informacin entre distintos sistemas. Es una
estructura de datos para el intercambio electrnico de datos ( EDI). Se lo puede ver como un archivo de texto plano, con registros. Los IDocs se crean y luego se envan. Los distintos tipos IDOC definen las diferentes categoras de datos, tales como rdenes de compra o facturas, que a su vez puede dividirse en categoras ms especficas llamados tipos de mensaje. Ms especficamente, significa que un tipo de IDOC es capaz de almacenar slo los datos necesarios para una determinada operacin, lo que aumenta la eficiencia y disminuye la demanda de recursos.

SAP ABAP
Conceptos Bsicos 5/12

Batch Inputs Emula la interaccin de un usuario indicando los datos y operaciones


que realiza dentro de una transaccin SAP especfica. En resumen no es ms que un a proceso automatizado. Se pueden realizar de dos maneras diferentes: CALL TRANSACTION, se realiza el proceso al momento de ejecucin del programa Juego de datos, donde el proceso realizado se guarda junto con los datos intervinientes para una posterior ejecucin. Asimismo existe tres modos de ejecucin: Modo A: Muestra todas las pantallas paso a paso y la accin 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.

10

SAP ABAP
Conceptos Bsicos 6/12

Mdulo de Funcin: Programa Z o estndar, que opera con parmetros de entrada y


parmetros de salida, estos pueden ser campos, estructuras o tablas. Pueden visualizarse en la transaccin 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 ( Validacin del proveedor),

BAPIS: Mdulo de Funcin estndar de SAP que permite realizar una operacin especfica.
Por ejemplo:

BAPI_PO_CREATE > Creacin de Pedidos BAPI_GOODSMVT_CREATE > Crear Movimientos de mercancas BAPI_ACC_DOCUMENT_POST > Contabilidad: Posting (creacin de documentos
contables) En la transaccin BAPI, se pueden visualizar todas la BAPIs existentes, los datos de cada BAPI en particular se visualizar y testean en la transaccin SE37.

11

SAP ABAP
Conceptos Bsicos 7/12

Parmetros de input / output(Export) Descripciones generales

Tilde de RFC (Modulo de Acceso Remoto) Permite que la funcin sea llamada desde un sistema legacy RFC = Interfaz

12

SAP ABAP
Conceptos Bsicos 8/12
Ampliaciones / Enhacements:
Son puntos dentro de espacios estndares en los que SAP permite agregar cdigo Z. Estn puestos estratgicamente por SAP para validar distintos datos, por ejemplo en la grabacin 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 cdigo fuente del programa standard. User exits: Los USER EXITS son como subrutinas vacas dentro de un programa estndar en las cuales se puede agregar cdigo. (El nombre de las mismas comienza con USEREXIT). Este mtodo utiliza mdulos de funcin mediante los cuales se puede ingresar cdigo 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 cdigo requerido. Se consideran tcnicamente modificaciones, dado que hay que tocar programas includes de SAP, para lo cual se necesita clave de modificacin de objeto (proporcionada por SAP). Field Exits: TODOS los campos pueden tener una validacin especifica en una pantalla especifica. Estn asociados al elemento de datos ( tipo de dato especifico ).
13

SAP ABAP

Conceptos Bsicos 9/12


Badis: Las BADIs (Bussiness Add-ins) son las nuevas tcnicas de ampliacin del cdigo estndar de SAP basadas en programacin ABAP orientada a objetos. Usan instancias de ABAP Objects. Se invocan con CALL METHOD. Se crean con la transaccin SE18 y se implementan con la transaccin SE19. Objetos estndares que contienen mensajes Z donde se puede agregar cdigo ( Los mtodos y clases se visualizan desde SE24 )

BTEs: BTE (BUSINESS TRANSACTION EVENTS). Estas son ampliaciones que fueron desarrolladas para el mdulo de Contabilidad Financiera (FI), que permiten agregar componentes adicionales en los programas estndares por medio de funciones (FUNCTION MODULES). Una caracterstica comn de las BTE, es que son independientes de mandante. Se pueden configurar a travs de la transaccin FBIF donde a un determinado cdigo de evento se asigna un mdulo de funcin Z que copia su interface de un mdulo de funcin Standard.
Customer Exits: Los CUSTOMER EXITS se definen dentro de un proyecto de ampliacin, por lo tanto se gestionan con la transaccin CMOD. Permiten ampliar cdigo fuente (function module exit), menes (menu exit) y pantallas estndares(screen exit), y no permiten mltiples implementaciones.
14

SAP ABAP

Conceptos Bsicos 10/12

Formularios : Existen dos tipos de formularios: SAPscript y Smartforms. Donde los Formularios SAPscripts son dependientes de mandante y adems se separa la parte grfica de la lgica, estos se visualizan desde la transaccin SE71 y siempre tienen un programa impresor asociado. En cambio, los Smartfoms son independientes de mandante. Se ejecutan a travs de mdulos de funciones que estn ligadas directamente al formulario. Una vez creado el Formulario, mediante las transacciones SMARTFOMS y SMARTSTYLES, el sistema escribe automticamente las rutinas del control del formulario y podremos invocar al formulario a travs de un par de funciones estndar de sistema. En la transaccin SMARTSTYLES se define el estilo del formulario llamada en la cual se definen tipo de prrafos, tipo de caracteres, los fonts que se van a usar, el tamao que tendrn, los tabuladores, etc.

15

SAP ABAP

Conceptos Bsicos 11/12

Variantes son grabaciones de los parmetros de entrada de un programa ( Transaccin ) o Mdulo de Funcin. Simplemente se utilizan para no tener que volver a escribir los datos cada vez que se utilizan.
Graba la variante

Recupera variantes existentes

16

SAP ABAP

Conceptos Bsicos 12/12


Gestin de Versiones cada orden de transporte al ser liberada guarda una versin del objeto, por ejemplo de un programa. Con la gestin de versiones podemos ver el histrico de versiones de un programa, comparar las versiones entre los diferentes ambientes (DES, QAS PRD) utilizando la comparacin remota y rescatar versiones anteriores. Para visualizar la gestin de versiones por ejemplo de un programa en la transaccin SE38 ir a Men: Utilidades > Versiones > Gestin 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 lneas de cdigo de un programa sean comentarios. En ABAP las lneas de comentario comienzan con un asterisco ( * ) o comillas dobles ( ) y resaltadas en azul o gris segn la versin del editor ABAP .

17

SAP ABAP

Diccionario de Datos 1/6


El diccionario de datos es donde se describen y manejan todas las definiciones de datos usadas en el sistema. El Diccionario ABAP soporta la definicin de tipos definidos por el usuario (elementos de datos, estructuras y tipos de tablas ).Tambin 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 definicin fsica sobre la base de datos. Una definicin 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 tcnicos es el control de cmo la tabla debera ser creada en la base de datos. Se debe especificar su clase de datos y categora del tamao esperado. Elementos de Datos Describen el significado de un campo, tienen un carcter semntico. indica qu se est almacenando en el campo. El elemento de datos siempre tiene asociado un dominio. Dominio Describe las propiedades fsicas 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 informacin contenido como nico.

18

SAP ABAP

Diccionario de Datos 2/6


SE11 Diccionario de Datos - Tablas

Datos del elemento de datos

Campos Clave

Estructura general

Datos del dominio

19

SAP ABAP

Diccionario de Datos 3/6


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 lgica 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 nmero 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 lgica con la estructura de otras tablas transparentes que tienen clave principal comn y sus datos deben accederse simultneamente, NO tiene existencia fsica 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 fsica), pero las estructuras solo contienen datos temporales, mientras se ejecuta un programa. Tabla de Customizing vs Tabla de Aplicacin 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 actualizacin. Las de aplicacin 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 ejecucin 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.

20

SAP ABAP

Diccionario de Datos 4/6


SE11 Diccionario de Datos - Tablas

Tipo de datos (Estructura o Tabla transparente)

La estructura NO tiene campos clave

Tipo de tabla (customizing o aplicacin)

21

SAP ABAP

Diccionario de Datos 5/6

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 utilizacin La referencia de utilizacin se utiliza para buscar un objeto, como por ejemplo, buscar programas que utilizan una determinada tabla transparente o buscar en tablas un campo especfico a travs del elemento de datos. Traducciones de elementos de datos estndar La transaccin SE11 puede utilizarse para copiar las descripciones de los elementos de datos en otros idiomas.

22

SAP ABAP

Diccionario de Datos 6/6


SE11 Diccionario de Datos - Tablas
ndices

Referencias de utilizacin

23

ndice

1. Objetivo Principal

2.Conceptos Bsicos / Vocabulario


3.Transacciones tiles 4.Debugging

24

SAP ABAP

Transacciones tiles 1/3

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 informacin SE91 Actualizacin de Mensajes

SE93 Actualizacin de Transacciones


ST22 Analisis de Dumps ABAP (Errores en tiempo de ejecucin que interrumpen el proceso) AL11 Directorios SAP. Visualizacin de carpetas del servidor (UNIX)

SM04 Visualizacin de lista de usuarios on line en SAP

25

SAP ABAP

Transacciones tiles 2/3


Programas / cdigo 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, Mtodos.


SM35 Editor de Batch inputs SM36 Editor de Jobs en fondo

SM37 Resumen de seleccin de Jobs


SMOD / CMOD Gestin de ampliaciones SAP BAPI Explorador de BAPIs

26

SAP ABAP

Transacciones tiles 3/3

Tablas SE11 Diccionario de datos(tablas, estructuras, dominios, etc) SE16 Browser de datos SM30 Actualizacin de vistas (tablas) Envo de mails SO01/02/03 Bandeja de mails personal. SOST Resumen de Mails enviados SCOT SAP Connect: Gestin.

27

ndice

1. Objetivo Principal

2.Conceptos Bsicos / Vocabulario


3.Transacciones tiles 4.Debugging

28

SAP ABAP

Debbugging 1/5
Hay varias formas de ingresar al modo debugging. Una de ellas, es indicndole al editor que coloque un break en la parte del cdigo en el cual deseamos que el programa detenga la ejecucin y comience el debugging. Coloquemos un break posicionndonos en una lnea del cdigo y presionando el botn correspondiente, y veremos como aparece el indicador de break en dicha lnea. Ahora, cuando presionemos la tecla F8 para ejecutar el programa, en primer lugar aparecer la pantalla de seleccin. 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 cdigo del report, comenzando por el punto de break, y a la derecha, una pantalla con las variables.

29

SAP ABAP

Debbugging 2/5
Esta funcin permite ejecutar el programa lnea a lnea. Se activa con la sentencia /h en el campo de OK-CODE, o fijando un break point. Breakpoint Fijo Se realiza dentro del cdigo utilizando la sentencia BREAK, la misma puede estar asignada independientemente del usuario a un punto especfico con la sentencia BREAK-POINT., o asignada a un usuario especfico BREAK SE11567. (usuario) Variable Se asigna a la lnea de ejecucin indicada por el cursor . En sentencia Se asigna a una sentencia determinada en todas las repeticiones existentes dentro del programa en ejecucin

Watchpoint Segn un cambio en el valor contenido en un campo determinado. 30

SAP ABAP

Debbugging 3/5

Variables Work Area Es una estructura que contiene los datos de un registro de una tabla interna. Tabla Interna para su manipulacin 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. Modificacin de Valores Para diversos fines de pruebas en el programa, podemos modificar los valores de variables en tiempo de ejecucin. Veamos cmo. 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 edicin.

31

SAP ABAP

Debbugging 4/5

Comandos

Single step (F5) Ejecucin Paso a Paso


Execute(F6) Ejecucin Paso a Paso, pero las rutinas y funciones se ejecutaran como una instruccin, sin ingresar al cdigo de las mismas Return (F7) Si ingresamos a una rutina o funcin, presionando F7, finalizaremos la ejecucin de la misma, y volveremos al cdigo principal. Ejecuta hasta salir de la subrutina o funcin Continue (F8) Con el mismo, saltaremos hasta el prximo break establecido, o , si no hay ms breaks, finalizaremos la ejecucin del report.

32

SAP ABAP

Debbugging 5/5
Consultas SQL El Lenguaje ABAP utiliza sentencias de SQL para comunicarse con cualquier base de Datos .

Consulta bsica

Select (campos) From (tabla) into (tabla interna o variables) Where (condicin) SY-SUBRC variable de sistema que indica el resultado de la ejecucin de la lnea de cdigo 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 algn 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.
33

everis.com