Curso ABAP

95
CURSO ABAP/4 Noviembre 2011

Transcript of Curso ABAP

CURSO ABAP/4

Noviembre 2011

Í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

Parámetros de la

tabla en la BD

Tipo de acceso a los

datos

Diccionario de Datos

Opciones Técnicas 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

Tablas BDC: Estructura 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

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

SE37

3

Funciones y BAPIS

3

Funciones y BAPIS

3

Funciones y BAPIS

3

Funciones y BAPIS

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

BAPI

Método y Función

RFC

3

Funciones y BAPIS

Objeto de Negocio

Í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

Para reportes

Para pantallas

Transacciones 4

Programa asociado

Objeto de autorización

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

Accediendo al Screen Painter

Componentes

5

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.

Aplicaciones con Pantallas 5

Aplicaciones con Pantallas 5

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

Aplicaciones con Pantallas – Table Control 5

Aplicaciones con Pantallas – Table Control 5

Aplicaciones con Pantallas – Table Control 5

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

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

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

Menu Painter 5

Lista de Titulos

Son los titulos que se ponen en una dynpro

Para acceder a un Titulo desde un programa se debe ingresar la sentencia

SET TITLEBAR ‘<Titulo>’.

Titulo

5