Curso ABAP
-
Upload
juan-carlos-sainz-diaz -
Category
Documents
-
view
403 -
download
20
Transcript of Curso ABAP
Índice
Introducción 1
Diccionario ABAP 2
Interfases / Carga de Datos / Funciones y BAPIS
3
Screen & Menu Painter
Transacciones y Ampliaciones 4
5
Introducción - Módulos Funcionales de SAP ERP
La solución mySAP ERP es una completa suite de negocios destinada a dar cobertura a los diferentes procesos funcionales de una Compañía.
Cada área funcional permite operar diversas áreas de gestión de una empresa.
1
Módulos Funcionales de SAP ERP
Módulo de Finanzas
Sociedad Financiera
Plan de Cuentas
Contabilizaciones Manuales y Automáticas
Procesos de Cierre Contable
Balance Financiero
Ledgers Especiales
Corrección Monetaria
Consolidación
Contabilidad de Deudores y Acreedores
Gestión de Activos Fijos
1
Introducción - Arquitectura Tecnológica de SAP R/3
Multiplataforma Hardware
S.O.
Dialogo
SAPgui
Lenguajes
B.D: DB2 Common Server
INFORMIX-OnLine ORACLE
Windows 3.1, Windows 95, Windows NT,
OSF/Motif, OS/2 Presentation Manager (PM),
Macintosh, Java
DB2 Common Server MS SQL Server
INFORMIX-OnLine ORACLE
ABAP/4, C, C++, HTML, Java, ActiveX-Controls, Visual Basic, ...
DB2 for
OS/400
AIX
Digital UNIX
HP-UX
Reliant
UNIX (SINIX)
SOLARIS
Linux
Windows NT OS/400
Bull/Zenith
Compaq
Data General
...
NCR
Sequent
SNI
Digital
HP (Intel)
IBM (Intel)
Bull
Digital
HP
IBM
SNI
SUN
UNIX systems IBM
AS/400
Windows NT,
Windows 95,
PM, Java
IBM
S/390
DB2 for
OS/390
OS/390
Este diagrama muestra las capas de compatibilidad de las soluciones SAP
1
Arquitectura Tecnológica de SAP R/3
Bajo el esquema cliente-servidor, un sistema SAP R/3 proporciona los siguientes elementos por cada capa.
Presentación
Aplicación
Base de Datos
Entorno único y transparente para operar con la Base de Datos.
Interfaces de usuario multiplataforma.
WebEnable
Soporta desarrollo de aplicaciones Orientada a Objetos o a Eventos.
Workbench ABAP
Screen Painter
SAP@WebStudio
Diferentes ambientes y herramientas para el desarrollo de aplicaciones.
SAP Scripts
SAP Graphics
SAP ABAP List Viewer
1
Introducción - ¿Qué es ABAP/4?
Lenguaje de Programación de cuarta generación, orientado a aplicaciones de negocio en ambientes SAP R/3
Advanced
Business
Aplication
Programming
4GL
Todos los módulos de SAP fueron construidos en este lenguaje.
Lenguaje estructurado orientado a
Eventos. Soporta programación Orientada a Objetos.
FUNCIONES: Módulos con parámetros de
entrada y salida que se pueden llamar desde
cualquier programa, incluso desde fuera de
SAP (RFC’s).
TRANSACCIONES: Programas interactivos
cuyo flujo lo controlan las pantallas, estas se
generan desde el Screen Painter.
REPORTS: Programas de listado.
Solamente tienen un paso de Diálogo.
1
Introducción – Interfaz de Usuario para SAP
Ingreso al Sistema
Entorno Lógico del Sistema de
Información.
Ejemplo: Mandantes de Desarrollo,
Test y Productivo
Datos de Logon para
el Mandante
Idioma de la Interfaz
Gráfica de Usuario
1
Introducción – Interfaz de Usuario para SAP
Nomenclatura de Elementos de Pantalla
Campo de Comandos
(Código de
Transacciones)
Barra de
Herramientas
General de SAP
Barra de
Herramientas de la
Aplicación Menu de
Aplicaciones
Barra de
Mensajes
Información de
Contexto:
Sistema,
Mandante,
Usuario, etc.
1
Introducción – Interfaz de Usuario para SAP
Ambiente de Trabajo
para Desarrollos en
SAP R/3:
Business Object Builder
Editor ABAP
Biblioteca de Funciones
Diccionario ABAP
Object Navigator
Otras herramientas
Development Workbench
SE80
1
Paquetes
Los objetos correspondientes al Workbench ABAP se agrupan en un paquete y su asignación al mismo se indica en el catálogo de objetos (TADIR). Las propiedades
del objeto en cuestión vienen determinadas mediante la Capa de Transporte de su paquete.
Estos pueden ser local o transportable.
Transportable. A sus diferentes Instancias.
Local. Local en cada maquina. Nombre por defecto $TMP.
Cuando se crea un objeto este solicitar asignarlo a un paquete
1
Introducción – Sistema de Transportes de SAP 1
DEV QAS PRD
Consultores
Equipo de Proyecto
Consultores
Usuarios Claves
Equipo de Proyecto
Usuarios Claves
Usuarios Finales
Parametrizar
Desarrollar
Probar
Validar
Operación
Real
Transporte
Transporte
Sistema de Transporte de las Parametrizaciones y Desarrollos
Diversos Entornos o Ambientes de Trabajo: Desarrollo, Pruebas y Producción
Introducción – Sistema de Transportes de SAP 1
Ordenes de Transporte
Son paquetes donde se alojan los objetos para gestionar objetos del repositorio R/3 o Customizing dentro de un sistema R/3 o para transportar entre diferentes Sistemas R/3.
¿Cuándo usamos una orden de transporte?
Cada vez que se crea un objeto en el repositorio o cada vez que se realice una modificación nos solicitará una orden de transporte.
Tipos de Ordenes
Orden de Modificación Transportable. Grabación de las modificaciones en objetos de Repositorio dentro de un sistema R/3.
Orden de Customizing. Grabación de las modificaciones en parametrizaciones Customizing y su posible transporte a otros Sistemas R/3 o a otros mandantes.
Para administrar las Ordenes de transporte podemos acceder a la Trx. SE10.
Sistema de Transportes de SAP
Objetos a transportar
Orden de
transporte
Tarea: Asociada al
usuario
1
ABAP Debugger - Activación
Existen varios caminos para el ABAP Debugger desde le Navegador de Objetos:
En el area de navegacion, se escoge el nombre del programa y escoger en el menu de contexto Ejecutar -> Debugging
1
ABAP Debugger - Activación
En la Transaccion de editor de programa (SE38), escoger la linea de programa y poner Breakpoint, entonces al ejecutar el programa parará en la linea que se
escogio.
Breakpoint
Tambien se puede ingresar en el campo de comando la declaracion ‘/H’ y esto activara automaticamente el debugger.
Por ultimo, se puede escoger en el menu principal la opcion Sistema -> Utilidades
-> Debugging ABAP.
1
Trabajando con ABAP Debugger
En el modo debugging, se puede escoger la opcion ‘Paso a Paso’ para ejecutar declaracion por declaracion el programa, ‘Continue’ (F8) el cual ejecutara el
programa.
Para visualizar el valor del objeto de dato, se hace doble-clic a campo o variable y este aparecerá automáticamente en el area de campo.
Paso a
Paso (F5)
1
Trabajando con ABAP Debugger
Dentro del debugging se puede poner breakpoints haciendo dobleclic en la linea de codigo que se desee. Estos pueden ser temporales o grabados.
Los breakpoint quedaran puestas por sesion de usuario.
Otra de las opciones importantes del debugg es el Watchpoint el cual se
condiciona por valor del campo. Solo se puede poner como max 10 de estos los cuales se puede vincular con los operadores AND u OR.
Watchpoint
1
Índice
Introducción 1
Diccionario ABAP 2
Interfases / Carga de Datos / Funciones y BAPIS
3
Screen & Menu Painter
Transacciones y Ampliaciones 4
5
Diccionario de Datos
La transacción SE80 integra funcionalidad diversas para el tratamiento de diferentes elementos, sin embargo existen otras transacciones como la SE11, especializada en el tratamiento de elementos del Diccionario de Datos de SAP.
2
Tabla / Estructura
Vista
Elemento datos
Dominio
Matchcode
Objeto Bloqueo
SE11
Diccionario de Datos
Elementos del Diccionario de Datos
Tabla: Objeto básico de una base de datos. Se pueden almacenar registros con los programas estándar o del usuario.
Estructura: Similar a la definición de tabla. Físicamente es solo una definición, no almacena datos en forma permanente.
Vista: Definición lógica de campos de una o varias tablas. Facilita el acceso a los datos de un BD. Se define indicando las tablas que intervienen.
Elemento de datos: describe los atributos de tipo (tipo de datos, longitud de campo y, en caso necesario, cantidad de decimales) y contiene información relevante para dynpros (textos explicativos o Ayuda para campos) de objetos de datos no estructurados (campos de tablas o de estructuras o variables).
Dominios: Permite definir formatos de campos. En la definición se especifica el tipo y la longitud, la tabla de verificación de posibles valores, la longitud de salida y la rutina de conversión. Todos estos atributos se asocian al campo que utilice un elemento de dato definido con este dominio.
Matchcode: Es un conjunto de índices sobre una tabla que permiten realizar búsqueda on-line de información.
Objeto de bloqueo: Es una unión virtual de varias tablas SAP que sincroniza el acceso simultáneo de dos usuarios al mismo set de datos.
2
Diccionario de Datos
En el Diccionario ABAP es posible definir tablas de una misma forma con total independencia de la base de datos empleada por SAP. Se definen los campos de la
tabla con los tipos de datos y longitudes, basados en estándares de SAP.
Una definición de tabla se compone de las siguientes partes integrantes:
Campos de tabla: Se indican los nombres de campo y los tipos de datos de los campos contenidos en la tabla.
Clave externa: Mediante la clave externa se especifican las relaciones de la tabla con otras tablas.
Opciones técnicas: Con las opciones técnicas se controla cómo se crea la tabla
en la base de datos.
Índices: Para acelerar la selección de datos de la tabla se pueden crear índices para la tabla.
2
Diccionario de Datos
Existen tres clases de tablas de base de datos en el Diccionario ABAP: Tabla Transparente, Tabla Pool y Tabla Cluster.
Tabla Transparente: En las tablas transparentes se crea una definición de tabla
física en la base de datos para la definición de tablas almacenada en el Diccionario ABAP al activar la tabla. La definición de tabla del Diccionario ABAP se traduce en una definición en la base de datos respectiva.
Tabla Pool y Tabla Cluster: Se utilizan para almacenar conjuntamente la
información de diferentes tablas. Se utilizan exclusivamente para almacenar información interna de control (secuencia de pantallas, parámetros de programas, datos temporales, documentación, etc). Datos de relevancia
comercial se almacenan en tablas transparentes.
2
Indicador de tipo
de tabla
Indicador actualizacion por
browser de datos
Diccionario de Datos
Atributos de una Tabla
2
Indicador Campo Clave
Indicador No Nulo
Elemento de dato
Nombre del Campo
Diccionario de Datos
Campos de una Tabla
2
Diccionario de Datos
Creación de Interfaz de Actualización
Permite la creacion de Mantenedor de tabla (Siempre y cuando se de la opcion de visualizacion/Actualizacion permitida).
Menu principal del diccionario de datos (SE11), en la opcion:
Utilidades->Generador Actualiz. Tab. (SE54).
2
NOTA: Se recomienda poner el mismo
nombre de la tabla como grupo de
funciones, con relación de 1 a 1
Diccionario de Datos
Creación de Transacción para Interfaz de Actualización
Tipo de Transaccion con Parametros (SE93)
2
Diccionario de Datos
Vistas
Consisten en una unión de tablas mediante sus claves primarias.
Ej.
2
RELACIÓN POR CLAVE PRIMARIA
CARRID CONNID CITYFROM
AA 0017 FRANKFURT
LH 0402 NEW YORK
LH 0440 FRANKFURT
QF 0598 NEW YORK
CARRID CONNID FLDATE
AA 0017 07.03.2000
AA 0017 12.03.2000
LH 0402 08.03.2000
LH 0402 09.03.2000
CARRID CONNID CITYFROM CARRID CONNID FLDATE
AA 0017 FRANKFURT AA 0017 07.03.2000
AA 0017 FRANKFURT AA 0017 12.03.2000
LH 0402 NEW YORK LH 0402 08.03.2000
LH 0402 NEW YORK LH 0402 09.03.2000
Diccionario de Datos
Tipos de Vistas
Las vistas de base de datos implementan un “inner join”. Los otros tipos de vistas (Supresión, Ayuda y Actualización) implementan un “outer join”.
Vista de la Base de Datos: Se realizan a través de una vista equivalente en la
base de datos.
Vista de Supresión: Se utilizan para suprimir campos de una tabla.
Vista de Ayuda: Se utilizan en el sistema de ayuda online.
Vista de Actualización: Permiten una vista empresarial de los datos y la posibilidad de actualizar estos datos.
2
Diccionario de Datos
Ejercicios:
Creación de Dominio, con y sin ámbitos de valoración.
Creación de Elemento de Datos, con y sin ayuda de búsqueda.
Creación de Tabla empleando los tipos anteriormente creados y algunos estándares.
Creación de Interfaz de Actualización.
Creación y modificación de Transacción de Interfaz de Actualización.
NOTA: Para cada elemento nuevo crear descripciones en la documentación del objeto ABAP.
2
Índice
Introducción 1
Diccionario ABAP 2
Interfases / Carga de Datos / Funciones y BAPIS
3
Screen & Menu Painter
Transacciones y Ampliaciones 4
5
Carga de Datos 3
La funcionalidad “Data Transfer Workbench” entrega soporte completo para la transferencia de datos a SAP, entre sus funcionalidades tenemos:
Administración y organización de Proyectos de Transferencia de Datos
Herramientas par el análisis de las estructuras requeridas por SAP
Integración de programas estándar de transferencia
Diversas técnicas de carga de datos en SAP:
Batch Input
Direct Input
Call Transaction
BAPI Interface
Batch Input es una técnica estándar para el ingreso masivo de datos de datos hacia SAP.
Simula el ingreso que puede hacer manualmente un usuario en el sistema SAP, por lo
tanto, el ingreso de datos sufre todas las validaciones de sistema que se realizan al ingresar manualmente, asegurando la consistencia de los datos ingresados.
La mayoría de los programas de transferencia masiva en SAP R/3 utilizan esta técnica.
El proceso Batch Input se divide en 2 etapas:
El programa de transferencia de datos (estándar o nuevo) crea una sesión Batch
Input con un Juego de Datos, que contiene toda la información a ser procesada.
La sesión Batch Input es procesada y los datos que contiene son transferidos a SAP R/3.
3
Carga de Datos – Batch Input
Elementos de un programa Batch Input
Tabla BDC
Definición de estructura para el registro de datos desde el archivo secuencial
Llamados a módulos de función
Módulos de Función BDC...
Definir/declarar tabla BDC
Definir estructura de datos
para archivo secuencial
3
Carga de Datos – Batch Input
ABRIR ARCHIVO SECUENCIAL
ABRIR SESIÓN BATCH INPUT
ÚLTIMO REGISTRO ?
CERRAR SESIÓN BATCH INPUT
CERRAR ARCHIVO SECUENCIAL
LEER REGISTRO DE DATOS
LLENAR TABLA BDC
LLENAR SESIÓN BATCH INPUT
Tablas BDC: Definición
Tabla BDC registra los datos de entrada para una transacción
Luego, su contenido es transferido a una sesión Batch Input
Una fila de la tabla BDC incluye la siguiente información:
Nombre de programa, número de pantalla, indicador de inicio, nombre de campo y valor del campo
La tabla BDC se declara como una tabla interna usando la estructura del
diccionario de datos BDCDATA
3
Carga de Datos
Definición de estructura para archivo secuencial
Los campos de la estructura siempre deben ser definidos como tipo string de caracteres (C)
3
Carga de Datos
Módulos de función para un programa Batch Input
ABRIR SESIÓN BATCH INPUT
Insertar datos
a la transacción
CERRAR SESIÓN BATCH INPUT
•Client
•Nombre de Sesión
•Fecha bloqueo
•Borrar sesión después de
procesamiento
•Usuario BDC
BDC_OPEN_GROUP
•CLIENT
•GROUP
•HOLD
•KEEP
•USER
•Código Transacción
•Tabla BDC
BDC_INSERT
•TCODE
•DYNPROTAB
BDC_CLOSE_GROUP
HOLDDATE: Fecha más temprana en que puede iniciarse el proceso
KEEP: Indica si la sesión debe ser borrada después de haber sido procesada exitosamente (X: No borrar)
3
Carga de Datos
Batch Input - Ejemplo
ABRIR ARCHIVO SECUENCIAL
ABRIR SESIÓN BATCH INPUT
ÚLTIMO REGISTRO ?
CERRAR SESIÓN BATCH INPUT
CERRAR ARCHIVO SECUENCIAL
LEER REGISTRO DE DATOS
LLENAR TABLA BDC
LLENAR SESIÓN BATCH INPUT
OPEN DATASET v_file FOR INPUT IN TEXT MODE
PERFORM OPEN_GROUP
READ DATASET v_file INTO REC
PERFORM LLENA_TABLA_BDC
PERFORM LLENA_SESION
PERFORM CLOSE_GROUP
CLOSE DATASET v_file
Donde v_file es el nombre del archivo secuencial, incluyendo su ruta de acceso o Path, ejemplo: “C:\curso\archivo_carga.txt”
3
Carga de Datos
REPORT ZCURSO_ABAP_BATCH_INPUT.
INCLUDE BDCRECXX.
DATA: BEGIN OF REC1,
CAMPO1(5) TYPE C,
CAMPO2(10) TYPE C,
…
END OF REC.
DATA: v_file(50) DEFAULT
‘C:\curso\archivo_carga.txt’.
START-OF-SELECTION.
OPEN DATASET v_file FOR INPUT IN TEXT MODE.
..
..
PERFORM OPEN_GROUP.
DO.
READ DATASET v_file INTO REC1.
IF SY-SUBRC NE 0. EXIT. ENDIF.
…
PERFORM GENERATE_BDC_DATA.
PERFORM BDC_TRANSACTION USING ‘XK01’.
REFRESH BDCDATA.
ENDDO.
PERFORM CLOSE_GROUP.
CLOSE DATASET v_file.
Subrutinas para creación de
sesiones batch input
Estructura para almacenar
cada registro del archivo
secuencial
Definición del archivo
secuencial (incluyendo
path completo)
ABRIR archivo secuencial
ABRIR sesión
LEER registro del archivo y
almacenarlo en REC1
Verificar fin de archivo
LLENAR tabla BDC
LLENAR sesión (definida en BDCRECXX)
BORRAR tabla BDC
CERRAR sesión
CERRAR archivo secuencial
3
Carga de Datos
FORM GENERATE_BDC_DATA.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR‘ 'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE‘ '/00'.
perform bdc_field using 'RF02K-LIFNR‘ 'P0010'.
perform bdc_field using 'RF02K-BUKRS‘ ‘ACT1'.
perform bdc_field using 'RF02K-EKORG‘ 'CC01'.
perform bdc_field using 'RF02K-KTOKK‘ 'P001'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR' 'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'LFM1-WAERS' 'CLP'.
Nombre de programa y
número de pantalla
Nombre de campo y
valor de campo
BDC_DYNPRO y
BDC_FIELD
están definidos en programa
include BDCRECXX.
3
Carga de Datos
Es una funcionalidad de SAP que facilita la generación de programas de transferencia de datos mediante Batch Input o Call Transaction.
La grabación de una transacción puede ser realizada varias veces. Y se pueden
encadenar varias transacciones.
F1 y F4, pantallas de error y warning, movimientos en el scrollbar NO son grabadas.
Acceso a recorder:
Transacción SM35
Botón “Grabación” Grabación Nueva
Seleccionar código de transacción a grabar
Ejecutar transacción
Grabar
Generar programa (objeto local)
Transaction Recorder 3
Carga de Datos
Una sesión Batch Input puede ser procesada en 3 modos diferentes:
Foreground (visible)
Background (invisible)
Error display (se detiene en screen donde ocurre el error, y solo si ocurre un error)
3
Carga de Datos
Técnica que permite un ingreso masivo de información a SAP, empleando un juego de datos tal y como lo utiliza un Batch Input.
La diferencia con un Batch Input, es que el juego de datos no queda registrado
en el sistema si no que vive en la memoria de ejecución del programa, por lo que una vez generado se llama inmediatamente a la transacción que procesará la información.
No soporta corrección manual del juego de datos una vez ejecutado el proceso y
tiene en forma automática funciones de log.
Procesamiento sincrónico.
El sistema ejecuta un commit work antes y después de cada llamada a la sentencia “Call Transaction”, no obstante es posible ejecutar la transacción en modos Sincrono y Asincrono.
Call Transaction 3
Carga de Datos
Es una técnica de procesamiento masivo de información que funciona similar a un Batch Input.
Sin embargo posee otras diferencias notables que lo posicionan como una mejor
opción en especial para el tratamiento de grandes volúmenes de datos.
Los programas estándares que procesan la información, no usan pantallas ni ningún otro tipo de despliegue por lo que se ejecutan en fondo maximizando la velocidad de procesamiento de la información.
Esta técnica no crea sesiones, sino que almacena los datos directamente en el
diccionario de datos de SAP, con todas las validaciones estándares que correspondan, exceptuando obviamente las que existan a nivel de pantalla.
En caso de error, el Direct Input provee un mecanismo de reinicio.
Direct input se puede ejecutar en 2 modos:
Ejecutar programa directamente
Ejecutar programa en background
Direct Input 3
Carga de Datos
Carga de Datos
Direct Input
Soporta la carga de aplicaciones: Documentos FI, Datos Maestros de Materiales, Datos de Materia Prima para PP-EHS, etc.
Para asegurar la integridad de datos, cada programa DI dispones de un
mecanismo de reposicion. La informacion de sincronizacion se escribe en la tabla TBIST mediante funciones. En caso de cancelacion garantiza que se reanude en la posicion correcta (Ej. Ningun documento se contabiliza en forma duplicada).
Utiliza la misma estructura de BDC.
Transaccion BMV0 y se ejecuta como procesos de fondo. Es posible manipular la
transferencia directamente desde la SM36/SM37.
Algunos Programas de carga:
RFBIBL00 FI
RMDATIND MM
RVAFSS00 SD
RAALTD11 AM
RKEVEXT0 CO-PA
3
BAPI = Business Aplication Program Interface
RFC = Remote Function Call
Una BAPI es un objeto de negocio SAP, que posee diversos métodos para el tratamiento de información, normalmente estos métodos son también funciones
RFC, es decir funciones que pueden ser invocadas desde fuera del Sistema SAP.
Existe una amplia gama de objetos de negocio y de funciones estándares disponibles para el tratamiento de la información.
Es posible crear desde cero una BAPI o una RFC.
Es un mecanismo muy usado para construir interfaces entre SAP y otros sistemas, que realicen movimiento de información on-line.
En las versiones de SAP NetWeaver, es posible transformar una RFC en un
WebService, con muy poco esfuerzo.
BAPI’S y RFC 3
Carga de Datos
Son documentos estructurados y jerárquicos que pueden tener varios niveles de información, utilizados internamente por SAP para mover información entre
módulos y entre sistemas.
Es un robusto estándar de mensajería utilizado por SAP desde sus inicios y que ha sido asimilado por lo principales proveedores de Middlewares que con la aparición de XML han debido desarrollar adaptadores que transforman XML en
IDOC y vise versa.
Permite comunicación sincrona y asíncrona.
Permite procesamiento transaccional en forma natura pero también soporta el manejo de colas
Tiene un entorno de administración de mensajería
Existe una gran cantidad de IDOC estándares definidos que pueden ser utilizados, no obstante se pueden diseñar y construir algunos a medida.
Requieren la parametrización de mensajería, para el procesamiento de datos,
esto permite que al llegar un IDOC a SAP este es reconocido y procesado automáticamente por las funciones de procesamiento estándares o desarrolladas existentes.
IDOC (Internal Document) 3
Carga de Datos
Legacy System Management Workbench (LSMW)
Es una herramienta de SAP que soporta la transferencia de datos desde sistemas No-SAP a SAP.
Es una herramienta fundamental en la organización de los proyectos de
migración de datos y entrega una guía a través de todo el proceso.
Las reglas de conversión más comunes vienen predefinidas. Esto asegura la consistencia en la conversión de datos para diferentes objetos de datos.
LSMW cubre los siguientes pasos:
Lectura de datos (sistemas externos) desde uno o más archivos
Conversión de formato fuente a formato objetivo
Import de datos usando interfaces estándar:
Batch Input
Direct Input
BAPI – RFC
IDOC
3
Carga de Datos
Grupo de Funciones Grupo de Funciones
Grupo de Funciones
Grupo de Funciones
Módulos
de Funciones Subrutinas Includes Campos Estruct.
Las funciones pueden ser llamadas desde cualquier programa ABAP.
Una función pertenece a un Grupo de función y están compuestas de:
Entrada
Salida
Tablas
Entrada/Salida
Excepciones Código Fuente
Atributos
Parámetros
Función
3
Funciones y BAPIS
En un programa ABAP el llamado es:
CALL FUNCTION <nombre_funcion>
EXPORTING
campos/tablas
IMPORTING
campos/tablas
TABLES
tablas /* tablas internas por referencia
EXCEPTIONS
excp1
excpn.
Funciones y BAPIS 3
RFC = Remote Function Call
Permiten generar código externo para aplicaciones que actúen como cliente
o servidor de la RFC. Este código se genera en Visual Basic, ANSI C, java o C++.
Pueden ser ejecutadas desde dentro o fuera de SAP.
3
Funciones y BAPIS
BAPI = Business Aplication
Program Interface
Subconjunto de Funciones RFC.
Implementan un servicio de negocio específico.
Se encuentran organizados por una
jerarquía de aplicaciones de negocio. Materializan los métodos de los Business Objects de SAP.
Se pueden acceder mediante
instancias de Objetos.
3
Funciones y BAPIS
Índice
Introducción 1
Diccionario ABAP 2
Interfases / Carga de Datos / Funciones y BAPIS
3
Screen & Menu Painter
Transacciones y Ampliaciones 4
5
Transacciones
Las funcionalidades en SAP están asociadas a códigos de transacción, los cuales pueden ser creados y agrupados según las necesidades de los usuarios.
SE93
Nombre de la transacción
4
Customizing, es la Parametrización del SAP.
Personalization, esta relacionado con la definición de Roles y Perfiles en SAP.
Modificatión, se refiere a Modificaciones al Estándar, cambios directos en los Programas estándar.
Exits Add-Ins, Requerimientos potenciales que no ha sido desarrollados en el
estandar.
Customer Programs, Desarrollos hechos a medida.
Ampliaciones al Estándar 4
Modification Assistant
Business Add-In
Transaction Variants
Screen Variants
Simplifica el Flujo de las Transacciones permitiendo:
•Ocultar funciones individuales de Menu
•Ocultar Pantallas
•Simplifica el layout de Pantallas permitiendo:
•Insertar valores por defecto en campos
•Ocultar y cambiar atributos de control de tablas
•Ocultar y cambiar valores de autollenado para campos
•Técnica de Ampliación Basada en Business Objects :
•Permite crear Aplicaciones de Objetos con funcionalidades
completas de negocio que extienden las capacidades de SAP
(Como un Plug-In en un Browser)
•Tiene una estructura de varios niveles
•Permite ser reutilizado en distintas aplicaciones de SAP Customer EXITS
FUNCTION MODULE EXITS
SCREEN EXITS
MENUS EXITS
•Agregan Funcionalidad en determinados puntos de las
aplicaciones estándares de SAP :
•No alteran las aplicaciones estándares de SAP
•Se agrupan en proyectos de ampliación
•Se vinculan específicamente a una aplicación
Customer Exits 4
User Exit
Son ampliaciones (que se aplican a través de la Trx. CMOD), son necesarios para verificaciones y/o modificaciones el contenido de un campo cuando se ejecuta una
transacción estándar.
Una de las formas de búsquedas mas fáciles es a través del paquete que pertenece la Trx. Estándar (buscar en la SE93), luego se va a la Trx. SMOD y buscas las ampliaciones asociadas a esa clase de desarrollo. Caso de que existan, visualiza el
código comentado antes del include ZX*, si tienes un EXPORTING o un CHANGING entonces se podra modificar o dar valores a ciertos campos. Una vez elegido una ampliación, se deberá crear un proyecto en CMOD, agregas la ampliación, y en
componentes dentro del cde la función EXIT_* doble clic sobre el include ZX*, si no existe, lo creas con una clase de desarrollo propia.
Ejemplo : Trx MK01.
4
User Exit
Consejo de pasos a seguir
Que el único codigo inicial sea un BREAK-POINT.
Activas el include y el proyecto.
Ir a la transacción que se desea ampliar y ejecutar, y si pasa por esta user en la accion que uno desea, entonces, se detendrá en el break-point, y después
onservar el contenido de las estructuras de que dispones (TABLES, IMPORTING), procura manejarse siempre con estos datos y evitar en la medida de lo posible accesos a base de datos con SELECTs.
Se INSISTE tener mucho criterio con los accesos a BD que se haga, pues hay
que tener presente que cualquier exit con un analisis pobre puede tener como consecuencia que los tiempos de respuesta se pueden alterar de las transacciones funcionales y estandar de SAP.
4
Índice
Introducción 1
Diccionario ABAP 2
Interfases / Carga de Datos / Funciones y BAPIS
3
Screen & Menu Painter
Transacciones y Ampliaciones 4
5
Aplicaciones con Pantallas 5
Las creación de aplicaciones con pantallas se realiza en un entorno conocido como Screen Painter, en donde se pueden diseñar gráficamente el layout de pantalla y
construir la lógica de proceso de cada pantalla.
Para acceder a una dynpro desde un programa se debe ingresar la sentencia
CALL SCREEN <Nro. dynpro>.
SE51
Desde un programa ABAP es posible llamar a estas pantallas y realizar el procesamiento de los datos.
Las pantallas poseen su propio flujo lógico y están vinculadas a códigos de función que activan el flujo lógico.
Bajo ciertas reglas se pueden usar pantallas y sub pantallas para generar servicios posibles de activar en Internet, previa construcción de una IAC.
Otra forma de hacer aplicaciones con pantallas habilitadas para Internet, es mediante la programación de BSP.
Componentes
Lógica de Proceso. Controla el flujo del programa (Código de la Dynpro)
Lista de Elementos. Elementos del screen. Definidos en el Diccionario de
datos o en el programa.
Atributos. Describe al objeto de la dynpro. Incluye el programa al que pertenece
y el tipo de screen. Características generales de la ventana.
Editor Disposición. Contiene un conjunto de elementos. Los elementos son
parte de la ventana con los que interactúa el usuario. Incluye por ejemplo los
checkboxes, radio buttons, cajas de texto, etc. Es el entorno grafico de la ventana.
5
Número de Pantalla
Pantalla Siguiente
Posición Inicial
Grupo de Pantallas Opciones Generales
Tipo de Pantalla
Aplicaciones con Pantallas – Screen Painter 5
Aplicaciones con Pantallas – Screen Painter
La barra de herramientas de Screen Painter pone a disposición diferentes elementos entre los que se destacan:
Campo de Texto: Elementos fijos que no se modifican en tiempo de ejecución.
Campo de Entrada o Salida: Campos para el despliegue o ingreso de datos, relacionados con los campos de pantalla.
Botones: Elementos que activan el módulo de flujo PAI en la lógica de la pantalla, tienen asociados Códigos de Función que se pasan al programa ABAP, para la lógica interna.
Sub-Pantallas o Frames: Áreas reservadas para nuevas pantallas.
OK_CODE: Elemento de pantalla que almacena el Código de Función activo de la Pantalla.
Casilla de Texto
Texto
Check Box
Radio Button
Push Button
TabStrip
TabStrip Wizard
Marco
Subscreen
Table Control
Custom Control
Casilla de Texto
Status
5
Elementos de Pantalla
Ventanas de
atributos/campos/elementos
Aplicaciones con Pantallas – Screen Painter 5
MODUL-POOL. Los programas de diálogo en ABAP/4 son de tipo M (Modul-Pool). Estos programas sólo pueden ejecutarse a través de una transacción.
Se utilizan para crear dynpros (pantallas de diálogo).
Con la llamada MODULE en la lógica de proceso de la dynpro, el control se pasa al
programa ABAP/4 y se procesa el módulo con el mismo nombre.
Los módulos asignados al evento PBO (Process Before Output) se complementan con el parámetro OUTPUT; y los asignados al PAI (Process After Input) con el parámetro INPUT.
Aplicaciones con Pantallas – Conceptos 5
PROCESS BEFORE OUTPUT.
MODULE OUTPUT1.
PANTALLA ABAP
PROGRAM ZMODULE.
.
.
MODULE OUTPUT1 OUTPUT.
ENDMODULE.
MODULE INPUT1 INPUT.
Perform XXX.
.
.
ENDMODULE.
FORM XXX.
….
ENDFORM.
PROCESS AFTER INPUT.
MODULE INPUT1.
Aplicaciones con Pantallas – Conceptos 5
Los Campos de Pantalla permanecen el la memoria de pantalla, traspasan su valor a los campos definidos en el programa ABAP que tienen el mismo nombre.
Es posible modificar las Pantallas en forma Dinámica cambiando los atributos de
determinados campos de pantalla en los módulos ABAP de Procesamiento Lógico.
La Lógica de Flujo, pertenece a cada pantalla y junto con el programa ABAP determinan el comportamiento de las pantallas, están formados por:
PBO
Process Before Output
PAI
Process After Input
POH
Process On Help Request
POV
Process On Value Request
F1 F4
Aplicaciones con Pantallas – Conceptos 5
PBO (Process Before Output): Proceso que agrupa todas las sentencias que se ejecutan antes de visualizar la pantalla. Cuando se crea, SAP coloca por defecto un
Module llamado Module Status_(Nº pantalla) que se utiliza para definir el menú (por Menú Painter) y el titulo.
PAI (Process After Input): Evento que agrupa los procesos que se ejecutan cuando se pulsa algún botón, Enter o tecla de función. Al igual que PBO, SAP crea un Module
llamado Module User_Command_(Nº pantalla), en donde se coloca las sentencias relacionadas a cada uno de los eventos.
Para identificar el código de función existen 2 formas: sy-ucomm o a través de una variable tipo OK (char de 20).
Cuando se termina de ejecutar la PAI, el flujo regresa al PBO de la pantalla siguiente
(en el caso de que exista solo una pantalla, regresa al PBO de la misma).
POH (Process On Help-Request) y POV (Process On Value-Request): Son eventos que se disparan cuando el usuarios solicita ayuda (F1) o la búsqueda de opciones mediante matchcode (F4).
Aplicaciones con Pantallas – Conceptos 5
Sentencias Permitidas en la lógica de pantalla de Screen Painter
MODULE: Indica el llamado/procesamiento de un modulo.
LOOP ….. ENDLOOP: Realiza un ciclo sobre una tabla.
CHAIN… ENDCHAIN: Procesa una cadena de campos.
Aplicaciones con Pantallas – Conceptos 5
Aplicaciones con Pantallas – Interacción con el Usuario 5
Existen muchas maneras en las que el usuario interactúa con la pantalla:
Acciones del usuario en pantalla: usando campos de entrada/salida, pushbuttons, checkboxes y radiobuttons asociados a códigos de función, a través
de la posición del mouse, o utilizando los GUI status (conjunto de funciones que provee la funcionalidad de menú, barra de herramientas y menús contextuales)
Verificación de datos ingresados: puede ser llamado en el evento PAI, de manera que podamos por ejemplo, activar o desactivar la entrada de datos en
determinados campos de una pantalla.
Modificación dinámica de pantallas: los atributos de los elementos de una pantalla son definidos estáticamente, sin embargo es posible modificar estos atributos en tiempo de ejecución, dependiendo de la acción del usuario.
Es un objeto avanzado de pantalla, que permite mostrar en forma matricial (grilla) información.
El table control permite modificar, insertar y borrar registros desde una pantalla.
Para definir un table control se debe definir lo siguiente en el Programa ABAP.
CONTROLS : <nombre control> TYPE TABLEVIEW USING SCREEN <nº
pantalla>.
PBO
<Sentencias>.
LOOP AT <tabla_interna> WITH CONTROL <control> CURSOR <control-TOP_LINE>.
<Sentencias>.
ENDLOOP.
<Sentencias>.
PAI
LOOP AT <tabla_interna>.
<Sentencias>
ENDLOOP.
<Sentencias>.
donde CURSOR se utiliza para identificar en que fase del loop se encuentra.
Aplicaciones con Pantallas – Table Control 5
TabStrip Control
Es un objeto de ventana que consta de dos a mas paginas
Cada pagina de una lengüeta tiene un titulo y un área de pagina. Si el área ocupada por el control TabStrip es demasiado estrecha no se exhibirán todos los
títulos de la lengüeta, entonces aparecerá un scrollbar.
Los controles del tabstrip permiten que usted coloque una serie de pantallas que pertenecen a un uso en una sola pantalla, y que navegue entre ellas fácilmente.
Características del TabStrip Control. El área del TabStrip tiene un nombre único y una posición, una longitud y una
altura.
El área del TabStrip se puede volver a clasificar según el tamaño vertical y
horizontal cuando el usuario vuelva a clasificar según el tamaño de la ventana.
Cuando el usuario elige una pagina de la lengüeta, se acciona el acontecimiento de PAI, y se debe incluir un modulo en su lógica de flujo que active la pagina.
5
Flujo Lógico
Inicializar Variables
Insertar valores por defecto
Posicionamiento del Cursor
Mostrar y Ocultar campos
Modificar Dinámicamente los atributos de un campo
Definición de Títulos
Definición de la Barra de Menú y Botones
Carga de Datos
Valida Información
Procesar Información Seleccionada
Llamadas a nuevas dynpros
Manejar Errores
PBO PAI Display Input Action
5
Menu Painter
Es una herramienta del Workbench que nos permite crear una interfase grafica para el usuario (GUI).
Permite la visualización de los códigos de función; esto significa hacer programas
de fácil uso.
La Transacción para acceder es la SE41.
Para acceder a un status desde un programa se debe ingresar la sentencia
SET PF-STATUS ‘<Nombre>’.
Tipos de Status Status de dialogo. Es una imagen de pantalla para el dialogo entre el usuario y
el programa. Las dynpros de dialogo tienen campo de entrada y salida.
Ventana de dialogo. Este tipo de status para una ventana de dialogo sin barra de menús. Para la definición de teclas de función, el sistema propone los códigos
de función estándar para las ventanas de dialogo
Menú Contextual. Contiene solo teclas de función.
5