curso basico csti abap
TRANSCRIPT
SAP & ABAPEntorno & Generalidades
CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
- SAP R/3 / ABAP4 Entorno y Generalidades
- Diccionario de Datos
- Introducción a la programación en ABAP
- Listados
- Reportes Interactivos
- Dynpros
- Funciones
- Sap Script
- Smart Forms
- ABAP Objects
- ABAP List Viewer
- Enhancements
Contenido del CursoCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
- Instancia.
- Mandante
- Objetos en una Instancia.
Estructura entorno SAP R/3CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Procedimiento de accesoCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Opciones AvanzadasCSTI Consultoría en Tecnologías de Información
En el Sap logon – Opciones avanzadas existe un flag de conexión rápida: “low speed connection”, que cuando no está marcado permite mantener en memoria las últimas 10 entradas.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
- Barra de Títulos (Title bar)
- Ventana (Windows)
- Barra de Menú (Menu bar)
- Botones Standard (Standard Tool bar)
- Botones Aplicación (Aplication Toolbar)
- Pantalla (Screen)
- Opción Menú (Menu)
- Barra de Estado (Status bar)
- Línea de Comandos (Command box)
Pantalla SAPCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
SAP proviene de: Systems, Applications, Products in Data
Processing.
Este sistema comprende muchos módulos completamente
integrados y abarca prácticamente todos los aspectos de la
administración empresarial. Ha sido desarrollado para
cumplir con las necesidades crecientes de las organizaciones
mundiales y su importancia está más allá de toda duda. SAP
ha puesto su mirada en el negocio como un todo, así ofrece
un sistema único que soporta virtualmente todas las áreas en
una escala global.
¿Qué es SAP?CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
SAP comercializa todos sus productos en diferentes industrias del mundo desde
las compañías privadas hasta las gubernamentales.
Industrias tales como:
- Materias primas, minería y agricultura
- Gas y petróleo
- Químicas
- Farmaceúticas
- Materiales de construcción, arcilla y vidrio
- Construcción pesada
- Servicios
- Consultorías y Software
- Sanatorios y hospitales
- Muebles
- Automoción
- Textil y vestido
- Papel y madera
Mercado SAPCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
SAP R/3 es un ERP, una aplicación de gestión empresarial diseñada
para cubrir la demanda de todas las áreas funcionales de
cualquier empresa.
Está integrado por varios módulos coordinados entre ellos,
generando un flujo de información entre los distintos usuarios.
SAP R/3CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Es un código como máximo de 20 Caracteres a través del cual se
puede acceder a una tarea (Programa).
Se ingresa en la Línea de comandos.
¿Qué es una transacción SAP?CSTI Consultoría en Tecnologías de Información
Línea de Comandos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Si trabaja usted con varias sesiones, puede:
- Ejecutar diferentes transacciones en paralelo.
- Abrir una sesión desde cualquier pantalla y siempre que lo
desee.
Manejo de SesionesCSTI Consultoría en Tecnologías de Información
Modo 2
Modo 1
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Permite el manejo de:
- Administración de Modos (Sesiones)
- Manejo de Transacciones
Línea de ComandosCSTI Consultoría en Tecnologías de Información
Línea de Comandos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Disposición LocalCSTI Consultoría en Tecnologías de Información
Estas configuraciones son a nivel de usuario
Si esta marcado muestra solo códigoAv. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Menú SistemaCSTI Consultoría en Tecnologías de Información
- Funciones SAP que afectan a la sesión en su totalidad.
- Componentes:
- Crear/Borrar Modo. - Jobs Propios.
- Valores Prefijados - Mensajes Breves
- Servicios - Status
- Utilidades - Salir del Sistema
- Lista
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Valores PrefijadosCSTI Consultoría en Tecnologías de Información
- Información de usuario que afecta a la sesión en su totalidad.
- Componentes:
- Retener / Fijar / Borrar Datos.
- Valores Fijos Usuarios.
- Dirección de Usuario.
- Parámetros Usuarios.
- Actualizar Menú Usuario.
- Activar Menú Usuario.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Menú Sistema - ServiciosCSTI Consultoría en Tecnologías de Información
Permite llevar a cabo funciones como:
- Manejo de reportes
- Transferencia a PC de reportes
- SAP office
- Manejo de jobs
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Servicios de ImpresiónCSTI Consultoría en Tecnologías de Información
- Atributos del reporte
- Visualizar reporte
- Impresión de reporte
- Eliminación de reporte
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Menú Sistema – Trabajos (jobs)CSTI Consultoría en Tecnologías de Información
Desde el Sub-menú ‘Jobs’ se puede llevar a cabo básicamente dos
funciones:
- Definición de trabajos (job definition).
- Revisión de trabajos (job overview).
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Ejecución de trabajos en BackgroundCSTI Consultoría en Tecnologías de Información
- No son de ejecución interactiva.
- Integrado en el Sistema SAP.
- Pueden ser procesados en paralelo con operaciones en línea
- Procesamiento distribuido
Pasos de un proceso en backgroundCSTI Consultoría en Tecnologías de Información
Planificación
del proceso
Ejecución del
proceso
Revisión del
proceso
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Planificando Procesos en backgroundCSTI Consultoría en Tecnologías de Información
Definir función de tarea
Nombre de la tarea
Grabar
Pasos
Detalle impresión
Fecha inicio
Periocidad
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ABAP/4.6 Object NavigatorCSTI Consultoría en Tecnologías de Información
Transacción SE80
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ABAP/4.6 Object Navigator otrosCSTI Consultoría en Tecnologías de Información
Otros
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ABAP/4.6 Object Navigator DiccionarioCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ABAP/4.6 Object Navigator ProgramaCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Diccionario de Datos
Conceptos & Definiciones
CSTI Consultoría en Tecnologías de Información
¿Qué es un Diccionario de Datos?
Es la fuente central de información para un sistema
manejador de datos.
La función principal es la creación y administración de
las definiciones de datos.
Diccionario de DatosCSTI Consultoría en Tecnologías de Información
¿Cómo está
constituida la data?
¿Qué son
atributos?
¿Qué es la Data?
Una gran parte de la ayuda en línea es dada por el
Abap/4 dictionary, la cual ayuda a reducir la
redundancia de documentación.
Uso del ABAP/4.6 Dictionary InformationCSTI Consultoría en Tecnologías de Información
ABAP/4
Dictionary
Visualizar todos los objetos de tipo X con atributo Y
Visualizar todos los objetos de tipo X que son usados por el objeto Y
Visualizar todas las relaciones existente para la tabla X
Visualizar todos los objetos de tipo X que fueron modificados por User, Date..
Search by attribute Where-used lists
Information on relationships between tables Modification analysis
Para acceder al Diccionario ABAP debemos ingresar
mediante la transacción SE11 desde la ventana de
comandos
ABAP/4.6 DictionaryCSTI Consultoría en Tecnologías de Información
Componentes Básicos del ABAP/4.6 Dictionary
CSTI Consultoría en Tecnologías de Información
Table A Table B Table C
Data element 1 Data element 2
Domain
Tables
Data
Elements
Dominios
¿Qué es un Dominio?
Un Dominio describe los atributos técnicos de un
campo, tales como el tipo de datos o la cantidad de
posiciones del campo. Un dominio define
principalmente un ámbito de valores que describe los
valores de datos válidos para los campos que hacen
referencia al dominio.
CSTI Consultoría en Tecnologías de Información
Creación de un DominioCSTI Consultoría en Tecnologías de Información
Descripción del Dominio
Tipo de Dato
Longitud de Campo
Longitud Máxima de I/O
Grabando un DominioCSTI Consultoría en Tecnologías de Información
Clase de Desarrollo
¿Qué es un Elemento de Datos?
El elemento de datos (dominio semántico)
es aquel que describe el rol de un dominio dentro
del contexto técnico de un campo.
La información semántica incluye la descripción
del campo así como los títulos de columna.
CSTI Consultoría en Tecnologías de Información
Creación de un Elemento de DatosCSTI Consultoría en Tecnologías de Información
Creación de un Elemento de DatosCSTI Consultoría en Tecnologías de Información
Mediante un ID Parámetro se puede llenar un campo con valores de propuesta de la memoria SAP.
Descripción
Etiquetas
Id Parametro
Creación de un Elemento de DatosCSTI Consultoría en Tecnologías de Información
Definición de Etiquetas
Con esta opción podremos traducir los textos a otro idioma
Grabando un Elemento de DatosCSTI Consultoría en Tecnologías de Información
Clase de Desarrollo
¿Qué es una Estructura (Tipos Estructurados)?
Los tipos estructurados describen la estructura y los
atributos funcionales de cualquier objeto de datos
estructurado, es decir, de estructuras de datos con
componentes de cualquier tipo.
Un componente puede ser un campo con un tipo elemental
o también puede ser, a su vez, una estructura. Una tabla
también se puede usar como componente de una
estructura.
Una tabla de base de datos posee una estructura por lo
tanto es implícitamente un tipo estructurado. No obstante,
sus componentes sólo pueden poseer un tipo elemental.
CSTI Consultoría en Tecnologías de Información
Creación de una EstructuraCSTI Consultoría en Tecnologías de Información
Creación de una EstructuraCSTI Consultoría en Tecnologías de Información
Grabando una EstructuraCSTI Consultoría en Tecnologías de Información
¿Qué es una Tabla?
Es una agrupación de campos; constituida en base a
otros objetos; como elementos de datos y dominios.
Componentes:
- Campos de tablas: Nombres de campo y los tipos de datos de los campos contenidos en la tabla.
- Clave externa o Foránea: 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
CSTI Consultoría en Tecnologías de Información
Creación de una TablaCSTI Consultoría en Tecnologías de Información
CSTI Consultoría en Tecnologías de InformaciónCreación de una Tabla
Grabando una TablaCSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Grabando una TablaCSTI Consultoría en Tecnologías de Información
Tipos de Datos Moneda/CantidadCSTI Consultoría en Tecnologías de Información
Los tipos de datos Moneda y/o Cantidad merecen un
tratamiento especial por tanto es necesario indicar la tabla y
campo referencia en la pestaña Campos Moneda/Cantidad; de
los contrario no podremos activar nuestra tabla.
ÍndicesCSTI Consultoría en Tecnologías de Información
- Un índice es una estructura de datos que permite recuperar las
filas de una tabla de forma más rápida además de proporcionar
una ordenación distinta a la natural de la tabla.
- Un índice se define sobre una columna o sobre un grupo de
columnas, y las filas se ordenarán según los valores contenidos
en esas columnas.
- Al ser el índice una estructura de datos adicional a la tabla,
ocupa un poco más de espacio en disco.
- Cuando se añaden, modifican o se borran filas de la tabla, el
sistema debe actualizar los índices afectados por esos cambios lo
que supone un tiempo de proceso mayor.
- Por estas razones no es aconsejable definir índices de forma
indiscriminada.
Creando un índiceCSTI Consultoría en Tecnologías de Información
Utilidad para Tablas de Base de DatosCSTI Consultoría en Tecnologías de Información
Estructuras AppendCSTI Consultoría en Tecnologías de Información
Generador de Mantenimiento de TablaCSTI Consultoría en Tecnologías de Información
Generador de Mantenimiento de TablaCSTI Consultoría en Tecnologías de Información
Mantenimiento StandardCSTI Consultoría en Tecnologías de Información
¿Qué es una Vista?
Es una agrupación de campos de diferentes tablas
conectados por algún foreign key en común.
Una vista es una tabla virtual.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Creación de una VistaCSTI Consultoría en Tecnologías de Información
Tipo de Vista
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Creación de una VistaCSTI Consultoría en Tecnologías de Información
Relaciones
Descripción de la vista
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónCreación de una Vista
Componentes
¿Qué es una Ayuda para Búsqueda?
Es un objeto del diccionario que nos va a permitir obtener
ayudas para entradas de datos.
Existen 2 tipos de ayuda:
Elemental: Realizan una trayectoria de búsqueda para
determinar las entradas posibles.
Compuesta: Constan de varias Ayudas para búsqueda elemental,
es decir, ponen a disposición varias trayectorias de búsqueda
alternativas para las entradas posibles.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónAyudas de Búsqueda
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Creando una Ayuda para BúsquedaCSTI Consultoría en Tecnologías de Información
Tipo de
búsqueda
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Creando una Ayuda para BúsquedaCSTI Consultoría en Tecnologías de Información
Descripción de la
búsqueda
Tabla o Vista Origen
Componentes
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Al pulsarnos llevará a esta pantalla donde podremos visualizar como será la salida de nuestra ayuda de búsqueda al dar ENTER.
CSTI Consultoría en Tecnologías de Información
1
Ejecutando una Ayuda para Búsqueda
Utilización
Asignando una ayuda de búsqueda
Al pulsar F4
2
¿Qué es un Objeto de Bloqueo?
Un 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.
La solicitud y/o liberación de los bloqueos se realiza en la
programación de las transacciones de diálogo mediante la
llamada de determinados módulos de funciones que se generan
automáticamente de la definición de los objetos de bloqueo.
Estos objetos deben crearse explícitamente en el Diccionario.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Creando un Objeto de BloqueoCSTI Consultoría en Tecnologías de Información
Descripción del
Obj. Bloqueo
Tabla
Modo de
Bloqueo
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Parámetros de bloqueo
Clase de desarrollo
Creando un Objeto de Bloqueo
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Para visualizar o
modificar registros
existentes
Para adicionar
nuevos registros
Al pulsar
nos mostrará la
siguiente pantalla.
SE16
Mantenimiento de Tablas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Mantenimiento de TablasCSTI Consultoría en Tecnologías de Información
Podemos configurar mediante el siguiente menú para obtener:- Un listado solo con los campos definidos por el usuario.- Definir secuencia de los campos en el reporte.- Definir los campos y los criterios de selección.- Definir mostrar campos técnicos o denominaciones.- Definir otras opciones específicas del usuario.
SE16
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Base de Datos Lógica SE36CSTI Consultoría en Tecnologías de Información
- Una base de datos lógica puede acceder a datos almacenados en una o varias tablas físicas del sistema.
- La Lectura en una Base de Datos Lógica es de arriba hacia abajo, según su estructura.
- Una Base de Datos Lógica puede accesar a varias bases de datos físicas.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Visualizando una Base de Datos LógicaCSTI Consultoría en Tecnologías de Información
Modos:
- Bajo la transacción SE36.
- Bajo la transacción SE80.
- Bajo el comando editor SHOW DATABASE
<dbs>
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Usando una Base de Datos LógicaCSTI Consultoría en Tecnologías de Información
Para trabajar con una base de datos lógica es necesario definir en el programa la BD con la que se trabajará
Para accesar debemos usar el comando:GET [Nombre del Nodo].
También podemos usar:GET [Nombre del Nodo] LATE.Este comando es procesado solo luego de que se hayan leído y procesado los nodos subordinados.
Base de datos PNP
Laboratorio 1: Diccionario de Datos
Laboratorio Diccionario de DatosCSTI Consultoría en Tecnologías de Información
1. Crear los dominio, elementos de datos y tablas necesarios para implementar el siguiente DER.
Laboratorio Diccionario de Datos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
2. Crear ayudas de búsqueda para producto, punto de venta, cliente y empleado
3. Crear Vista de actualización para producto, punto de venta, cliente y empleado.
ABAP/4
Introducción
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El editor de programas se activa la digitar la transacción SE38 desde la
línea de comandos.
En programa pondremos el nombre del objeto que deseamos crear,
modificar o visualizar
ABAP/4 EDITOR SE38
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Operaciones en el Editor
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Renombrar
Copiar
Eliminar
Chequeo
Activar
Ejecutar
Where-Used-list
Análisis de Entorno
Nos va a indicar la referencia de utilización de un objeto.
Where Used List
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Si se trata de un programa
Si se trata de una tabla
Verificar sintaxis (CTRL + F2 ó ).- Nos va a permitir visualizar solamente
los errores de sintaxis del código de un programa.
Verificación ampliada (SLIN).- Verificación de sintaxis + performance.
Verificar Sintaxis vs. Verificación Ampliada
Una verificación completa como:
• Consistencia de campos
• Consistencias de dynpros
• Utilización de sentencias
• Salidas de campos
• Mensajes
• Autorizaciones
• Llamadas a programas externos.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Modos de Editor
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Crear un Programa
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Titulo
Tipo
Estado
Aplicación
Grupo de Autorización
Clase de Desarrollo
La clase de desarrollo describe el área funcional a la que pertenece el objeto.
Esto permite agrupar los objetos de acuerdo a un área temática.
Al crear un objeto nuevo del Workbench ABAP, aparece una ventana de
entrada en la que deberá asignar al objeto una de las clases de desarrollo ya
existentes.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
12
Clase de Desarrollo
Un programa u otro objeto del repositorio deben tener siempre asociados
una clase de desarrollo.
Se puede modificar la clase de desarrollo la Transacción SE80.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Orden de Transporte
Las órdenes o tareas sirven para gestionar objetos de Repository R/3 o de
Customizing dentro de un Sistema R/3 o para transportarlos 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 Repository y su transporte a otros Sistemas R/3.
- Ordenes de modificaciones locales.- Grabación de las modificaciones en
objetos de Repository dentro de un Sistema R/3.
- Orden Customizing.- Grabación de las modificaciones en parametrizaciones
Customizing y su posible transporte a otros Sistemas R/3 o a otros
mandantes.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Orden de Transporte
Para administrar las ordenes de Transporte podemos acceder a la transacción SE10.
Al pulsar nos permitirá crear una orden de transporte
Al pulsar ordenes propias nos permitirá seleccionar una de las órdenes definidas anteriormente
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Editando un Programa
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Código del programa
Elementos de Texto de un programa
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Elementos de Texto
Símbolos de texto:
Nos va a permitir asociar algún texto a un Id y utilizarlo a lo largo de
nuestro programa. Son útiles porque nos permiten traducir al idioma
deseado.
Textos de selección:
Están referidos de manera específica a los parámetros de selección del
programa.
Cabeceras de Listas:
Es útil cuando hagamos listados por impresora o por pantalla.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Traduciendo Elementos de Texto
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Versiones de Programas
La gestión de versiones permite
tener un control de los cambios
que ha tenido un programa a lo
largo de su desarrollo.
Nos va a permitir poder comparar
el código así como también
recuperar una versión antigua.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Versiones
Versiones de Programas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Permitirá la comparación de 2 versiones seleccionadas.
Permitirá la visualización de la versión seleccionada.
Permitirá recuperar la versión antigua seleccionada.
Versiones de Programas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Permitirá la visualización del texto de la orden de transporte
Permitirá comparar el programa en 2 sistemas distintos
Se específica el sistema con el cual se hará la comparación
Subiendo y Bajando el código de
un programa a PC
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Subir a PC
Bajar a PC
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
ABAP/4
Programación Básica
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
¿Qué es ABAP / 4?
(Advanced Business Aplication Programming 4th Generation)
El ABAP/4 es un lenguaje de programación de 4ta generación (4GL)
orientado tal como su definición específica, al desarrollo de
aplicaciones de negocios. Todos los módulos disponibles en SAP han
sido programados en este lenguaje de programación.
Además podemos escribir nuevas aplicaciones en ABAP/4 como
complemento a las ya existentes o como apoyo a la configuración del
sistema.
Es un lenguaje estructurado orientado a eventos; es decir la secuencia
de las instrucciones depende del cumplimiento de una condición o
evento.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Características del ABAP/4
PROGRAMA SECUENCIA DE EVENTOS
SI EVENTO 1Instrucción 1Instrucción 2………Instrucción n
SI EVENTO 2Instrucción 1Instrucción 2………Instrucción n
SI EVENTO 3Instrucción 1Instrucción 2………Instrucción n
Inicio
EVENTO 2
EVENTO 3
EVENTO 1
Fin
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Aplicaciones del ABAP/4
- Reporting: Clásico o Interactivo.
- Programación de diálogo o transacciones (diseño de superficies CUA
y diseño de pantallas).
- Otras aplicaciones: Interfases Batch Input, Formularios Sap Script,
programas de comunicaciones, etc.)
Una vez instalado SAP, la principal aplicación ABAP es la generación de
informes ya sea porque no han sido contemplados por SAP o porque
en la instalación se requiera un informe con formato muy concreto.
Así pues ABAP/4 tendrá muchas instrucciones destinadas a facilitarnos
la tarea de programar reportes.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Fundamentos de la programación
Tipos de Instrucciones
Un programa consiste en una serie de instrucciones ABAP que empieza con
una palabra clave y termina con un punto.
Tipos de palabras claves:
- Declarativas; para declarar los datos que se usarán a lo largo de todo el
programa. Ejemplo: Tables, Data, Ranges.
- Eventos; especifica un evento, es el punto donde ABAP ejecuta un cierto
proceso. Ejemplo: Start-of-selection.
- Control; sentencias de control de flujo de programa. Ejemplo: If, While, Do.
- Operativas; Realizan funciones propias según el tipo de palabra clave.
Ejemplo: Write, Move, Assign.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Estructurando un programa
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando y Procesando Datos
Tipos Long. Por
defecto
Posible
Longitud
Valor Inicial Descripción
C 1 1-32000 ESPACIOS Texto
F 8 8 0.0E+00 Punto flotante
I 4 4 0 Entero
N 1 1-32000 ´0000´ Texto Numérico
P 8 1-16 0 Número
Empaquetado
X 1 1-29870 x ´0´ Hexadecimal
D 8 8 00000000 Fecha YYYYMMDD
T 6 6 000000 Hora HHMMSS
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando y Procesando Datos
Declaración de CamposSe declaran campos del reporte con la sentencia DATA.
Si no se indica un tipo de dato, el sistema asume que es de tipo carácter
(texto) y de longitud 1.
Con la cláusula TYPE podemos definir otros tipos de datos.
Ejemplo: data: fecha type d
Con la cláusula LIKE podemos declarar una variable con los mismos atributos
de longitud y tipo que una variable preexistente.
Ejemplo: data: w_lifnr like lfa1lifnr
Con la cláusula VALUE se puede inicializar una variable con un valor distinto
al que tiene por defecto.
Ejemplo: data: w_contador type p value 1
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando Parámetros de Entrada
* Declarando Parámetros con Parameters:
Parameters:
par1(3) type n,
par 2 like tabla-campo,
par3 as ckeckbox default `X´,
par4 radiobutton group <n> default `X´,
par5 radiobutton group <n>.
Ejemplo:
Parameters: bldat_pa type d,
bukrs_pa like t001-bukrs,
print_pa check default `X´,
werk_pa radiobutton group RG default `X´,
Igort_pa radiobutton group RG.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando Parámetros de Entrada
* Declarando Parámetros con SELECT-OPTIONS:
SELECT-OPTIONS:
sel FOR f.
donde;
sel representa el nombre del campo
f representa la tabla-campo.
Ejemplo:
select-options:
s_gjahr for bsik-gjahr,
s_monat for bsik-monat,
s_blart for bsik-blart.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Usando Selection-Screen
Variantes:
SELECTION-SCREEN BEGIN OF BLOCK block.SELECTION-SCREEN BEGIN OF TABBED BLOCK block FOR n LINESSELECTION-SCREEN END OF BLOCK block.
SELECTION-SCREEN TAB (len) tabname USER-COMMAND ucom.
SELECTION-SCREEN BEGIN OF LINESELECTION-SCREEN END OF LINE
SELECTION-SCREEN POSITION pos.SELECTION-SCREEN ULINESELECTION-SCREEN COMMENT fmt nameSELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom.SELECTION-SCREEN SKIP n.SELECTION-SCREEN FUNCTION KEY.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Ejemplo de Selection-Screen
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando Variables,
Field Symbols y Range
* Declarando Variables * Declarando Fields Symbols
data: var1 type n, Fields-symbols:var2 like tabla-campo, <field1>,var3 type n value ´XXX´. <field2>.
Ejemplo: Ejemplo:
data: fecha like sy-datum, Fields-symbols: <monto>,company like t001-bukrs, <suma>.edad(2) type n,precio(7) type p decimals 2. Ranges:
R_RANGO for tabla-campo.
Ejemplo:
Ranges:R_BUKRS for T001-BUKRS
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Eventos
* Los Eventos pueden ser de 2 tipos:
- Asíncronos.- Pueden pasar en cualquier momento.- Síncronos.- Pasa con periocidad.
Tenemos los siguientes eventos:
INITIALIZATION.-En este evento se inicializarían todas las variables de los programas.
START-OF-SELECTION.-Se ejecuta cuando se procesa la instrucción REPORT. En ese momento se empieza a ejecutar el código que se encuentra entre REPORT y START-OF-SELECTION.Inmediatamente después se ejecuta el código contenido dentro de ese evento.
END-OF-SELECTION.-El código asociado a este evento se procesa cuando se termina la selección de datos de tablas o de base de datos lógicas.
TOP-OF-PAGE.-Se procesa antes de que el primer dato salga en cada página. Se suele usar para poner el título a las páginas o cabeceras.
END-OF-PAGE.-Se lanza cuando se crea automáticamente una nueva página. Esto ocurrirá cuando el nro de líneas procesado sobrepase el nro de lineas fijado para la página en la sentencia REPORT.No se ejecuta si se fuerza mediante NEW-PAGE
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
EVENTO TOP-OF-PAGE
Report z0006 no standard page heading .
write / ‘line 1’.write / ‘line 2’.write / ‘line 3’.
Top-of-page.write: / ‘heading’,
Uline.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencias de Control
IFCASE
ENDIFENDCASE
DOWHILELOOP
ENDOENDWHILEENDLOOP
CHECKEXITSTOP
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia IF
IF <expresión lógica>.
ENDIF.IF <expresión lógica>.
ELSE.
ENDIF.IF <expresión lógica>.
ELSEIF <expresión lógica>.
ELSEIF <expresión lógica>.
ELSE.ENDIF.
sentencia
sentencia
sentencia
sentencia
sentencia
sentencia
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
CASE <variable> CASE COUNTRY.
WHEN <valor1>. WHEN ‘D’.
…WHEN <valor2>. WHEN ‘USA’.
…WHEN <valor3>. WHEN ‘GB’.
…WHEN OTHERS. WHEN OTHERS.
…
ENDCASE. ENDCASE.
Sentencia CASE
sentencia
sentencia
sentencia
sentencia
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
DO <n> TIMES.
ENDDO.
Variable de sistema, índice actual.
Sentencia DO
sentencia
SY-INDEX
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
WHILE <expresión lógica>.
ENDWHILE.
Variable de sistema, índice actual.
WHILE CONTADOR > 0....
SUBTRACT 1 FROM CONTADOR.
ENDWHILE.
Sentencia WHILE
sentencias
SY-INDEX
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
CHECK <expresión lógica>.
1.- CHECK dentro de una estructura de repetición
WHILE CONTADOR GT 0.
CHECK FLAG NE SPACE.
ENDWHILE.
2.- CHECK fuera de una estructura de repetición
CHECK <condición>
Sentencia CHECK
sentencias
sentencia
sentencia
sentencia
sentencia
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
EXIT
1.- EXIT dentro de una estructura de repetición
DO.IF CONTADOR GE 100.EXIT.ENDIF.
ENDDO.
2.- EXIT fuera de una estructura de repetición
IF ….EXIT.
ENDIF.
Sentencia EXIT
sentencia
sentencia
sentencia
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Operadores Relacionales
Sintaxis Significado
EQ = Igual a
NE <> >< Distinto de
GT > Mayor que
GE >= => Mayor o igual que
LT < Menor que
LE <= =< Menor o igual que
BETWEEN f1 AND f2 Intervalo
IS INITIAL Valor inicial
DATA: START TYPE D,SUM1 TYPE F,SUM2 TYPE P.
IF START IS INITIAL.…ENDIF.IF SUM1 GT SUM2.…ENDIF.IF SUM1 BETWEEN 50 AND 100.…ENDIF.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Expresiones Lógicas
CONTADOR GE 0
CONTADOR GT 0 AND
FLAG IS INITIAL
(FLAG1 NE SPACE OR FLAG2
NE SPACE) AND CONTADOR
BETWEEN 0 AND 100
CONTADOR EQ 0 AND NOT
(FLAG EQ SPACE AND FLAG2
EQ SPACE)
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Operaciones de Comparación
entre Cadenas de Caracteres
<f1> CO <f2> contiene sólo: f1 contiene sólo caracteres de f2
ACCOUNT CO ‘0123456789’
<f1> CA <f2> contiene cualquier: f1 contiene por lo menos un
caracter de f2
<f1> CS <f2> contiene cadenas de caracteres: f1 contiene la
cadena de caracteres f2
‘ABCDE’ CS ‘DE’
<f1> CP <f2> contiene patrón: f1 corresponde al modelo f2
Modelo:
* cualquier cadena de caracteres
+ cualquier carácter
‘ABXDE’ CP ‘*B+D*’
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia Select
La sentencia SELECT consiste en una serie de cláusulas donde especifican diferentes tareas:
Cláusulas mas usadas:
SELECTNombre de la sentencia
SINGLESelecciona el primer registro que cumpla con la condición, si esta cláusula es usada no es necesario colocar ENDSELECT.
*Si se desea seleccionar todos los campos.
FROM (tabla externa)Nombre de la tabla externa a utilizar.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia Select
INTO VARIABLESSi no desea seleccionar todos los campos se puede derivar a variables, en vez de poner la cláusula * pondría los campos y luego del into las variables que van a recibir la información.
INTO CORRESPONDING FIELDS OF ESTRUCTURADeriva la información sólo a los campos con nombres iguales en la estructura.
INTO <CORRESPONDING FIELDS OF> TABLE TABLADeriva la información a una tabla interna. No es necesario colocar ENDSELECT.
WHERE/BETWEENAmbas son cláusulas de criterio de selección pero el between nos permite seleccionar el rango de un campo.
[WHERE <condiciones>][Campo Between variable de rango 1 AND variable de rango 2]
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia Select
[GROUP BY fields]Agrupa aquellos registros que tienen el mismo criterio de selección en una sola línea.
[ORDER BY order [ASCENDING] [DESCENDING]]Muestra el resultado ordenado en forma ascendente o descendente por el campo seleccionado o por la combinación de los dos si se desea ordenar por más de un campo
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Ejemplos Select
SELECT BUDAT BLDAT INTO CORRESPONDING FILEDS OF T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND
BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.
APPEND T_BKPFENDSELECT.
SELECT * INTO TABLE T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND
BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND
BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.
SELECT * APPENDING TABLE T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND
BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sintaxis WRITE
WRITE <formato> <valor> <opciones>
<formato> /p(l)
donde / salto de líneap posición de columnal longitud de salida
<valor> campo o constante
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sintaxis WRITE
<opciones>
NO-ZERO ROUND rNO-SIGN UNIT uNO GROUPING TIME ZONE tzDD/MM/YY EXPONENT eMM/DD/YY USING EDIT MASK maskDD/MM/YYYY USING NO EDIT MASKMM/DD/YYYY UNDER gDDMMYY NO-GAPMMDDYY LEFT-JUSTIFIEDYYMMDD CENTEREDCURRENCY w RIGHT-JUSTIFIEDDECIMALS d
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando Tablas Internas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Declarando Tipos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
SENTENCIA TYPES
Ejemplo:
TYPES:tipo1 TYPE p DECIMALS 2,
tipo2(250) TYPE c,
BEGIN OF ty_tipo,campo1 TYPE tipo1,campo2 TYPE tipo2,
END OF ty_tipo.
Declarando Fields Symbols
FIELD-SYMBOLS: <XXXXX>ASSIGN (VARIABLE) TO <XXXXX>
Ejemplo:
FIELD-SYMBOLS: <POS>.DATA: W_VAR(4) TYPE C,
W_VAR2(5) TYPE C,W_TEXTO(10) TYPE C.
W_VAR = ‘YO’.W_VAR2 =‘TU’.W_TEXTO =‘W_VAR2’.
ASSIGN (W_TEXTO) TO <POS>.WRITE:/ <POS>.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencias más usadas
MOVE-CORRESPONDING: Mueve los datos de una estructura a otra, sólo de los campos con nombres iguales.
Table: TABNE.
DATA: BEGIN OF DATOS, . ….., END OF DATOS
ID NOMBRE1 CIUDAD
0001 JUAN LIMA
MOVE-CORRESPONDING TABNE TO DATOS.
FLAG ID NOMBRE CIUDAD
0001 LIMA
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Iniciando Variables y Tablas Internas
CLEAR <tab>. Inicializa todos los campos de la línea de cabecera de acuerdo a sus tipos.
REFRESH <tab>.Borra todas las líneas de la tabla. El espacio de almacenamiento de la tabla no es liberado.
FREE <tab>. Borra todas las líneas de la tabla. El espacio de almacenamiento de la tabla es liberado.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
ABAP/4
Transferencia de Datos
desde/hacia SAP
CSTI Consultoría en Tecnologías de Información
1.- Transferencia de Información.
SAP proporciona diferentes métodos para poder
transferir información de SAP a la PC/Servidor y
viceversa.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
2.- Funciones de Transferencia de Datos entre
PC/Servidor.
a) Download.
Es un procedimiento que nos permite enviar
información de las tablas SAP a otro sistema o PC a
través de una función llamada GUI_DOWNLOAD.
b) Upload.
Es un procedimiento que nos permite subir
información al sistema SAP utilizando la función
GUI_UPLOAD
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
a) Download (Función GUI_DOWNLOAD).
Call function ‘GUI_DOWNLOAD’
exporting
filename = filename
filetype = ‘ASC’
tables
data_tab = Table
exceptions
file_open_error = 01
file_write_error = 02
invalid_filesize = 03
invalid_table_width= 04
invalid_type = 05
no_batch = 06
unknown_error = 07.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
b) Upload (Función GUI_UPLOAD).
Call function ‘GUI_UPLOAD’
exporting
codepage = ‘IBM’
filename = filename
filetype = ‘ASC’
importing
filelength = nflength
tables
data_tab = Table
exceptions
file_open_error = 1
file_read_error = 2
invalid_type = 3
unknown_error = 4.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
3.- Transferencia de datos al servidor
Para descargar archivos en servidores nativos UNIX.
OPEN DATASET FPROC FOR INPUT IN TEXT MODE .
DO.
READ DATASET FPROC INTO ASIENTO.
IF SY-SUBRC EQ 0.
APPEND ASIENTO.
CLEAR ASIENTO.
ELSE.
EXIT.
ENDIF
ENDDO.
CLOSE DATASET FPROC.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Para eliminar archivos en servidores nativos UNIX.
OPEN DATASET FPROC FOR INPUT IN TEXT MODE .
DELETE DATASET FPROC.
CLOSE DATASET FPROC.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
4.- Tipos:
a. Cargas Directas: Comandos SQL:
a) Insert.
b) Update.
b. Otras cargas: a) Transacciones.
b) Batch Input Session.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
CARGAS DIRECTAS
INSERT
Inserta nuevas líneas a una base de datos.
Variantes:
1.- INSERT INTO dbtab [CLIENT SPECIFIED] VALUES wa.
2.- INSERT dbtab [CLIENT SPECIFIED].
3.- INSERT dbtab [CLIENT SPECIFIED] FROM TABLE itab
[ACCEPTING DUPLICATES KEYS].
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Ejemplos de Insert:
TABLES SCUSTOM.
SCUSTOM-MANDT = ‘999’
SCUSTOM-ID = ‘12400177’.
SCUSTOM-NAME = ‘James Bond’
SCUSTOM-POSTCODE = ‘69542’
SCUSTOM-CITY = ‘Lima’
SCUSTOM-CUSTTYPE = ‘P’
SCUSTOM-DISCOUNT = ‘007’
SCUSTOM-TELEPHONE = ‘999-2222’
INSERT INTO SCUSTOM CLIENT SPECIFIED VALUES SCUSTOM.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
UPDATE
Actualiza Valores en una base de datos.
Variantes:
1.- UPDATE dbtab [CLIENT SPECIFIED] SET s1 … sn.
2.- UPDATE dbtab [CLIENT SPECIFIED].
3.- UPDATE dbtab [CLIENT SPECIFIED] FROM TABLE
itab.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Ejemplos de UPDATE:
TABLES SCUSTOM.
UPDATE SCUSTOM CLIENT SPECIFIED
SET TELEPHONE= ‘999-3333’
WHERE MANDT= ‘999’
AND SCUSTOM-ID = ‘12400177’
UPDATE SCUSTOM SET DISCOUNT = ‘007’
Nota: No se deben realizar las actualizaciones directas en las tablas
estándares de SAP
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
OTRAS CARGAS
¿Qué es un Batch Input?
Es una técnica de programación de carga de datos SAP.
El Batch Input se utiliza generalmente para transferir
datos de Sistemas diferentes a SAP o para transferir
datos entre sistemas SAP.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Flujo de Carga de Datos
Carga Clientes a tabla
CUSTOMER
Loop tabla CUSTOMER
Mover datos a
tabla CUSTOMER a
estructura
BDCDATA
CALL TRANSACTION ‘XD02’ USING BDCDATA
Fin del
loop
Transacción XD02 (Mant. Clientes)
Pantalla 101
Pantalla 110
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Screen Transaction.CALL TRANSACTION [TCODE]
Donde TCODE es el código de transacción.
Opciones:
1. …AND SKIP FIRST SCREEN.- No se visualiza la pantalla inicial de la transacción.
2. …USING itab.- Donde itab es la tabla interna.
2a. …MODE mode.- Indica los modos con los que se puede trabajar.
‘A’ Visualiza las pantallas
‘E’ Solo se visualiza en caso de error
‘N’ No se visualiza
2b. …UPDATE f.- Indica la forma de actualización.
‘A’ Asíncrona
‘B’ Síncrona
2c. …MESSAGES INTO itab.- Indica que los mensajes de retorno se almacenarán en la
tabla interna itab.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Screen Transaction.
call transaction ‘XD02’ using bdcdata
mode modo
update ‘S’
if sy-subrc <> 0.
message id sy-msgid
type sy-msgty
number sy-msgno
with sy-msgv1
sy-msgv2
sy-msgv3
sy-msgv4
into texto.
Write: / texto, str-kunnr.
Endif.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Ejemplo:DATA BEGIN OF BDCDATA OCCURS 100.
INCLUDE STRUCTURE BDCDATA.DATA END OF BDCDATA.DATA BEGIN OF MESSTAB OCCURS 10.
INCLUDE STRUCTURE BDCMSGCOLL.DATA END OF MESSTAB.DATA REPORT(8).
BDCDATA-PROGRAM = ‘SAPMS38M’ .BDCDATA-DYNPRO = ‘0100’ .BDCDATA-DYNBEGIN = ‘X’ .APPEND-BDCDATA.CLEAR BDCDATA.BDCDATA-FNAM = ‘RS38M-PROGRAMM’BDCDATA-FVAL = REPORT.APPEND BDCDATA.…CALL TRANSACTION ‘SE38’ USING MODE ´N´
MESSAGES INTO MESSTAB.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
BDC Session.
BDC (Batch Data Communication)
El BDC es una combinación de programación ABAP/4 y la
utilización de transacciones SAP.
Esta simula ingreso de datos por pantalla igual que
cualquier usuario lo realizaría.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
• Funcionalidad
Análisis
Manejo
Ejecución
• El contenido de la sesión.
• Los datos del Batch Input.
• El archivo Log.
• Eliminar sesiones selectivamente.
• Cambios en la sesión
• Mostrar toda la carga.
• Mostrar sólo los erróneos.
• No mostrar datos de carga
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Funciones BDC.
Función Descripción
BDC_OPEN_GROUP Abre cola para guardar la data del
Batch Input
BDC_INSERT Transfiere data al batch Input
BDC_CLOSE_GROUP Cierra la cola después de guardar
el Batch Input
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Flujo de Carga tipo BDCCarga Clientes a tabla
CUSTOMER
Loop tabla CUSTOMER
Mover datos a tabla CUSTOMER a estructura
BDCDATA
Call Function BDC_INSERT
Exporting
TCODE = ‘XD02’
Tables
DYNPROTAB = BDCDATA
Fin del
loop
Call Function
BDC_OPEN_GROUP
Call Function BDC_CLOSE_GROUP
Transferencia de Datos
Transacción XD02 (Mant. Clientes)
Pantalla 101
Pantalla 110
CSTI Consultoría en Tecnologías de Información
Liberar una sesión Batch Input Creada.
SUBMIT [REPORT]
Donde REPORT es el nombre de un programa.
Este comando permite la llamada a un reporte desde un programa.
submit rsbdcsub
With mappe = sesiname “Session name
With von = sy-datum “Creation Date (From)
With bis = ‘ ‘ “Creation Date (To)
With z_verarb = ‘X’ “Session to be processed
With fehler = ‘ ‘ “Incorrect Sessions
With batchsys = ‘ ‘ “Background System Target Host
With logall = ‘ ‘ “Extended Log
And return.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Consideraciones.
- Identificar las pantallas y los campos a los cuales se le asignarán valores.
- Identificar el nombre de la transacción, nombre de la pantalla y el nombre
de los campos.
- Identificar el método de Batch Input a utilizar.
- Usar la transacción SHDB para obtener la secuencia de pantallas que se
emplearán en el Batch Input.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Batch Input Session
-Transfiere datos a multiples transacciones.
- Actualiza sincrónicamente las Bases de Datos.
- Genera un log.
- Las sesiones no pueden ser generadas en paralelo.
¿Qué método usar?
Call Transaction
-Transfiere datos a una sola transacción.
- Actualiza sincrónicamente o asincrónicamente la B.D.
- No genera un log.
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Transacción SM35
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Transferencia de Datos
Analizar la Sesión
Ejecuta la Sesión
Visualizar Estadísticas
Visualizar y Analizar Log
Grabación
CSTI Consultoría en Tecnologías de Información
Transferencia de DatosCSTI Consultoría en Tecnologías de Información
Transferencia de Datos
Transacción ejecutada
Estado del proceso
CSTI Consultoría en Tecnologías de Información
Transferencia de Datos
Visualizar el Log
Visualizar la pantalla de ingreso con valores
CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
ABAP/4Tablas Internas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Nueva Declaración de Tablas Internas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
DATA t_tabla_interna TYPE [ STANDARD / SORTED / HASHED ] TABLEOF [ tipo simple / tipo estructurado ][ WITH HEADER LINE ]WITH [ DEFAULT / UNIQUE / NON-UNIQUE ] KEY
[ campo_clave1campo_clave2… ]
* DEFINICION DE TABLAS
TABLES: TABNA
* DEFINICION DE TABLAS INTERNAS
DATA: BEGIN OF TAB ACCURS 5,
COUNTRY LIKE TABNA-COUNTRY,
ID LIKE TABNA-ID,
SALES LIKE TABNA-SALES.
DATA: END OF TAB.
*INICIO DEL PROGRAMA
START-OF-SELECTION.
SELECT * FROM TABNA.
MOVE-CORRESPONDING TABNA TO TAB
APPEND TAB.
END SELECT.
Sentencia APPEND
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia COLLECT
COLLECT <tab>
TABLES: TABNA.
DATA: BEGIN OF TAB OCCURS 10,COUNTRY LIKE TABNA-COUNTRY,SALES LIKE TABNA-SALES,
END OF TAB.
SELECT * FROM TABNA.MOVE-CORRESPONDING TABNA TO
TAB.COLLECT TAB.
ENDSELECT.
COUNTRY SALES
D 500 000
USA 1 000 000
GB 2 000 000
D 700 000
Línea Cabecera
1200 000
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia Usadas en
Tablas Internas
SORT TAB.SORT TAB BY COUNTRY NAME1.SORT TAB BY COUNTRY ASCENDING
NAME1 DESCENDING.
LOOP AT TAB. LOOP AT TAB WHERE COUNTRY.…. BETWEEN ‘A’ AND ‘D’.END LOOP. ….
END LOOP.
PARAMETERS : INICIO LIKE SY-TABIX DEFAULT ‘10’,FIN LIKE SY-TABIX DEFAULT ‘20’.
LOOP AT TAB FROM INICIO TO FIN.….END LOOP
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia Usadas en
Tablas Internas
READ TABLE <tab>.READ TABLE <tab> WITH KEY <campo> = <var>…READ TABLE <tab> INDEX <i>.
INSERT <tab> INDEX <i>.MODIFY <tab> INDEX <i>.DELETE <tab> INDEX <i>.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Quiebres en Tablas Internas
LOOP AT TAB.
AT NEW <campo>.….
ENDAT.
AT END OF <campo>.….
ENDAT.
AT FIRST.….
ENDAT.
AT LAST.….
ENDAT.
AT fg.….
ENDAT.
ENDLOOP.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
ABAP/4Anexos
CSTI Consultoría en Tecnologías de Información
MODIFY
Format:
MODIFY table.
Ejemplo:
process before output.
Loop at t cursor c.
Endloop.
Process after input.
Lopp at t.
Field t-field1,
modify t index c.
Endloop.
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
EXPORT
Format:
EXPORT obj1 … TO MEMORY
Adiciones:
1.- …TO g (por cada campo f a ser exportado)
2.- …ID key
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
IMPORT
Format:
IMPORT obj1 … FROM MEMORY
Adiciones:
1.- …TO g (por cada campo f a ser importado)
2.- …ID key
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
LEAVE
Variantes:
1.- LEAVE PROGRAM.
2.- LEAVE TO TRANSACTION tcod.
3.- LEAVE TO SCREEN scr.
4.- LEAVE SCREEN.
5.- LEAVE TO LIST-PROCESSING.
6.- LEAVE LIST-PROCESSING.
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
SUBMIT
Format
SUBMIT <rep>
Adiciones:
1.- … LINE-SIZE col
2.- … LINE-COUNT lin
3.- … VIA SELECTION-SCREEN
4.- … AND RETURN
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
SET
Variantes:
1.- SET PF-STATUS pfstat.
2.- SET TITLEBAR f.
3.- SET SCREEN scr.
4.- SET CURSOR …
5.- SET LANGUAGE lg.
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
GET CURSOR
Variantes:
1.- GET CURSOR FIELD f.
2.- GET CURSOR LINE lin.
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
EXIT
Variantes:
1.- EXIT.
2.- EXIT FROM STEP-LOOP.
Anexos (comandos)CSTI Consultoría en Tecnologías de Información
Laboratorio 2: Lenguaje ABAP
Laboratorio Lenguaje AbapCSTI Consultoría en Tecnologías de Información
1. Crear Programa para actualizar stock y precio en tabla de productos. Ingresar 3 campos : Código de producto y nuevo stock y precio ,
Validar que el producto exista y el nuevo stock y precio no sean negativos. Mostrar datos de producto modificado y stock y precio antiguo y nuevos.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Laboratorio Lenguaje AbapCSTI Consultoría en Tecnologías de Información
2. Cargar por batch input un archivo plano con los datos de empleados
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Laboratorio Lenguaje AbapCSTI Consultoría en Tecnologías de Información
3. Crear un programa que cargue desde/descargue hacia archivo plano la tabla de facturas (con inserción directa).
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Listas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia REPORT
REPORT es la sentencia inicial de un programa de listas, pero tiene adiciones que le permiten modificar el formato del listado generado.
REPORT[NO STANDARD PAGE HEADING] [LINE-SIZE width] [LINE-COUNT page_lines[(footer_lines)]]
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Eventos
TOP-OF-PAGE.Evento que se ejecuta al inicio de una página. Usado para crear cabeceras de página.
END-OF-PAGE.Evento que se ejecuta al finalizar una página si es que se ha hecho una reserva de espacio para pie de página en la declaración del reporte.
Ejemplo:
REPORT zreporte LINE-COUNT 28(4).
TOP-OF-PAGE.* Se ejecuta antes de la primera sentencia WRITE de cada página
END-OF-PAGE.* Se ejecuta antes de una sentencia WRITE que vaya a crear una nueva página.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Sentencia WRITE
WRITE permite escribir datos en un listado.
WRITE <formato> <valor> <opciones>
<formato> /p(l)
donde / salto de líneap posición de columnal longitud de salida
<valor> campo o constante
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las opciones de WRITE afectan el formato de datos antes de ser mostrados.
<opciones>
NO-ZERO ROUND rNO-SIGN UNIT uNO GROUPING TIME ZONE tzDD/MM/YY EXPONENT eMM/DD/YY USING EDIT MASK maskDD/MM/YYYY USING NO EDIT MASKMM/DD/YYYY UNDER gDDMMYY NO-GAPMMDDYY LEFT-JUSTIFIEDYYMMDD CENTEREDCURRENCY w RIGHT-JUSTIFIEDDECIMALS d
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información Sentencia WRITE
Sentencia FORMAT
FORMAT permite modificar el formato externo de la salida de un dato.
FORMAT [COLOR {{{color [ON]}|OFF}|{= col}}] [INTENSIFIED [{ON|OFF}|{= flag}]] [INVERSE [{ON|OFF}|{= flag}]] [HOTSPOT [{ON|OFF}|{= flag}]] [INPUT [{ON|OFF}|{= flag}]] [FRAMES [{ON|OFF}|{= flag}]] [RESET].
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Otras sentencias
SKIP n .Permite dejar “n” líneas en blanco al escribir una lista. Si n es 1 puede ser obviado.
ULINE.Permite dibujar una línea horizontal.Utilizando la adición AT puede establecerse un inicio y longitud para la línea.
NEW-PAGE.Permite cambiar de página.
POSITION pos.Posiciona al cursor en la posición “pos” de la línea actual.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Quiebres en Tablas Internas
LOOP AT TAB.
AT NEW <campo>.….
ENDAT.
AT END OF <campo>.….
ENDAT.
AT FIRST.….
ENDAT.
AT LAST.….
ENDAT.
AT fg.….
ENDAT.
ENDLOOP.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Laboratorio 3: Listas
Laboratorio ListasCSTI Consultoría en Tecnologías de Información
1. Crear listado de productos agrupándolos por laboratorio y ordenados por nombre y fecha de vencimiento
En la pantalla de selección colocar los siguientes filtros:
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Mostrar un reporte similar al siguiente. Utilice los eventos adecuados para generar la cabecera del reporte.
Laboratorio Listas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
2. Crear un listado de clientes, para cada cliente mostrar sus facturas y para cada factura mostrar los productos, en un esquema escalonado.
En la pantalla de selección colocar los siguientes parámetros:
Laboratorio Listas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Ordenar el reporte de la siguiente manera.
Laboratorio Listas
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Reportes
Interactivos
Conceptos & Comandos
CSTI Consultoría en Tecnologías de Información
Son una forma de combinar las instrucciones de formato de
listados, los eventos y pantallas de selección, la unión de estas tres
cosas nos permite por ejemplo, que un usuario introduzca un dato
(a través de la pantalla de selección) seguidamente controlar si
pulsó una tecla (a través de los eventos) y por último dependiendo
de que tecla se pulso visualizar un tipo de listado u otro a través de
las órdenes de formateo de listado.
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
Reportes Interactivos
Visualización General
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
Listados
Secundarios
Ejecutar una
transacción
Windows
Ejecutar un reporte
Reportes
Interactivos
EventosReport DEMO.
START-OF-SELECTION.
END-OF-SELECTION
TOP-OF-PAGE
* Interactive Reporting
AT Pfnn.
AT LINE-SELECTION.
AT USER-COMMAND
TOP-OF-PAGE DURING LINE-SELECTION.
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
sentencia
sentencia
sentencia
sentencia
sentencia
sentencia
sentencia
Cabecera de Página
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
Listado
Básico
Listado
Secundario
Text
element
Choose
REPORT DEMO.TOP-OF-PAGE DURING LINE SELECTION.
TOP-OF-PAGE
Listas Secundarias & SY-LSIND
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
Listado Básico
Escoger
1. Listado
secundario
Escoger
2. Listado
secundario
Escoger
3. Listado
secundario
SY-LSIND:0
SY-LSIND:1
SY-LSIND:2
Uso de HIDE: Seleccionar Data
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
Cod. Area Nombre
01 A1 Luis Flores
01 A2 Rosa Figueroa
01 A2 Juan Flores
…
HIDE AREA
“ZTREMP-COD “ 01
“ZTREMP-AREA “ A1
“ZTREMP-COD “ 01
“ZTREMP-AREA “ A2
“ZTREMP-COD “ 02
“ZTREMP-AREA “ A2
Uso de HIDE: Seleccionar Data II
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
Cod. Area Nombre
01 A1 Luis Flores
01 A2 Rosa Figueroa
01 A2 Juan Flores
…
HIDE AREA
“ZTREMP-COD “ 01
“ZTREMP-AREA “ A1
“ZTREMP-COD “ 01
“ZTREMP-AREA “ A2
“ZTREMP-COD “ 02
“ZTREMP-AREA “ A201 A1 Luis Flores
01 A1ZTREMP-COD
ZTREMP-AREA
Validación de la Línea de Selección
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
HIDE AREA
“ZTREMP-COD “ 01
“ZTREMP-AREA “ A1
“ZTREMP-COD “ 01
“ZTREMP-AREA “ A2
“ZTREMP-COD “ 02
“ZTREMP-AREA “ A2
Campos del Sistema (SY)
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
SY-LSIND = 0
SY-LSIND = 1
SY-LSIND = 2
SY-STARO
SY-STACO
SY-CPAGE
SY-CUCOL
SY-CUROW
Ejemplo Nro. 1
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
1
2
3
Ejemplo Nro. 2
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
1
2
Ejemplo Nro. 3
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
1
2
3
SUMARIO
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
-Se puede usar reportes interactivos para poder proveer al usuario estructuras de información adicionales y claras en una lista secundaria o ventanas.
- Para generar listas secundarias o ventanas, varios eventos especiales están disponibles que pueden ser ejecutados activando la tecla de función o vía clic del mouse.
- Además de la lista primaria, pueden haber adicionalmente veinte listas secundarias. El campo del sistema SY-LSIND contiene el índice de la lista ha ser generada por el reporte.
SUMARIO II
Reportes InteractivosCSTI Consultoría en Tecnologías de Información
- Para guardar data para las listas secundarias, se usa el comando HIDE. El sistema guarda el nombre del campo y su contenido por línea. Cuando un evento interactivo es ejecutado, el valor guardado en el área HIDE es regresado al campo original.
- Cabeceras de páginas para listas secundarias son definidas en el evento TOP-OF-PAGE DURING LINE-SELECTION.
Laboratorio 4: Reportes Interactivos
Laboratorio Reportes InteractivosCSTI Consultoría en Tecnologías de Información
1. Extender el reporte de Facturación por Cliente (Laboratorio 3, ejercicio 2). - Cuando se de doble click en el código o nombre del cliente, debe abrirse un nuevo listado
mostrando los datos completos del mismo. - Cuando se de doble click en el producto, se debe mostrar los datos completos del producto.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Menu Painter
Conceptos & Usos
CSTI Consultoría en Tecnologías de Información
- Es una herramienta del Workbench que nos permite crear
una interface gráfica para el usuario (GUI).
- La interface gráfica permite la visualización de los códigos de
función; esto significa hacer programas de fácil uso.
Menu PainterCSTI Consultoría en Tecnologías de Información
¿Qué es el Menu Painter?
Accediendo al Menu Painter
Menu PainterCSTI Consultoría en Tecnologías de Información
Mediante la transacción SE41
Creando un Status
Menu PainterCSTI Consultoría en Tecnologías de Información
Tipos de Status
Status Diálogo.- Una imagen de pantalla para el diálogo entre usuario y programa. Los dynpros de diálogo tienen campos de entrada y salida.
Ventana Diálogo.- Este tipo crea un status para una ventana de diálogo 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 ventanas de diálogo.
Menú Contextual.- Contiene solo teclas de función.
Interface de un Status
Menu PainterCSTI Consultoría en Tecnologías de Información
Barra de Titulo
Barra de Pulsadores
Barra de Menú
Barra de Herramientas
GUI Title
GUI Status
GUI Status
Adicionando la barra de menú
Menu PainterCSTI Consultoría en Tecnologías de Información
Asignamos las siguientes funciones
Al dar doble click
Adicionando la barra de pulsadores
Menu PainterCSTI Consultoría en Tecnologías de Información
Al dar doble click
1
2
3
4
Adicionando la barra de herramientas
Menu PainterCSTI Consultoría en Tecnologías de Información
Activando un Status
Menu PainterCSTI Consultoría en Tecnologías de Información
Para activar un status:
•Pulsar CTRL + F3
•Pulsar
•Desde el menú
Nota:
Debemos activar el status siempre que hayamos realizado una modificación.
Llamando a un Status
Menu PainterCSTI Consultoría en Tecnologías de Información
Para acceder a un status desde nuestro programa debemos tener lasiguiente sentencia:
SET PF-STATUS ‘NOMBRE’.
Objetos de Interface de Usuario
Menu PainterCSTI Consultoría en Tecnologías de Información
Permite mostrar todos los objetos de interface de usuario que posee el programa actual.
Listas de Status
Menu PainterCSTI Consultoría en Tecnologías de Información
Permite mostrar todos los GUI Status que posee el programa actual.
Barra de Menú
Menu PainterCSTI Consultoría en Tecnologías de Información
Permite mostrar todos las barras de menú ordenadas por status
Lista de Menú
Menu PainterCSTI Consultoría en Tecnologías de Información
Permite mostrar la lista de todos los menús creados para el programa
Definiciones de Teclas de Función
Menu PainterCSTI Consultoría en Tecnologías de Información
Permite mostrar la lista de todas las teclas de función
Definiciones de Teclas de Función
Menu PainterCSTI Consultoría en Tecnologías de Información
Permite mostrar la lista de todas los códigos de función
Lista de Títulos
Menu PainterCSTI Consultoría en Tecnologías de Información
Creación
Visualización y Modificación
Llamando a un Título
Menu PainterCSTI Consultoría en Tecnologías de Información
Para acceder a un Título desde nuestro programa debemos tener la siguiente sentencia:
SET TITLEBAR ‘TITULO’.
Titulo
Otras Operaciones
Menu PainterCSTI Consultoría en Tecnologías de Información
Elimina todos los componentes de la interfase de usuario.
Elimina el status previamente indicado.
Copia de un programa a otro todos los componentes de la interfase de usuario.
Copia de un programa a otro un status.
Renombra la interfase de usuario.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Screen Painter
Conceptos & Usos
CSTI Consultoría en Tecnologías de Información
¿Qué es el Screen Painter?
Screen PainterCSTI Consultoría en Tecnologías de Información
- Screen Painter es una herramienta del ABAP Workbench
que permite crear Dynpros (Dynamic Program) para sus
transacciones y/o programas.
- Una Dynpro es la combinación de un screen asociado a un
flujo lógico.
Accediendo al Screen Painter
Screen PainterCSTI Consultoría en Tecnologías de Información
Aquí ingresamos el nombre del programa y el número de la dynpro que deseamos crear.
Mediante la transacción SE51
Componentes
Componentes
Screen PainterCSTI Consultoría en Tecnologías de Información
• Lógica del Proceso .- Controla el flujo del programa (Código de la dynpro).
• Lista de Elementos .- Elementos del screen. Definidos en el ABAP/4 Dictionary o en el programa.
• Atributos .- Describe al objeto dynpro. Incluye al programa al que pertenece y el tipo de Screen.
• Editor Disposición .- Contiene un conjunto de elementos. Los elementos son partes del screen con los que interactúa el usuario. Incluye por ejemplo los checkboxes, cajas de texto, etiquetas, etc.
Creando una Dynpro
Screen PainterCSTI Consultoría en Tecnologías de Información
Definiendo los atributos
Lista de Atributos
Screen PainterCSTI Consultoría en Tecnologías de Información
• Program• Screen Number• Descripción• Idioma• Ultima Modificación• Ultima Generación• Tipos Dynpro• Opciones:
• Retener Datos• Desactivar Comprob. Tmpo. ej.• Modelo: No ejec.• Mant. Pos. desplaz.
• Dynpros Siguiente.• Posición Cursor• Grupo Dynpros• Líneas / Columnas usadas• Líneas / Columnas actuales• Menú de contexto
Modos de EditorEntorno Gráfico del Editor
Screen PainterCSTI Consultoría en Tecnologías de Información
Área de trabajo
Elementos
Entorno Texto del Editor
Screen PainterCSTI Consultoría en Tecnologías de Información
Área de trabajo
Elementos
Elementos del Screen (Gráfico)
Screen PainterCSTI Consultoría en Tecnologías de Información
Texto
Checkbox
Pushbutton
BoxSubscreen
Status
Campo entrada/salida
Radiobutton
Tabstrip
Table Control
Custom Control
Crear Elementos
Screen PainterCSTI Consultoría en Tecnologías de Información
Atributos del Elemento
Screen PainterCSTI Consultoría en Tecnologías de Información
Características
Funciones
Atributos
Lista de Elementos (Gráfico)
Screen PainterCSTI Consultoría en Tecnologías de Información
Definición de LOOP
Screen PainterCSTI Consultoría en Tecnologías de Información
Ejemplo de LOOP
Screen PainterCSTI Consultoría en Tecnologías de Información
Editor de Disposición
Lógica del Proceso
Ejemplo de LOOP
Screen PainterCSTI Consultoría en Tecnologías de Información
Table Control (Gráfico)
Screen PainterCSTI Consultoría en Tecnologías de Información
Table Control
Texto
Table Control - Atributos
Screen PainterCSTI Consultoría en Tecnologías de Información
C/cabcol .- Si está marcado; se asigna una línea de cabecera de columnas al table control, con lo que cada columna (excepto las columnas para marcar líneas) podrá tener una cabecera. Configurable .- Si está marcado, el atributo ‘ Posibilidad de configurar’influye en la posibilidad de almacenar las modificaciones realizadas por el usuario en la secuencia y el ancho de las columnas.C/Título .- El atributo determina, si el table control puede llevar un título o no en la línea superior.Resizing.- Este atributo controla el comportamiento del elemento de dynpro cuando se modifica manualmente la altura/anchura de ventana.Líneas Separación .- Este atributo sirve para modificar el aspecto de la tabla. Cuando está activado, se visualizan líneas de separación verticalesy/o horizontales.Marcar Línea .- El atributo permite marcar líneas, controla el número de líneas de una tabla que pueden marcarse al mismo tiempo.Marcar Columna .- El atributo permite marcar columnas, controla el número de columnas de una tabla que pueden marcarse al mismo tiempo.C.Marc. Col .- Este atributo crea una columna adicional con pulsadores delante del primer campo de la tabla.Col. Fijas.- Este atributo influye en la posibilidad de desplazar columnas mediante el ratón y al pasar páginas horizontalmente.
Ejemplo de Table Control
Screen PainterCSTI Consultoría en Tecnologías de Información
Editor de Disposición
Lógica del Proceso
Screen PainterCSTI Consultoría en Tecnologías de Información
Ejemplo de Table Control
¿Qué es Tabstrib Control?
Screen PainterCSTI Consultoría en Tecnologías de Información
Un control Tabstrip es un objeto screen que consiste de dos o más páginas.
Cada página de la lengüeta tiene un título y un área de página. Si el área ocupada por el control Tabstrip es demasiado estrecha no se exhibirán todos los título de la lengüeta, entonces aparecerá un srollbar.
Los controles de 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
Screen PainterCSTI Consultoría en Tecnologías de Información
• 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 u horizontal cuando el usuario vuelva a clasificar según el tamaño de la ventana.
• Todas las páginas de la lengüeta residen localmente en el SAPgui.
• Cuando el usuario está trabajando en una página de la lengüeta, los cheques de la entrada pueden saltar a un campo obligatorio sin llenar en otra página.
• Cuando el usuario elije una página de la lengüeta, se acciona el acontecimiento del PAI, y usted debe incluir un módulo en su lógica del flujo que active la página.
Al crear un Tabstrip Control
Screen PainterCSTI Consultoría en Tecnologías de Información
• Definir el área de la lengüeta en una screen y los títulos de la lengüeta.• Asigne al subscreen área a cada cada título de la lengüeta.• Programe la lógica del flujo de la pantalla.• Programe la lógica de proceso de ABAP.
Texto o lengüeta del Tabstrip
Área del Tabstrip
Pantalla del Tabstrip
+
+
Pantalla de un Tabstrip Control
Screen PainterCSTI Consultoría en Tecnologías de Información
Ejemplo de Tabstrip Control
Screen PainterCSTI Consultoría en Tecnologías de Información
Flow Logic
Screen PainterCSTI Consultoría en Tecnologías de Información
• Inicializar variables• Inserta valores por defecto• Posicionamiento del cursor• Mostrar y Ocultar campos• Modificar dinámicamente los atributos de un campo• Definición Títulos• Definición de Barra de Menú y Botones• Carga de datos
PBO DISPLAY PAYINPUT ACTION
• Mostrar datos procesados• Mostrar Dynpro
• Validar Información• Procesar Función seleccionada• Llamadas a nuevos Dynpro• Manejar errores
Flow Logic
Screen PainterCSTI Consultoría en Tecnologías de Información
Doble click en el nombre del módulo nos muestra la siguiente ventana.
Al confirmar, deberemos seleccionar el programa o include para crear el módulo.
Flow Logic Command
Screen PainterCSTI Consultoría en Tecnologías de Información
Formato:
PROCESS
Variantes:
1. PROCESS BEFORE OUTPUT2. PROCESS AFTER INPUT3. PROCESS ON HELPREQUEST4. PROCESS ON VALUE-REQUEST
PROCESS
Screen PainterCSTI Consultoría en Tecnologías de Información
Process Before Output (PBO)Es automáticamente ejecutado antes de que el screen sea visualizado.
Process After Input (PAI)Es ejecutado cuando el usuario elige una tecla de función o ingresa algún dato en la pantalla.
Process On Help-Request (POH)Es ejecutado cuando el usuario pulsa F1 sobre un campo definido en el screen.
Process On Value-Request (POV)Es ejecutado cuando el usuario pulsa F4 sobre un campo definido en el screen.
PROCESS
Screen PainterCSTI Consultoría en Tecnologías de Información
PROCESS
Keyword Function
MODULE Llama a un módulo en un programa Abap/4
FIELD Determina los campos que se verán involucrados en el módulo del programa
ON Usado en conjunción con FIELD
VALUES Usado en conjunción con FIELD
Screen PainterCSTI Consultoría en Tecnologías de Información
Formato:
MODULE <module>
Variantes:
1. …ON INPUT (In PAI with field assigment)2. …ON CHAIN-INPUT (In PAI with field assigment)3. …ON REQUEST ((In PAI with field assigment)4. …ON CHAIN-REQUEST (In PAI with field assigment)5. …ON-INPUT (In PAI with field assigment)6. …AT CURSOR-SELECTION (In PAI with field assigment)7. …AT EXIT-COMMAND (In PAI).
MODULE
Screen PainterCSTI Consultoría en Tecnologías de Información
MODULE
Screen PainterCSTI Consultoría en Tecnologías de Información
Formato:
CALL SCREEN <scr>
Variantes:
…STARTING AT x1 y1 …ENDING AT x2 y2
CALL SCREEN
Screen PainterCSTI Consultoría en Tecnologías de Información
Formato:
CALL SUBSCREEN <area> INCLUDING <program><scr>
Variantes:
CALL CUSTOMER-SUBSCREEN <area> INCLUDING ‘SAPLX’…’<scr>
CALL SUBSCREEN
Screen PainterCSTI Consultoría en Tecnologías de Información
CALL SUBSCREEN
Screen PainterCSTI Consultoría en Tecnologías de Información
Formato:
CHAIN.field: <d0300-f01>, <d0300-f02>, <d0300-f03>.…
ENDCHAIN.
Ejemplo:
chain.field:d0300-plate, d0300-name1, d0300-license.module d0300_check_plate on chain-request.
endchain.
CHAIN
Screen PainterCSTI Consultoría en Tecnologías de Información
Formato:
LOOP.…
ENDLOOP.
Variantes:1. LOOP2. LOOP AT itab CURSOR f3. LOOP AT table.
Adiciones:…WITH CONTROL f
LOOP
Ejemplo:
Process before output.Loop at itab cursor c.Endloop.
Process after input.Loop at itab.module line_in on request.Endloop.
Laboratorio 5: Dynpros
DynprosCSTI Consultoría en Tecnologías de Información
1. Crear una dynpro que permita realizar una venta.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
� El usuario debe poder seleccionar entre emitir una boleta o una factura.
� El usuario ingresará la moneda y los códigos de punto de venta, empleado y cliente, el programa deberá utilizar las tablas maestras para leer las descripciones de estos campos y completarlas. Adicionalmente completará el RUC del cliente si es que se ha seleccionado Factura.
� Para agregar un producto el usuario deberá ingresar un código de producto y una cantidad y presionar el botón de agregar fila. El programa deberá verificar que el código exista y que la cantidad no sea cero y sea como máximo el stock disponible del producto. El producto se agregará a la tabla y los datos restantes deberán ser completados utilizando los datos maestros y las siguientes consideraciones:
Precio Base = Precio Unitario X CantidadDescuento = Precio Base X %DescuentoIGV = (Precio Base – Descuento) X %IGVPrecio Línea = (Precio Base – Descuento) + IGV
� Para borrar una fila de la tabla se deberá seleccionar la fila a borrar y presionar el botón de borrar fila. El programa debe verificar que hay una fila seleccionada y si no existiera deberámostrar el mensaje “Seleccione una fila”.
� Al crear el documento el programa deberá autogenerar el número interno y seleccionar el número SUNAT adecuado al tipo de documento.
Dynpros
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónDynpros
Luego de crear el documento de ventas el programa deberá mostrar una dynpro indicando el MODAL con el código SUNAT, el código interno, la fecha y hora de creación del documento generado.
Al confirmar este diálogo debe terminar el programa.
Dynpros
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
2. Crear una dynpro que se muestre antes de la dynpro de ventas, donde el usuario pueda seleccionar el empleado y punto de venta que desea utilizar para el resto de su sesión.
� El programa debe completar las descripciones leyendo la tabla de datos maestros.� La dynpro de ventas debe modificarse para que simplemente “herede” los datos de esta
ventana y ya no sean editables.� Si el usuario cancela, el programa de ventas termina.� Si el usuario acepta, el programa continua en la pantalla de ventas.� La pantalla de ventas debe cambiar para que luego de mostrar la ventana de confirmación de
resultado ya no debe terminar sino limpiar todos los campos (salvo el punto de venta y empleado que son heredados de esta) y prepararse para una nueva venta.
Funciones
CSTI Consultoría en Tecnologías de Información
Las funciones en SAP son tipos de programas capaces de recibir parámetros de entrada
y producir un resultado. Se diferencian de una función normal (no SAP), en que pueden
poseer una estructura bastante compleja y deben ser diseñados en su propio entorno
(SE37), fuera del programa que lo utilizará.
Existen dos tipos de módulos de funciones comúnes, las Standard y las RFC (Remote
Function Call – Llamada de Procedimiento Remoto), que sirven para la comunicación
entre sistemas externos y el sistema SAP.
Además se cuenta con las Bapi’s, que son funciones encapsuladas y orientadas
exclusivamente al negocio.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónFunciones
- Un grupo de funciones es un programa ABAP con tipo F (grupo de funciones), el cual es
un programa creado exclusivamente para contener módulos de funciones.
- Los módulos de funciones de similares características o funcionalidad se agrupan en
grupos de funciones.
- Cada grupo de función puede contener:
Data Objects que se pueden considerar o cambiar por todos los
módulos de función en el grupo. Estos objetos de datos
están activos mientras el grupo esté activo.
Subrutinas las cuales pueden llamarse desde cualquier módulo de
función en el grupo.
Screens las cuales pueden llamarse por cualquier módulo de
función del grupo.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónGrupo de Funciones
Grupo de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
SAP AG 1999
Function Group
Func
tion
mod
ule
FM3
Inte
rfac
eIn
terf
ace
Interface
Interface
Function module
FM2
Interface
Interface
Function m
odule
FM1
Function module
FM
5
InterfaceInterface
Function moduleFM4
InterfaceInterface
Import parameters
Export parameters
Changing parameters
Exceptions
Subroutine
Interface
Grupo de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los Grupos de Función se crean por la transacción S E37
Grupo de Funciones
- Los módulos de funciones son unidades modulares con interfaces que pueden ser
llamadas desde cualquier programa ABAP. La interface puede contener los siguientes
elementos:
Parámetros Import, son parámetros pasados al módulo de función.
Parámetros Export, son pasados desde el módulo de función al programa que realizó la
llamada.
Parámetros Changing, son pasados al módulo de función y pueden ser cambiados por
ella.
Parámetros Tables, son tablas que pueden ser pasada al módulo de función y pueden
ser cambiados por ella.
Parámetros Exceptions, son usados para interceptar errores. Si un error dispara una
excepción en un módulo de función, este se detiene. Estas excepciones pueden ser
manipuladas por el programa que realizó la llamada.
- Cada módulo de función puede contener objetos de datos locales y accesar a los
objetos de datos globales que pertenecen a su grupo de función.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónMódulo de Funciones
Módulo de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
SAP AG 1999
Function Module
sy-subrc
Function moduleFunction moduleAdministrationAdministration
Local data objectsLocal data objectsSource CodeSource Code
GlobalGlobaldata objectsdata objects
Function groupFunction group Subroutine
Interface
InterfaceInterface
Import parametersImport parameters Export parametersExport parameters Changing parametersChanging parameters ExceptionsExceptions
Módulo de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los Módulos de Función se crean por la transacción SE37
Módulo de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Visualización de un módulo de función existente.
Módulo de Funciones
Los tipos más comunes son los siguientes:
Módulos de Función Standard, son los módulos de función que pueden ser
llamados por cualquier programa ABAP dentro del mismo ambiente SAP.
Módulos de Función RFC (Remot Function Call), son módulos de función que
pueden ser llamados por cualquier programa ABAP, por sistemas externos o
entre sistemas SAP.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información Tipos de Módulos de Funciones
Módulo de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Módulo de Función Standard
Tipos de Módulos de Funciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Módulo de Función RFC
Tipos de Módulos de Funciones
BAPI’s
Business Application Programming Interface
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónFunciones
- Una BAPI es un módulo de función orientado al negocio con características de
RFC.
- Es un punto de la entrada al sistema R/3, es decir, un punto en el cual el
sistema R/3 proporciona el acceso a los datos y a los procesos de negocio.
- Normalmente las BAPI’s son utilizadas para realizar tareas específicas, como
por ejemplo, crear pedidos, realizar contabilizaciones, cargar y actualizar datos
maestros, etc.
- Son funciones muy estables, puesto que cuentan con muchos mecanismos de
control y aseguramiento de calidad. Además, encapsulan operaciones
complejas en una simple interfaz.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónBAPI
Business Application Programming Interface
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Usos de una BAPI
S A P A G 1999
B u s in es s W o rk flo w
R /3 sa te llite sy s tem s an dd is tr ib u ted s ce n a rio s(A L E )
In te rn e t / In tran e t
C u s to m e r an d p a rtn e rd e ve lo p m en t
V isu a l B as ic /J A V A ...
R /3 co m p o n e n tc o m p o s it io n
B
B u s inessC o m p on en t
B u s inessC o m p o n en t
B u s in essC o m p on en t
W h e re A re B A P Is U s e d ?
BAPI
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las BAPI’s se pueden explorar por la transacción BA PI
BAPI
Anexo de Funciones Útiles
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónFunciones
1.- Para descargar archivos en servidores remotos Windows o PCs.
1.1.- DOWNLOAD : Con diálogo de confirmación.
1.2.- WS_DOWNLOAD : Sin diálogo de confirmación.
1.3.- GUI_DOWNLOAD : Con diálogo de confirmación.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónFunciones
2.- Para cargar archivos en servidores remotos Windows o PCs.
3.1.- UPLOAD --> Con diálogo de confirmación.
3.2.- WS_UPLOAD --> Sin diálogo de confirmación.
3.3.- GUI_UPLOAD --> Con diálogo de confirmación.
3.- Para eliminar archivos en servidores remotos Windows
4.1.- WS_FILE_DELETE
4.- Para eliminar imágenes en documentadores IXOS
6.1.- ARCHIV_DELETE_META
5.- Para confirmar eventos
7.1.- POPUP_TO_CONFIRM.
6.- Para mandar a SAP a espera.
8.1.- ENQUE_SLEEP
7.- Para separar las rutas de archivos en disco, extensión, nombre, nombre con
extensión y ruta.
9.1.- PC_SPLIT_COMPLETE_FILENAME.
8.- Para pedir un archivo en servidores remotos Windows.
10.1.- FILENAME_GET. --> Con diálogo.
10.2.- WS_FILENAME_GET --> Sin diálogo.
CSTI Consultoría en Tecnologías de InformaciónFunciones
9.- Para obtener todos los atributos de una tabla.
11.1.- DDIF_TABL_GET --> Atributos.
11.2.- RPY_DOMAIN_READ --> Dominios.
11.3.- RPY_DATAELEMENT_READ --> Elementos de datos
10.- Para cargar una tabla en SAP.
12.1.- DDIF_TABL_PUT --> Tabla.
12.2.- RPY_DOMAIN_INSERT --> Dominios.
12.3.- RPY_DATAELEMENT_INSERT --> Elementos de datos.
12.4.- RS_DD_ACTIVATE --> Activar los dominios,
elementos de datos.
11.- Obtener los módulos de funciones e Includes que pertenecen a un grupo
de funciones.
13.1.- FUNCTION_INCLUDES_SPLIT.
CSTI Consultoría en Tecnologías de InformaciónFunciones
Laboratorio 6: Funciones
Laboratorio FuncionesCSTI Consultoría en Tecnologías de Información
1. Crear una función que retorne el precio unitario, porcentaje e importe de descuento, porcentaje e importe de IGV y precio total por producto consultado.
Parámetros de entrada:Cod_Producto
Tablas:Tabla de importesCampos: Precio_Unitario
%DsctoImporte_DsctoIGVImporte IGVPrecio_Total
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
SAP
SCRIPT
Layout Set
CSTI Consultoría en Tecnologías de Información
Accesos al Sap Script SE71
CSTI Consultoría en Tecnologías de Información
Componentes
CSTI Consultoría en Tecnologías de Información
1.- Header 1.- Cabecera
2.- Paragraphs 2.- Párrafos
3.- Character Strings 3.- Conjunto de Caracteres
4.- Windows 4.- Ventanas
5.- Pages 5.- Páginas
6.- Page Windows 6.- Ventanas de Páginas
Menú Principal
CSTI Consultoría en Tecnologías de Información
Header
CSTI Consultoría en Tecnologías de Información
Paragraphs
CSTI Consultoría en Tecnologías de Información
Paragraphs – Font
CSTI Consultoría en Tecnologías de Información
Paragraphs – Tabs
CSTI Consultoría en Tecnologías de Información
Paragraphs – Outline
CSTI Consultoría en Tecnologías de Información
Characters Strings
CSTI Consultoría en Tecnologías de Información
Characters Strings – Font
CSTI Consultoría en Tecnologías de Información
Windows
CSTI Consultoría en Tecnologías de Información
Page
CSTI Consultoría en Tecnologías de Información
Page Windows
CSTI Consultoría en Tecnologías de Información
Text Element
CSTI Consultoría en Tecnologías de Información
Tag Column
CSTI Consultoría en Tecnologías de Información
U1 Párrafo creado por el usuarioU2 Párrafo creado por el usuario* Párrafo usado por defecto
Texto fluido= Continuación de Línea( Línea bruta/ Avance de Línea/= Avance de Línea y Línea larga/( Avance de Línea y Línea Bruta/: Línea de comando/* Línea para comentario/E Elemento de texto
Comandos más Usados
CSTI Consultoría en Tecnologías de Información
- Perform .- Ejecuta una subrutina o subprograma en la rutina actual, también se le puede pasar parámetros.
- New-Page .- Inclusión de una nueva página en la edición del formulario.
- Box .- Crea cajas gráficas en las distintas páginas del formulario, estas pueden sobreponerse unas a otras.
- If.- Asigna condicionales en las diferentes sentencias que forman parte de la creación del formulario.
Comandos más Usados
CSTI Consultoría en Tecnologías de Información
- Set Date Mask .- Da formato a la fecha del sistema.
- Set Time Mask .- Da formato a la hora del sistema.
- Set Country .- Utilizado en la asignación del formato a utilizar en el formulario para lalocalidad.
- Define .- Utilizado para la asignación de valores establecidos en los diversos TextSymbols, estos text symbols deberán ir encerrados entre el símbolo &.
Símbolos del Sistema
CSTI Consultoría en Tecnologías de Información
- &DATE& .- Muestra en el reporte la fecha completa, incluyendo día, mes y año.
- &DAY&.- Muestra en el reporte el día en formato de dos dígitos, incluyendo ceros.
- &YEAR&.- Utilizando para mostrar en el reporte el año en formato de 4 dígitos.
- &NAME_OF_DAY&.- Sirve para mostrar el nombre del día actual del reporte.
Símbolos del Sistema
CSTI Consultoría en Tecnologías de Información
- NAME_OF_MONTH& .- Muestra el nombre del mes actual.
- &TIME& .- Muestra el tiempo actual en el reporte.
- &HOURS& .- Muestra la hora actual en el reporte.
- &SECONDS& .- Muestra el valor de los segundos en el tiempo actual.
- &PAGE& .- Muestra la numeración correspondiente a cada página del reporte.
Símbolos del Sistema
CSTI Consultoría en Tecnologías de Información
-&NEXTPAGE& .- Muestra el valor numérico de la próxima página a la actual.
- &DEVICE& .- Utilizado para asignar la salida del reporte, puede ser Printer, Screen, Telex, etc.
- &SPACE& .- Sirve para asignar un espacio en el reporte.
- &ULINE& .- Sirve para ingresar una línea de subrayado.
- &VLINES& .- Sirve para ingresar una línea vertical del tamaño del carácter empleado en la edición del reporte
Definición de Variables y Constantes
CSTI Consultoría en Tecnologías de Información
Variables:Las variables se definen mediante el uso del símbolo “&”, y se le asigna valores mediante el comando DEFINE.
Ejemplo: &variable&Se efectúa una diferencia del contenido de las variables:
&KNA1-ORT01&’-’&KNA1-ORT02&
Constantes:Las constantes pueden utilizarse en cualquier parte del reporte sin especificar algún formato necesariamente, no se puede incluir en una línea de comandos ‘/:’, se muestran como texto en el reporte.
Tabulación y Cadenas
CSTI Consultoría en Tecnologías de Información
Tabulación:La forma de hacer referencia a las tabulaciones ya preestablecidas en el Paragraph Tabs es mediante el uso de la doble coma ‘,,’.Se puede hacer referencia a una doble tabulación mediante ’,,,,’, y así sucesivamente.
Cadenas:La forma de hacer referencia a las cadenas ya creadas en el Character String es mediante el uso de los símbolos <XX> y </>, donde XX es el identificador de la cadena a seleccionar.Por ejemplo:
<D3>DATADEEXPIRACION:,,,,&ZLPRNLABE-prn_vfdat&</>
Rutinas básicas de Impresión
CSTI Consultoría en Tecnologías de Información
OPEN_FORM:
Inicio de formularioEjemplo:
Call function ‘OPEN_FORM’exporting
form = formoptions = options
exceptions
…
Rutinas básicas de Impresión
CSTI Consultoría en Tecnologías de Información
START_FORM:
Inicio de formularioEjemplo:
Call function ‘START_FORM’exporting
form = formlanguage = sy-langustartpage = page
importinglanguage = sy-langu
exceptionsform = 1.format = 2uneneded = 3unopened = 4unused = 5.
Rutinas básicas de Impresión
CSTI Consultoría en Tecnologías de Información
WRITE_FORM:
Salida de text element en la ventana del formulario.Ejemplo:
Call function ‘WRITE_FORM’exporting
element = elementwindow = windows
exceptionselement = 1function = 2type = 3unopened = 4unstarted = 5window = 6
Rutinas básicas de Impresión
CSTI Consultoría en Tecnologías de Información
CLOSE_FORM:
Fin de Formulario.
Ejemplo:
Call function ‘CLOSE_FORM’importing
result = itcppexceptions
unopened = 3.
Laboratorio 7: SAP Script
Laboratorio SAP ScriptCSTI Consultoría en Tecnologías de Información
1. Crear un formulario SAP Script para imprimir la factura utilizando el siguiente formato. Considere que las facturas se imprimen sobre hojas pre-impresas.
Smart Forms
CSTI Consultoría en Tecnologías de Información
¿Qué es Smart Forms?
Smart FormsCSTI Consultoría en Tecnologías de Información
Smart Forms es la nueva herramienta de SAP para diseño e impresión de documentos, cuyo propósito es suceder a SAP Script.
Smart Forms es una solución más simple, potente y versátil que SAP Script.
Los nuevos formularios para los documentos de SAP se desarrollan en Smart Forms.
SAP apunta a continuar con el desarrollo de esta herramienta.
Acceso a Smart Forms
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Se utiliza la transacción SMARTFORMS.
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Parametrizaciones Globales
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Atributos del formulario, contiene datos generales como el tamaño de la página y el estilo asociado al formulario.
Interfase formulario, definición de los parámetros de entrada, salida, tablas y excepciones del formulario. Todos los smartforms vienen con un grupo de parámetros predefinidos que no pueden ser cambiados.
Definiciones globales…
Definiciones Globales
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Definiciones Globales
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Datos globales, constantes, variables, estructuras y tablas visibles en todo el formulario.
Tipos, tipos globales del formulario.
Símbolos de campo, field symbols globales.
Inicialización, primera rutina que se ejecuta al llamar al formulario.
Rutinas form, subrutinas visibles en todo el formulario.
Campos Moneda/Cantidad, definición de campos de unidad de moneda/cantidad.
Páginas
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los smartforms se dividen en páginas las cuales permiten construir documentos complejos con diferentes secciones de diferente estructura o contenido, por ejemplo: carátula, índice, reportes, resumen.
Cada página tiene su propia estructura y se puede controlar la secuencia en la que se pasa de una página a la siguiente.
Propiedades de una Página
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las propiedades generales permiten controlar la secuencia y numeración de las páginas.
Propiedades de una Página (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las opciones de salida controlan la orientación y modo de impresión de la página.
Propiedades de una Página (3)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Controles en Smart Forms
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Smartforms cuenta con una gama de controles que permiten al formulario procesar datos, crear tablas, mostrar textos, imágenes y marcos, ejecutar instrucciones ABAP, ejecutar instrucciones de control y otras cosas.
Al visualizar un control, se muestran para este una serie de pestañas que contienen las propiedades definidas para el mismo.
Diferentes controles tienen diferentes grupos de propiedades, por ejemplo los controles de código ABAP tienen código fuente, mientras que los controles de texto tienen opciones de salida.
Propiedades de los Controles
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Existen diferentes grupos de propiedades y están asignados de manera diversa a los controles dependiendo de su funcionalidad. A continuación los más comunes.
Propiedades generales, contiene propiedades generales del control y difiere de acuerdo al tipo de control.
Opciones de salida, opciones para formatear un control que produce una salida en el formulario, como por ejemplo un campo de texto o un gráfico.
Condiciones, presente en casi todos los controles, permite establecer las condiciones bajo las cuales se procesa un determinado control.
Ventanas
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las ventanas son los controles básicos de un smartform.
Las ventanas son las que permiten organizar el contenido del formulario, crear áreas para insertar textos y objetos gráficos, crear marcos, etc.
Control Texto
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Es un control que permite imprimir texto en el formulario.
Control Texto (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los textos pueden contener textos estáticos y/o textos variables. Pueden mostrar el contenido de las diferentes estructuras de datos que tiene el formulario.
Los textos pueden ser formateados de maneras muy diversas e incluir formatos de párrafo y carácter, así como tabulaciones, dependiendo del estilo que tengan asignado.
Control Gráfico
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Permite incluir gráficos dentro del formulario.
Control Máscara de Edición
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Control Máscara de Edición (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
La máscara de edición permite crear una alineación particular para un grupo de otros controles, separándolos en filas y posiciones (las cuales no necesariamente deben forman una cuadrícula, pueden estar alineados de manera arbitraria).
Dentro de la máscara de edición pueden anidarse textos, gráficos, grupos de instrucciones y otros controles.
Control Table
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Control Table (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El control Table es uno de los más potentes y útiles de Smart Forms. Permite recorrer, procesar, formatear y mostrar los contenidos de una tabla interna de manera casi directa.
Tiene opciones para ordenamiento, agrupación y filtrado de los datos de la tabla, y permite definir uno o más formatos de línea para mostrar los datos de la manera en que se requiera.
Dentro del control Table se puede anidar casi cualquier otro tipo de control de smartforms y las definiciones de línea creadas para el control Table serán válidas para todos los controles anidados que generen algún tipo de salida.
Control Loop
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Control Loop (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El control Loop es similar al control Table, es un control que sirve para procesar los datos de una tabla interna, pero no está forzado a generar alguna salida. No incluye por eso dentro de sus propiedades la definición de tipos de linea.
Sin embargo es posible incluir dentro de un control Loop, otros controles que si generan salida en el formulario como máscaras de edición, textos y gráficos.
Control Líneas de Programa
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Control Líneas de Programa (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Son controles que permiten procesar datos de manera más específica. Estos controles son virtualmente subrutinas de ABAP y pueden ejecutar cualquier instrucción.
Desde estos controles es posible utilizar las estructuras de datos, tipos y subrutinas definidas en la sección de declaraciones globales del formulario.
Sin embargo cabe resaltar que para trabajar con los datos globales del formulario estos deben ser declarados previamente en los listados de parámetros de entrada y salida que aparecen en la parte superior de las propiedades generales.
Control Alternativa
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Control Alternativa (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El control alternativa permite evaluar un conjunto de condiciones. Si el resultado de estas condiciones es Verdadero, se ejecutan los controles que se incluyen bajo el nodo TRUE del control. En caso contrario se ejecutan los controles bajo el nodo FALSE.
Es importante notar que las condiciones de la pestaña Propiedades Generales determinan que nodo se ejecutará a continuación y no deben confundirse con las condiciones de la pestaña Condiciones, las cuales como habíamos visto regulan si el control Alternativa en su conjunto se ejecuta o no.
Control Comando
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Control Comando (2)
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El control Comando permite afectar el flujo de las páginas del formulario y enviar comandos determinados a la impresora y al spool para activar o desactivar características determinadas.
Llamar a un Smart Form
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Para invocar un smartform desde un programa ABAP se requiere utilizar la función SSF_FUNCTION_MODULE_NAME, enviando como parámetro el nombre del formulario.
Llamar a un Smart Form
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El resultado de la función anterior es el nombre de otra función, la cual es la que imprime el formulario requerido. Con el nombre obtenido debemos realizar una llamada dinámica enviando los parámetros que hemos definido en la interfaz del smartform.
Smart Styles
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Es el complemento de Smart Forms para definir los estilos de párrafo y carácter que se usarán en los formularios. Se accede tambien desde la transacción SMARTFORMS.
Componentes de un Estilo
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Formatos de Párrafo
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los formatos de párrafos permite definir la alineación, interlineado, sangría, tabuladores, fuentes y numeración de los párrafos.
Estos formatos se aplican dentro de los controles Texto de los formularios Smart Form.
Formatos de Caracter
Smart Forms
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los formatos de caracter definen la fuente y los efectos que se aplicarán a los caracteres dentro de los controles Texto de un formulario smartform.
Cuando se aplica un formato de caracter a un texto, dicho formato se superpone al del párrafo y lo reemplaza para todos los caracteres a los cuales se ha aplicado.
Laboratorio 8: Smartform
Laboratorio SmartformCSTI Consultoría en Tecnologías de Información
1. Crear un formulario Smartform para imprimir la factura utilizando el siguiente formato.
ABAP Objects
CSTI Consultoría en Tecnologías de Información
Programación Orientada a Objetos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
La programación orientada a objetos es un método de desarrollo de software basado en el comportamiento real de los objetos en el mundo real.
Se pretende desarrollar componentes de software que se comporten como los objetos reales a los que representan.
La orientación a objetos es una técnica usada en muchos lenguajes de programación los cuales comparten una terminología usada universalmente.
ABAP Objects
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
ABAP Objects es una extensión del lenguaje ABAP/4 que le permite implementar la POO.
ABAP Objects está construido en base a prácticas conocidas y de funcionamiento y efectividad comprobados, teniendo como principal antecesor al lenguaje Java.
Las instrucciones de ABAP Objects son perfectamente compatibles y completamente integrables con las de ABAP convencional y dentro de un programa ABAP común pueden convivir instrucciones de programación estructurada y POO sin inconvenientes.
Clase
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Una clase es la plantilla de un objeto. Es una descripción abstracta de un objeto.
Desde un punto de vista estrictamente técnico, una clase es un conjunto de código que contiene la definición de los componentes y el comportamiento de un objeto.
Las clases en ABAP pueden ser locales y globales.
Clases Locales y Globales
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las clases locales son definidas dentro del código de un programa ABAP y son visibles únicamente dentro de dicho programa.
Las clases globales son definidas desde la transacción SE24 y son visibles para todos los programas.
Salvo por su visibilidad y la manera en como se definen, tanto su implementación como su utilización son exactamente iguales.
Objetos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los objetos son instancias de las clases y están modelados por las mismas.
Desde un punto de vista técnico, son porciones de memoria que agrupan un conjunto de datos y un conjunto de servicios.
Creación de Clases Locales
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
La definición de una clase dentro de un programa comprende una parte declarativa donde se definen los componentes, y si es necesario una parte de implementación en la que se implementan estos componentes.
Componentes
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Las clases (y los objetos) tienen 2 tipos principales de componentes:
Atributos, son los datos contenidos dentro del objeto y cuya función es describir al objeto. El estado de un objeto, es el conjunto de valores de sus atributos en un momento determinado.
Métodos, definen el comportamiento de un objeto. Pueden acceder a los atributos del objeto y esto les permite modificar el estado del mismo.
Visibilidad de Componentes
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
La visibilidad de un componente define el grado de acceso que se tiene al mismo desde los programas. Existen 3 tipos de visibilidad:
Público, el componente es accesible tanto por los métodos del objeto como por el programa del cual forma parte el objeto.
Privado, el componente es accesible únicamente por los métodos del objeto.
Protegido, es un híbrido. Se comporta como privado para el programa que invoca al objeto y como público para las subclases del objeto.
Cardinalidad de Componentes
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
La cardinalidad de un componente define el número de veces que el componente existe en la memoria durante la ejecución de un programa. Existen 2 tipos de cardinalidad:
Componentes de Instancia, son componentes que existen una vez por cada instancia que exista de una clase, es decir, cada objeto tiene estos componentes independientemente.
Componentes Estáticos, existen UNA UNICA VEZ para todos las instancias de la clase, es decir, son componentes compartidos por todos los objetos instanciados de una misma clase.
Definición de Componentes
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Atributos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los atributos de una clase pueden tener cualquier tipo:
� Campos individuales de tipo ABAP predefinido (i, f, p, d, etc.) o de un tipo DD (matnr, char1, dec13_3).� Campos estructurados de tipo DD o definidos ahí mismo.� Tablas internas� Otros objetos!
Métodos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Al definir un método dentro de una clase, este debe ser declarado dentro del bloque DEFINITION y debe ser implementado dentro del bloque IMPLEMENTATION.
De manera similar a las funciones, un método tiene una firma, es decir, un conjunto de parámetros que son recibidos y devueltos por el mismo y un grupo de excepciones.
Al definir los parámetros de un método, estos pueden adoptar cualquier tipo, de manera similar a los atributos del objeto.
Declaración de Métodos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Implementación de métodos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Constructores
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los constructores son métodos especiales que se ejecutan automáticamente al momento de instanciar un objeto (constructor de instancia) y al momento de acceder a la clase por primera vez (constructor estático). Pueden definirse con cualquier visibilidad.
Sus nombres son siempre los mismos en cualquier clase: CONSTRUCTORCLASS_CONSTRUCTOR
Tienen la característica de que en sus firmas sólo pueden tener parámetros IMPORTING y excepciones.
Otros Componentes de una Clase
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
En una clase también pueden ser definidos otros componentes:
� Eventos� Tipos� Constantes
Constructores
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Instanciación de clases
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Para instanciar una clase, es decir, para crear un objeto de la misma, se debe primero definir una variable de referencia (puntero) a la clase.
Luego se crea el objeto usando la variable de referencia.
Acceso a Componentes
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Para acceder a los componentes de un objeto se utiliza la referencia seguida por el operador de referencia y el nombre del componente.
En el caso de los componentes estáticos se utiliza el nombre de la clase, el operador de referencia estática y el nombre del componente.
No siempre es posible acceder a un componente, debe tenerse en cuenta la visibilidad del componente que se desea acceder.
Seudoreferencia ME
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Al interior de los métodos de una clase, la seudoreferencia ME es una referencia de la propia clase que apunta al objeto actual.
Llamar a Métodos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Se utiliza la sentencia CALL METHOD para llamar a un método.
Llamar a Métodos Funcionales
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los métodos funcionales pueden llamados usando una sintaxis abreviada.Las dos formas a continuación son equivalentes.
La sintaxis abreviada puede ser usada en asignaciones directas (MOVE) y operaciones aritméticas. No puede ser usada en sentencias WRITE.
Herencia
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Propiedad de la POO que permite crear una clase nueva a partir de una clase existente, de tal manera que la nueva clase “hereda” los componentes definidos en la clase existente.
ABAP Objects implementa únicamente herencia simple, es decir que una clase sólo puede tener UNA superclase. Por el contrario una clase puede ser superclase de varias subclases.
Componentes Heredados
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Una subclase hereda todos los componentes de su superclase.
Sin embargo los componentes privados de la superclase, si bien son heredados no son visibles desde la subclase.
Por esta razón, en la subclase pueden definirse componentes privados con los mismos nombres que los componentes privados de su superclase.
Polimorfismo
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
El polimorfismo es una característica por la cual objetos diferentes tienen comportamientos diferentes invocando un mismo método.
En ABAP el polimorfismo se implementa mediante la redefinición de métodos.
Sólo pueden ser redefinidos los métodos visibles en la subclase.
Redefinición de Métodos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los métodos se redefinen con la instrucción REDEFINITION.
Al redefinir un método, su interfaz no puede ser modificada, únicamente su implementación.
Seudoreferencia SUPER
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Al interior de un método redefinido, la seudoreferencia SUPER permite el acceso al método original en la superclase.
Casting
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Es el cambio del tipo de un objeto durante la ejecución de un programa.
Al hacer casting se puede acceder a un objeto desde una referencia a una de sus superclases o subclases.
Utilizar casting permite efectuar llamadas polimórficas a los métodos de una clase.
Up Casting
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Conocido también como generalización, consiste en acceder a un objeto mediante una referencia a una de sus superclases.
El Up Casting siempre es posible.
Down Casting
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Conocido también como especialización, consiste en acceder a un objeto mediante una referencia a una de sus subclases.
Sólo es posible hacer down-cast a un objeto que ha pasado previamente por un up-cast. Se debe utilizar el operador de casting explícito ?=
Tipo Estático y Dinámico de una Referencia
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Gracias al casting, se puede diferenciar 2 tipos en una referencia.
Tipo Estático, determinado por la declaración de la referencia en la sentencia DATA, establece qué componentes son accesibles.
Tipo Dinámico, determinado por el tipo con el que fue instanciado originalmente el objeto al momento de su creación. Es visible sólo en tiempo de ejecución y determina qué código se ejecutará en los métodos redefinidos.
Eventos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los eventos son componentes de las clases como los atributos y métodos. Se declaran en la sección DEFINITION de una clase y están sujetos a las mismas condiciones de visibilidad y cardinalidad.
Los eventos son avisos que se generan durante la ejecución de los métodos de un objeto y que permiten al entorno (programa principal, otros objetos en la memoria) reaccionar frente a los cambios de estado ocurridos en el objeto que inicia el evento.
Manejo de Eventos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Se conoce como “trigger” al método que inicia el evento y como “handler” al método que reacciona ante dicho evento.
En el manejo de eventos hay 4 momentos:
� Declaración del evento, en la clase emisora� Definición e implementación del método handler, en la clase receptora� Registro del handler, en cualquier punto de la ejecución antes de la
emisión del evento.� Emisión del evento, mediante la ejecución del método trigger de la clase
emisora.
Declaración de Eventos
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los eventos se declaran mediante las sentencias EVENTS y CLASS-EVENTS en el bloque DEFINITION de las clases.
Los eventos pueden tener parámetros pero únicamente de tipo exporting. Todos los eventos tienen siempre el parámetro implícito SENDER que contiene una referencia al objeto que inicia el evento.
Emisión del Evento
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los eventos son lanzados durante la implementación de un método.
Un evento puede ser lanzado por más de un método y un método puede lanzar más de un evento.
Definición de Métodos Handler
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Una clase puede definir métodos handler tanto para sus propios eventos como para los de otras clases.
Los métodos handler se definen en el bloque DEFINITION de la clase.
Definición de Métodos Handler
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Al definir un handler, no es necesario más que enumerar los parámetros que este recibirá. La definición de los mismos es tomada de la declaración del evento.
Los métodos handler deben implementarse como todos los métodos en el bloque IMPLEMENTATION de la clase.
Los métodos handler pueden ser llamados normalmente con la sentencia CALL METHOD.
Registro de Handlers
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Los handler deben ser registrados antes de que ocurran los eventos para que estos puedan ser escuchados y manejados.
El registro puede realizarse en cualquier punto del programa donde las referencias estén disponibles y puede realizarse para todas las referencias, incluyendo las que aun no han sido creadas.
Para eventos estáticos no se usa referencia del emisor.
Constructor de Clases (SE24)
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Es una transacción especializada para crear clases e interfases globales.
Atributos en SE24
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Métodos en SE24
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Entorno de Pruebas
ABAP Objects
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Laboratorio 9: Objetos
Laboratorio Objetos
CSTI Consultoría en Tecnologías de Información
1. Crear una clase local para manejar los datos del modelo de Botica. La clase debe contener (como mínimo) los siguientes métodos:
- Consulta de datos maestros (Cajas / Punto de Venta, Productos, Clientes y Empleados).
- Consulta de documentos de venta (facturas, boletas, etc.) por fecha, cliente y/o producto.
- Creación de documentos de venta.
- Actualización de productos (stock y precios).
ALV
Abap List Viewer
CSTI Consultoría en Tecnologías de Información
¿Qué es ALV?
ALVCSTI Consultoría en Tecnologías de Información
ALV es el acrónimo de Abap List Viewer.
Es un conjunto de programas estándar predefinidos que permiten generar listados de una manera estandarizada y simplificada.
Al utilizar ALV el programador puede concentrarse estrictamente en la carga de los datos y se ve obligado a programar la salida de los mismos, así como las funciones allegadas a la salida de la información (ordenamiento, filtrado en pantalla, exportación de los datos a archivos, etc.)
Funcionalidades Predefinidas
ALVCSTI Consultoría en Tecnologías de Información
� Modificar la apariencia del reporte luego de generado.� Grabar, recuperar y administrar el formato de visualización (variante de
visualización)� Ordenar el listado por una o varias columnas.� Filtrar el listado (en salida) por una o varias columnas.� Exportar los datos mostrados a varios formatos de archivos.� Generación de gráficos.
Grupo de Tipos SLIS
ALVCSTI Consultoría en Tecnologías de Información
Grupo de Tipos donde se encuentran las declaraciones de las estructuras usadas en listados ALV.
Si se desea utilizar ALV dentro de un programa, se debe incluir entre las declaraciones del mismo la instrucción:
TYPE-POOLS SLIS
ALV List
ALVCSTI Consultoría en Tecnologías de Información
ALV List es el tipo básico de listado ALV.
Se crea utilizando la función REUSE_ALV_LIST_DISPLAY.
El formato de salida es similar al de un reporte generado con sentencias WRITE.
ALV List
ALVCSTI Consultoría en Tecnologías de Información
ALV Grid
ALVCSTI Consultoría en Tecnologías de Información
ALV Grid es el segundo formato de salida de los reportes ALV.
Se crea utilizando la función REUSE_ALV_GRID_DISPLAY.
El formato de salida es similar al de un archivo Excel y es por esto más atractivo visualmente que el ALV List.
ALV Grid
ALVCSTI Consultoría en Tecnologías de Información
Parámetros del ALV
ALVCSTI Consultoría en Tecnologías de Información
t_outtab Tabla interna Tabla que contiene los datos del reporte
i_callback_program sy-repid Programa que llama al ALV, obligatorio si se usan eventos.
i_save A' = Activar variantes de visualización
is_variant disvariant Variante de visualización.
is_layout slis_layout_alv Formatos generales del reporte ALV.
it_fieldcat slis_t_fieldcat_alv Tabla para definir las columnas del reporte y el formato de las mismas.
it_events slis_t_event Tabla de eventos definidos para el reporte.
it_sort slis_t_sortinfo_alv Tabla de ordenamiento y agrupación del reporte.
IT_FIELDCAT
ALV
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
row_pos Mostrar en la fila n (hasta 3 filas)
col_pos Posición en la columna
fieldname Nombre de la columna en la tabla interna
tabname Nombre de la tabla interna
ref_fieldname Nombre del campo en la estructura de referencia
ref_tabname Nombre de la estructura DD de referencia
cfieldname Nombre del campo que contiene la moneda
ctabname Nombre de la tabla que contiene la moneda
qfieldname Nombre del campo que contiene la unidad de medida
qtabname Nombre de la tabla que contiene la unidad de medida
IT_FIELDCAT
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
roundfieldnameNombre del campo que contiene el numero de decimales para redondeo
roundtabnameNombre de la tabla que contiene el numero de decimales para redondeo
round Redondear a n decimales
decimalsfieldnameNombre del campo que contiene el numero de decimales para salida
decimalstabnameNombre del campo que contiene el numero de decimales para salida
decimals_out Mostrar n decimales
exponent Exponente fijo (sólo números flotantes)
key Campo resaltado como clave
icon Mostrar columna como ícono
IT_FIELDCAT
ALV
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
symbol Mostrar columna como símbolo
checkbox Mostrar columna como checkbox
just Justificación L, R o C
lzero Rellenar con ceros a la izquierda hasta la longitud del campo
no_sign No mostrar el signo
no_zero Mostrar blanco si el valor es 0
edit_mask Mostrar el campo con una máscara de edición
emphasize Resaltar el campo
fix_column La columna aparece a la izquierda y siempre es visible
do_sum Columna sumarizada (sólo para columnas numéricas)
no_out Columna oculta (X), columna no puede ser ocultada (O)
tech Columna oculta y no aparece en el pool de columnas
IT_FIELDCAT
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
outputlen Longitud de salida
seltext_s Texto corto
seltext_m Texto mediano
seltext_l Texto largo
reptext_ddic Texto cabecera
ddictxt S, M o L, permite seleccionar cual texto mostrar
rollname Elemento de datos del campo
datatype Tipo de datos básico
ddic_outputlen Longitud de salida definida
intlen Longitud definida del campo
hotspot Mostrar columna es acceso directo
input Columna editable
IT_FIELDCAT
ALV
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Puede utilizarse la función REUSE_ALV_FIELDCATALOG_MERGE para cargar el catálogo de campos cuando este esté basado en una única estructura del diccionario de datos.
La función carga el catálogo con todas las columnas de la estructura y luego estas pueden ser tratadas para acomodarse al reporte necesario.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
IS_LAYOUT
colwidth_optimize Optimizar ancho de columnas
no_colhead No mostrar cabeceras
no_hotspot Las cabeceras no son hotspot (solo ALV List)
zebra Filas de color intercalado
no_vline No mostrar separadores de columnas
window_titlebar Titulo de la ventana
lights_fieldname Campo en la tabla que contiene el valor de la excepcion
lights_tabname Tabla que contiene el valor de la excepcion
no_sumchoice No aparece el boton de totales
no_totalline No aparecen las filas de totales
no_subchoice No aparece el boton de subtotales
ALV
IS_LAYOUT
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
no_totalline No aparecen las filas de totales
no_subchoice No aparece el boton de subtotales
no_subtotals No se puede subtotalizar
numc_sum Hacer posible subtotales de campos NUMC
totals_only Mostrar solo totales
totals_text Texto para fila de totales
subtotals_text Texto para filas de subtotales
box_fieldname Campo que permite seleccionar la fila
box_tabname Tabla que contiene a dicho campo
IS_LAYOUT
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
expand_fieldname Campo para expandir la fila
no_input Todos los campos son no editables
f2code User command que se ejecuta al hacer doble click
no_keyfix No se puede fijar columnas
no_scrolling No se puede hacer desplazamiento
detail_popup Mostrar detalle en una ventana popup
detail_initial_lines Mostrar detalle para lineas en blanco
detail_titlebar Titulo para la ventana de detalle
coltab_fieldname Columna que contiene la tabla de colores de la fila
IT_SORT
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
spos Prioridad del ordenamiento
fieldname Columna por la cual se debe ordenar
tabname Tabla de la columna
up Ordenar ascendente
down Ordenar descendente
group Agrupar: (*) cambio de página, (UL) linea de separación
subtot Mostrar subtotales para el grupo
IT_EVENTS
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
name Nombre del evento
form Nombre de la subrutina FORM que lo controla
IT_EVENTS
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
La tabla de eventos permite definir y manejar los eventos que ocurren en un reporte ALV.
Para utilizarla, se le carga con la función REUSE_ALV_EVENTS_GET, la cual cargará la lista de eventos del ALV.
A continuación deberá asignarse subrutinas de control a los eventos que se requieran y se debe definir las subrutinas correspondientes.
Al llamar a la función ALV el parámetro I_CALLBACK_PROGRAM es obligatorio y debe contener el nombre del programa que contiene a las subrutinas de control.
Otros ALV
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
ALVCSTI Consultoría en Tecnologías de Información
ALV JerárquicoREUSE_ALV_HIERSEQ_LIST_DISPLAYGeneración de reportes jerárquicos (cabecera y detalle).
Bloques ALVREUSE_ALV_BLOCK*Permite colocar simultáneamente varios ALV (list y jerárquico) dentro de una única pantalla de reporte.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Clase ALV
O-O Abap List Viewer
CSTI Consultoría en Tecnologías de Información
Introducción
Clase ALVCSTI Consultoría en Tecnologías de Información
CL_GUI_ALV_GRID es una clase estándar que permite crear reportes ALV Grid mediante programación orientada a objetos y permite embeber dichos reportes dentro de dynpros.
Si bien es muy similar a la función REUSE_ALV_GRID_DISPLAY en los resultados que se pueden obtener, su uso es muy diferente pues se hace uso de los conceptos de ABAP Objects.
Ventajas
Clase ALVCSTI Consultoría en Tecnologías de Información
� Orientado a objetos� Se puede utilizar en dynpros� Se puede mostrar varios simultáneamente en una misma pantalla� Reemplaza al TABLE CONTROL, incluyendo todas las funcionalidades de la
función ALV Grid.� Interfaz directa con Office mediante el modo de visualización Excel.
Como Usar CL_GUI_ALV_GRID
Clase ALVCSTI Consultoría en Tecnologías de Información
Para utilizar la clase, se debe crear una dynpro y definir dentro de la dynpro un control CUSTOM CONTROL, el cual separará el área de la dynpro donde se embeberá el ALV Grid.
Definición de datos
Clase ALVCSTI Consultoría en Tecnologías de Información
En el programa, deben definirse 2 objetos de las siguientes clases:
CL_GUI_CUSTOM_CONTAINER para manipular el CUSTOM CONTROL de la dynpro.
CL_GUI_ALV_GRID para crear y manipular el ALV Grid
Definición de datos
Clase ALV
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Adicionalmente deben definirse datos con los siguientes tipos:
lvc_t_fcat Catálogo de campos del ALV
lvc_t_sort Ordenamiento (opcional)
lvc_s_layo Layout (opcional)
disvariant Variante de visualización (opcional)
Instanciación
Clase ALVCSTI Consultoría en Tecnologías de Información
Durante el PBO de la dynpro definida, se deben instanciar los objetos definidos previamente. Nótese que al instanciar el objeto ALV, se hace referencia al objeto Container.
Presentación del Grid
Clase ALVCSTI Consultoría en Tecnologías de Información
Luego de instanciar los objetos y de haber cargado los datos del reporte y el catálogo de campos (si van a utilizarse deberían cargarse también los otros parámetros) se utiliza el método SET_TABLE_FOR_FIRST_DISPLAY.
Presentación del Grid
Clase ALVCSTI Consultoría en Tecnologías de Información
El método SET_TABLE_FOR_FIRST_DISPLAY se debe usar, cómo su nombre lo indica, únicamente para mostrar la tabla por primera vez. Luego de eso no debe utilizarse y si los datos de la tabla base hubieran cambiado y se requiriera refrescarlos en la pantalla, se debe utilizar el método REFRESH_TABLE_DISPLAY.
Eventos
Clase ALVCSTI Consultoría en Tecnologías de Información
El manejo de eventos con la clase ALV es muy diferente al de las funciones ALV porque está orientado a objetos.
Para manejar los eventos de CL_GUI_ALV_GRID, se debe definir una clase que contenga los métodos HANDLER correspondientes y se debe instanciar dicha clase y establecer las relaciones entre eventos y métodos handler adecuadamente.
Eventos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Clase ALVCSTI Consultoría en Tecnologías de Información
Declare e implemente la clase manejadora.
Eventos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Clase ALVCSTI Consultoría en Tecnologías de Información
Declare e instancie un objeto de la clase definida previamente.
Eventos
Clase ALV
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de Información
Establezca las relaciones entre los métodos handler y los eventos del objeto ALV Grid.
Algunos eventos requieren ser “activados” dentro del ALV.
Algunos Métodos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Clase ALVCSTI Consultoría en Tecnologías de Información
set_table_for_first_display Mostrar la tabla por primera vez
refresh_table_display Actualizar la visualización
get_frontend_fieldcatalog Leer el catálogo de campos actual
set_frontend_fieldcatalog Actualizar el catálogo de campos
get_selected_rows Leer las filas seleccionadas
get_selected_columns Leer las columnas seleccioandas
get_selected_cells Leer las celdas seleccionadas
check_changed_data Verificar los datos modificados en la tabla
Algunos Eventos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
Clase ALVCSTI Consultoría en Tecnologías de Información
onf4 Presionaron F4
data_changed Datos modificados en algún punto de la grilla
user_commandPresionaron un botón (no estándar) de la barra de herramientas
double_click Doble click en algún punto de la grilla
print_top_of_page Top of page cuando se imprime la lista
print_end_of_page End of page cuando se imprime la lista
toolbar Para modificar la barra de herramientas del ALV
Laboratorio 10: ALV
Laboratorio ALVCSTI Consultoría en Tecnologías de Información
1. Crear reportes ALV para los Productos y Documentos de Venta. En la pantalla de selección de cada reporte coloque una opción para mostrar el reporte en formato lista y en formato grilla.
2. Copie el programa de creación de datos para registrar las ventas (Laboratorio 5, ejercicio 1) reemplace en la dynpro el table control con un custom control ALV Grid. La funcionalidad del programa debe mantenerse.
Enhancements
CSTI Consultoría en Tecnologías de Información
Ampliaciones
SAP ha desarrollado todos sus módulos (llámese FI, MM, SD, PP, etc.) con normas
internacionales estándares que son practicadas ampliamente en todas partes del
mundo. Sin embargo, las exigencias de clientes se diferencian de un lado a otro.
Bajo este escenario, se hace imperativo modificar los objetos creados por SAP para
satisfacer las necesidades generadas, para lo cual se han creado diversas técnicas
llamadas Ampliaciones (Enhancements), que son código ABAP externo a los programas
estándares y que se aplican a los procesos de negocio para adaptarlos a los
requerimientos específicos.
Entre las ampliaciones más usadas tenemos, los User Exits, BADIs, Enhancements Points
y BTEs.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Introducción
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Un User-Exit es una rutina definida dentro de un programa estándar ABAP que está
vacía, es decir, sin código ABAP.
Está rutina está allí para que el usuario ponga su propio código fuente que le permita
realizar tareas específicas que no están previstas por SAP.
Las User-Exit se gestionan por la transacción SMOD y se implementan por la transacción
CMOD.
Una vez implementado el User-Exit, se debe activar el proyecto, ya que es la única
manera que pueda verse el efecto del código introducido en la rutina.
User Exit
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Proyecto de Ampliación
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Ampliaciones y Proyectos de Ampliaciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Procedimiento para creación de Ampliaciones
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Procedimiento para activación de Exits
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Creando Proyectos de Cliente por la CMOD
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Asignación de Ampliaciones a proyectos de Cliente
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Editando los componentes
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Activando Proyecto de Ampliación
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Transportando los Proyectos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Overview de Programa Exit
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Módulo de Función Exit : Flujo de Proceso
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Llamando y Creando M ódulos de Función
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Encontrando M ódulos de Función Exit
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Editando M ódulos de Función Exit
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Resúmen: M ódulos de Función Exit
Las BADI's son un nuevo tipo de ampliación al sistema SAP basado en ABAP Objetcs.
El principal objetivo de las BADI’s, es cumplir con los requerimientos del cliente
permitiendo agregar nuevas funcionalidades dentro del código estándar de SAP.
De la misma manera que con los User Exit's, las BADI's tienen dos vistas: la de definición
y la de implementación.
Mediante la transacción SE18 accedemos a la Definición de las BADI's, en la cual se
pueden ver las características, parámetros de entrada, parámetros de salida, tipo de
BADI, etc.
Para la implementación de la BADI se utiliza la transacción SE19, en la que ademaás se
pueden ver todas las implementaciones que existan de una BADI determinada.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
BADIs (Business ADd-Ins)
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Transacción SE18 – Definición de BADI’s
- Para ver las definiciones existentes, pulse F4 en el nombre de la definición, aparecerá una pantalla pop-up en el cual pulsará el botón Aplicaciones SAP.
- El sistema muestra un árbol de las áreas funcionales (en SAP) de los módulos pertinentes, tales como, MM, SD y HR.
- Navegue en este árbol con el fin de encontrar el área (y por lo tanto la BADI) en la que se está interesado.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Visualizando una definición estándar - Atributos
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Visualizando una definición estándar – Interface y n ombre del método
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Al pulsar doble click sobre el método se visualizan los detalles acercade los parámetros Importing, Exporting y Changing.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Transacción SE19 – Implementando BADI’s
Para implemetar una BADI se necesitan hacer tres pasos:
1. Identificar la BADI a implementar (SE18, internet, etc).2. Crear una implementación vía SE19.3. Escribir el código para el método de la BADI.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Creando la Implementación
Ingresar el nombre de la implementación y pulsar el botón Crear. Aparece unaventana para ingresar el nombre de la BADI.
Esto nos lleva a la siguiente pantalla…
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
- Ingrese un nombre descriptivo acorde a la implementación.
- Pulse la ficha Interface para ver el nombre de la clase que se generará productode la implementación, se puede cambiar si se desea. También se muestra, elnombre del método de la BADI.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Luego. Se pulsa doble click sobre el nombre del método (en nuestra casoSAP_SCRIPT_TABLES).
Esto nos lleva a la pantalla del editor del método. Esta es área donde se puedeescribir el código ABAP que le gustaría que se ejecute cuando el método BADI esLlamado.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Escribiendo el código para el método de la BADI
Una vez ingresado el código necesario, activar la implementación de la BADI.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Método para encontrar BADI’s
Para encontrar los lugares en donde existe una BADI, se puede usar elsiguiente método:Poner un BREAK-POINT de sesión dentro del métodoGET_INSTANCE de la clase CL_EXITHANDLER (transacción SE24).Luego, se ejecuta la transacción o programa que queremos verificar yel programa se detendrá en el BREAK-POINT, en la variable exit_name se muestran los nombres de las BADI's que implementa el programa. Este método puede resultar engorroso porque se detiene muchas veces la ejecución, pero nos aseguramos que si una BADI existe se detendrá en ese punto. Lo que estamos haciendo es poner un BREAK-POINT en el momento en que SAP verifica si una definición de BADI tiene alguna implementación activa; por lo tanto, aunque no exista ninguna implementación activa para esa BADI particular el método detectará que existe una BADI en ese punto.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Otra forma:
Transacción ST05 (Performance Analysis)
Esta técnica de análisis se basa en el echo de que todas las BADI’s estánregistradas en tablas SAP. Por lo que en cada llamada a una BADI el sistemapasa por estas tablas. Las tablas de las BADI’s son las siguientes SXS_INTER,SXC_EXIT, SXC_CLASS y SXC_ATTR. A estas tablas, SAP siempre accedemediante las vistas V_EXT_IMP y V_EXT_ACT. Por lo que estas vistas(T: SE11) serán la base de nuestro análisis.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
EJEMPLO:
Supongamos que quiero saber que BADI’s son llamadas en la transacción “Maintain Business Partners” código BP.
PASOS:
1.- Primero chequeamos que ningún otro usuario (T:SM04) o jobs en fondo (T: SM50) están usando el mismo usuario que tú.
2.- Nos vamos a la transacción ST05 (Performance Analysis) y marcamos el flag "Buffer trace", después pulsamos el botón “Activate Trace “, para activar el Trace.
3.- Inmediatamente después ya que el sistema está ya “Grabando” nos vamos a la transacción BT que queremos analizar y pulsamos el boton "Organization" completando los campos con los siguientes datos de prueba:
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Al finalizar pulsamos el boton salvar.
4.- Volvemos a la ventana donde teníamos abierta la ST05 y pulsamos el botón "Deactivate Trace" para finalizar el trace y pulsamos sobre el botón "Display Trace", entonces el popup "Set Restrictions for Displaying Trace" aparecerá.
5.- Ahora vamos a filtrar el Trace con los objetos: V_EXT_IMP y V_EXT_ACT. Que son nuestras vistas.
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Pulsamos el botón "Copy (F8)" , Fill Operations: OPEN y pulsamos el botón"Enter“.
ANALISIS DE LOS RESULTADOS
Obtendremos un listado parecido a este que interpretaremos de la siguiente manera:
Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635
http://www.csti.com.pe
CSTI Consultoría en Tecnologías de InformaciónEnhancements
Todas las “interface class names” de las vista V_EXT_IMP comienzan conIF_EX_. Este es el prefijo estándar de SAP para las “ BADI class interfaces “.El nombre de la BADI está después de este IF_EX_.
Es decir el nombre de la BADi para IF_EX_ADDR_LANGU_TO_VERS esADDR_LANGU_TO_VERS .
Laboratorio 11: Enhancements
Laboratorio Enhancements
CSTI Consultoría en Tecnologías de Información
Implementar una ampliación para que al grabar un pedido de ventas (transacción VA01), muestre un mensaje si el pedido tiene condición de pago al contado. Antes de implementar se debe buscar la BADI que se activa al momento de grabar el pedido.