100% encontró este documento útil (1 voto)
794 vistas

Abapdocumentación

Este documento proporciona un resumen de las transacciones más utilizadas en SAP R/3 organizadas por módulo. Incluye transacciones para gestión de materiales, logística, recursos humanos, ventas y distribución, finanzas y administración. Explica brevemente cada transacción y su código. El documento detalla las transacciones básicas del entorno de programación ABAP y de administración del sistema SAP.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
794 vistas

Abapdocumentación

Este documento proporciona un resumen de las transacciones más utilizadas en SAP R/3 organizadas por módulo. Incluye transacciones para gestión de materiales, logística, recursos humanos, ventas y distribución, finanzas y administración. Explica brevemente cada transacción y su código. El documento detalla las transacciones básicas del entorno de programación ABAP y de administración del sistema SAP.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 48

Accenture Curso ABAP

TRANSACCIONES DEL ENTORNO DE PROGRAMACIN(BSICAS)


Este es resumen de las transacciones del entorno de programacin y de administracin del sistema ms utilizadas de la versin 3.x del sistema SAP R/3:

Cdigo de Transaccin
BMV0 OY19 SCAM SCAT SE01 SE07 SE09 SE10 SE11 SE12 SE13 SE14 SE15 SE16 SE17 SE30 SE32 SE35 SE36 SE37 SE38 SE39 SE41 SE43 SE51 SE54 SE61 SE62 SE63 SE65 SE66 SE68 SE71 SE72 SE73 SE74 SE75 SE76 SE77 SE80 SE81 SE82 SE84 SE85 SE86 SE87 SE88 SE91 SE92 SE93

Descripcin
Gestin de los log de direct input. Comparacin del contenido de una tabla entre dos sistemas SAP R/3 CATT Management Computer Aided Test Tool Sistema de gestin de transportes Estatus de las ordenes de transporte rdenes de transporte Workbench rdenes de transporte Customizong Mantenimiento del diccionario de datos Visualizacin del diccionario de datos Mantenimiento de tablas Diccionario de datos, utilidad para bases de datos Sistema del repositorio Visor de datos (Datos Browser) Visor de tablas Anlisis de tiempos de ejecucin Mantenimiento de elementos de texto. Mantenimiento de mdulos de dilogo Mantenimiento de bases de datos lgicas Mantenimiento de mdulos de funcin Mantenimiento de programas (editor ABAP/4) Editor split screen Manteniemiento de mens (men Painter) Mantenimiento de mens de rea. Mantenimiento de dynpros (screen painter) Mantenimiento de vistas Gestin de la documentacin Utilidad ramo industrial Traductor Documentacin estadstica de textos breves Documentacin estadstica de textos explicativos Gestin del departamento de traduccin SAPscript layout set SAPscript estilos SAPscript fonts SAPscript conversin de formato SAPscript settings SAPscript traductor Layout Sets SAPscript traductor estilos Visor de objetos (object browsers) Jerarqua de aplicacin (SAP) Jerarqua de aplicacin (cliente) Sistema de informacin del repositorio. Sistema de informacin del repositorio. Sistema de informacin del repositorio. Gestin del modelo de datos (data modeler) Sistema de informacin Gestin de mensajes Gestin de mensajes del log del sistema Gestin de cdigos de transaccin

Pg. 1 de 48

Accenture Curso ABAP


SEU SO32 SHDO SQ00 SQ01 SQ02 SQ03 SQ07 SM35 SE37 SM21 SHD0 SO00 SMOD
Gestin de objetos (object browser) Gestin de usuarios SAPOffice Mantenimiento de variantes ABAP/4 Query: queries ABAP/4 Query: mantenimiento de queries ABAP/4 Query: mantenimiento de areas funcionales ABAP/4 Query: mantenimiento de grupos de usuarios ABAP/4 Query: comparacin del lenguaje Gestin de juegos de datos (Batch-Input) Mantenimiento de JOBS Ver el log del sistema. Se utiliza para ver ms informacin cuando ocurre un DUMP. Mantenimiento de transacciones de variante. Envia un mensaje a travs de SAP. El destinatario puede ser de Internet, X400, etc.. Gestin de User-exits.

TRANSACCIONES DE CONTROL DE ACCESOS


Este es resumen de las transacciones del mdulo de control accesos (CA) de la versin 3.x del sistema SAP R/3:

Cdigo de Transaccin
SU01 SU02 SU03 PFCG SUIM

Descripcin
Administracin de usuarios Administracin de perfiles Administracin de autorizaciones Generador automtico de perfiles Sistema de informacin

TRANSACCIONES DE LOGSTICA
Este es resumen amplio de las transacciones del mdulo de logstica (MM) de la versin 3.x del sistema SAP R/3:

Cdigo de Transaccin
ME00 MB00 MR00 MRBE LPRO MD00 MI00 MM00 CL00 VA00 VL00 MCE9 MCC2 MCT2 MC01 MC02

Descripcin
Gestin Materiales. Compras Gestin Materiales. Gestin de Stocks Gestin Materiales. Verificar Facturas Gestin Materiales. Valoracin Gestin Materiales. Pronostico de Material Gestin Materiales. Planificacin Necesidades Gestin Materiales. Inventario Gestin Materiales. Maestro Materiales Gestin Materiales. Clasificacin Gestin comercial. Ventas Gestin Materiales. Expedicin Sistema Info. Compras. Sistema Info. Gestin Stocks Sistema Info. Comercial Sistema Info. Buscar va Set Info. Sistema Info. Buscar va Texto

Pg. 2 de 48

Accenture Curso ABAP


MCB1 ME90 MBSF MK03 ME3N MM03 MR03 MMBE MB51 MB01 MB1A MBST MBRL MB03 ME56 ME5A ME5K ME5W ME56 ME57 ME52 ME53 ME4L ME4M ME4S ME4C ME4N ME2L ME41 ME42 ME43 ME47 ME48 ME49 ME21 ME58 ME22 ME23 ME28 ME2L ME2M ME2K ME2C ME2N ME31 ME32 ME33 ME58 MB01 MB02 MB03 ME11 ME12 ME13 ME14 ME15 ME01
Sistema Info. Controlling Stocks Imprimir Orden de Entrega Conformidad. Liberar Recepcin Entorno. Consulta de Proveedores Entorno. Consulta Contratos Entorno. Consulta de maestro de materiales Entorno. Consulta Facturas Entorno. Resumen de Stocks Entorno. Consulta Mov. Material Mvtos. Almacn. Entrada por pedido Mvtos. Almacn. Salida de material Mvtos. Almacn. Anular documento Mvtos. Almacn. Devolucin a Proveedor Mvtos. Almacn. Visualizar documento Solicitud de Pedido. Asignar contrato. Sol. Pedido. Listados. Generalidades Sol. Pedido. Listados. Por imputacin Sol. Pedido. Listados. Nueva presentacin Sol. Pedido. Funciones siguiente. Asignar Sol. Pedido. Funciones siguientes. Asignar y tratar Sol. Pedido. SolP generadas. MRP. Modificar Sol. Pedido. SolP generadas MRP. Visualizar Pet. Ofertas/Oferta. Listados. Por proveedor Pet. Ofertas/Oferta. Listados. Por material Pet. Ofertas/Oferta. Listados. Por licitacin Pet. Ofertas/Oferta. Listados. Por grupo artculos Pet. Ofertas/Oferta. Listados. Por peticin oferta Pet. Ofertas/Oferta. Listados. Por proveedor. Pet. Ofertas/Oferta. Crear Pet. Ofertas/Oferta. Modificar Pet. Ofertas/Oferta. Visualizar Pet. Ofertas/Oferta. Actualizar Pet. Ofertas/Oferta. Visualizar Pet. Ofertas/Oferta. Comparacin precios Pedido/Contrato. Crear Pedido/Contrato. Mediante sol. pedido Pedido/Contrato. Modificar Pedido/Contrato. Visualizar Pedido/Contrato. Liberar Pedido/Contrato. Listados. Por proveedor Pedido/Contrato. Listados. Por material Pedido/Contrato. Listados. Por imputacin Pedido/Contrato. Listados. Por grupo de artculos Pedido/Contrato. Listados. Por nmero de pedido Pedido/Contrato. Pedido Abierto. Crear Pedido/Contrato. Pedido Abierto. Modificar Pedido/Contrato. Pedido Abierto. Visualizar Pedido/Contrato. Pedido de Baremo. Mediante sol. Pedido Conformidad. Crear Conformidad. Modificar Conformidad. Visualizar Conformidad. Registro Info. Crear Conformidad. Registro Info. Modificar Conformidad. Registro Info. Visualizar Conformidad. Registro Info. Modificaciones Conformidad. Registro Info. Peticin de borrado Conformidad. Libro de Pedidos. Actualizar

Pg. 3 de 48

Accenture Curso ABAP


ME03 ME04 MEQ1 MEQ3 MEQ4 MEQM ME61 ME62 ME63 ME64 ME6A ME6H ME1l ME1M ME1W ME1P ME1E ME0M SU53
Conformidad. Libro de Pedidos. Visualizar Conformidad. Libro de Pedidos. Modificaciones Conformidad. Regulacin por cuota. Actualizar Conformidad. Regulacin por cuota. Visualizar Conformidad. Regulacin por cuota. Modificaciones Conformidad. Regulacin por cuota. Listado por material Conformidad. Evaluacin proveedor. Actualizar Conformidad. Evaluacin proveedor. Visualizar Conformidad. Evaluacin proveedor. Reevaluacin autom. Conformidad. Evaluacin proveedor. Comparacin evaluac. Conformidad. Evaluacin proveedor. Modificaciones Conformidad. Evaluacin proveedor. Anlisis estndar Conformidad. Listados. Por proveedor Conformidad. Listados. Por material Conformidad. Listados. Por grupo artculos Conformidad. Listados. Histor. precio-pedido Conformidad. Listados. Histor. precio-oferta. Conformidad. Visualizar listado. Por material. Visualiza los objetos de autorizacin de un usuario.

TRANSACCIONES DE RECURSOS HUMANOS


Este es resumen de las transacciones del mdulo de recursos humanos (HR) de la versin 3.x del sistema SAP R/3:

Cdigo de Transaccin
PA03 PA20 PA30 PP02 PU00

Descripcin
Cambia el registro de control de nminas Visualiza infotipo PA Crearo modifica infotipos PA. Entrada rpida para objetos de tipo PD Borra infotipo PA de un empleado.

TRANSACCIONES DE VENTAS Y DISTRIBUCIN


Este es resumen de las transacciones del mdulo de ventas y distribucin (SD) de la versin 3.x del sistema SAP R/3:

Cdigo de Transaccin
OLSD VB21 VK15 VA01 VA02 VA03 VA05 VA11 VA12 VA13 VA15 VL02

Descripcin
Configuracin de SD Volumen de ventas y compras Mltiples condiciones de ventas. Sol. Material Almacn. Crear Sol. Material Almacn. Modificar Sol. Material Almacn. Visualizar Sol. Material Almacn. Lista Crear solicitud de venta Modificar solicitud de venta Visualizar solicitud de venta Lista solicitud de venta Entrega

Pg. 4 de 48

Accenture Curso ABAP

TRANSACCIONES DE ADMINISTRACIN FINANCIERA


Este es resumen de las transacciones administracin financiera (FI) de la versin 3.x del sistema SAP R/3: Cdigo de Descripcin Transaccin Pantalla del report writer FGRP Visualiza documentos bloqueados por el usuario. FM12 Inserta un nombre especfico para una cuenta de tipo G/L. FST2 Visualiza el nombre de una cuenta G/L. FST3 Mantenimiento de operaciones de inters. KEA0 Actividad CO-PA. KEKE Asignacin de operaciones de inters. KEKK Borrar un tipo de actividad. KL04 Borra un centro de coste. KS04 Cambia o borro un grupo de centro de coste. KSH2 Borra el programa de clientes, vendedores y cuentas G/L. OBR2 Borra un grupo de elementos/costes. OKC5 Borra datos de una transaccin. OKE1 Borra un centro de beneficio. OKE2 Determina el numero de actividad de los tipos de actividad. OKI1 Define el papel de los socios. OMZ1

11/05/05
Responsable: Fernando Calderon [email protected] - 5071-0353

ALUMNO 05 USUARIO SAP: user05 PASSWORD: 05user

BC400
Abap
Lenguaje de programacin del sistema SAP. Se trabajara sobre el R/3, aspecto funcional. R/3 = ERP Sistema integrado de gestin para una empresa. R/3 ABAP BASIS

Pg. 5 de 48

Accenture Curso ABAP


SAP es un servidor que trabaja en tres capas, ellas son: Presentacin, Aplicacin y Base de Datos. SAP se divide en modulos, entre los que se encuentran: o GL: Contabilidad General o FI: Finanzas o CO: Controles o MM: Material Mangement o SD: Ventas o HR: Recursos Humanos o PM: Mantenimiento de Planta Los perfiles de SAP son: Analista Funcional, Desarrollador y Basis.

Transacciones
Todo en SAP es una transaccin. La transaccin SE38 es la que me permite el ingreso al entorno de programacin, el ABAP Editor. Para crear un programa que no es estndar (cualquier tipo de aplicacin desarrollada) el mismo debe respetar la nomenclatura de comienzo del nombre con las letras Z o Y. La nomenclatura de escritura de nombres de programas del curso es:

ZEA08_Axx_nnn_libre
Donde Axx es el nmero de alumno asignado, y nnn el nmero de programa que se esta desarrollando

Prog. 01 Hola Mundo (WRITE)


REPORT ZEA08_A05_001_HOLAMUNDO. *---------Hola Mundo-----------------* WRITE 'Hola Mundo'.

Prog. 02 Parmetros (PARAMETERS)


*---------Parametros-----------------* * Creacion de Pantalla Pre Visualizacion de entrada de datos (xxx: yy,zz. = concatenar) PARAMETER nombres(18) type c. PARAMETERS: apellido(10) type c, edad(2) type n. * Escritura en consola (/ = endl) WRITE: nombres, apellido,/, edad.

Prog. 03 Multiplicacin (DATA)


*---------Multiplicacion------------* PARAMETERS: numero1(3) type c, numero2(3) type c. * Definicion de Variables (True 'X' - False ' ') DATA: num01(3) type p, num02(3) type p, resu(3) type p. num01 = numero1. num02 = numero2. resu = num01 * num02. WRITE: 'Valor 1:', num01, /, 'Valor 2:', num02, /, 'Resultado:', resu.

Estructura de ciclos
IF condicin. ------ELSE. ------ENDIF. DO ----ENDDO.

Pg. 6 de 48

Accenture Curso ABAP


En los ciclos se pueden utilizar EXIT y CONTINUE durante su ejecucin.

Prog. 04 Operaciones (IF ELSE ENDIF)


*---------Operaciones--------------* PARAMETERS: numero1(3) type c, numero2(3) type c, oper(1) type c. DATA: num01(3) type p, num02(3) type p, resu(3) type p, op(1) type c. num01 = numero1. num02 = numero2. op = oper. IF op = '*'. resu = num01 * num02. ELSEIF oper = '+'. resu = num01 + num02. ELSEIF oper = '-'. resu = num01 - num02. ELSE. resu = num01 / num02. ENDIF. WRITE: 'Resultado:', resu.

Prog. 05 Operaciones Potencia (DO - ENDDO)


*---------Operaciones--------------* PARAMETERS: numero(3) type c, exponent(3) type c. DATA: num(3) type p, exp(3) type p, resu(3) type p. num = numero. exp = exponent. IF exp = 1. resu = num. ELSE. exp = exp - 1. resu = num. DO exp times. resu = resu * num. ENDDO. ENDIF. WRITE: 'Resultado: ', resu.

Prog. 06 Operaciones (CASE)


*---------Operaciones--------------* PARAMETERS: numero1(3) type c, numero2(3) type c, oper(1) type c. DATA: num01(3) type p, num02(3) type p, resu(3) type p, op(1) type c. num01 = numero1. num02 = numero2. op = oper. CASE op. WHEN '*'. resu = num01 * num02. WHEN '+'. resu = num01 + num02. WHEN '-'. resu = num01 - num02. WHEN '/'. resu = num01 / num02. ENDCASE. WRITE: 'Resultado:', resu.

Definicin de Datos

Pg. 7 de 48

Accenture Curso ABAP


PARAMETERS: Define una variable que es ingresada en la pantalla de seleccin. El estandar de definicin utiliza p_nombreparametro. Se pueden hacer que los campos del PARAMETER sean obligatorios por medio de la inclusin de OBLIGATORY luego de la sentencia. Ejemplo: PARAMETER p_bukrs LIKE vbak-bukrs.

DATE: Define una variable dentro de un programa. El estandar de definicin utiliza d_nombredato. CONSTANTS: Define una constante. El estandar de definicin utiliza c_nombreconstante. Ejemplo: CONSTANTS: c_carrid(2) type c value SQ.

SELECT-OPTIONS: Permite ingresar un rango de valores, desde hasta, en la pantalla de seleccin

Mandante
Existen tres grandes reas de manejo de ABAP que se denominan ambientes: Desarrollo, Testing y Produccin. Por cada ambiente existen los que se llaman mandantes, lo cual al iniciar sesin bajo un mandante me permite ejecutar una transaccin. Por ejemplo en el ambito de desarrollo el mandante 200 me permite desarrollar aplicaciones.

Acceso a Base de Datos


Para poder usar una tabla, primero se debe declarar mediante TABLES: SBOOK SELECT (campos) FROM (n tabla) WHERE (condicion). ENDSELECT. Selecciona un con conjunto de registros de la tabla.

SELECT SINGLE * FROM SBOOK.

Selecciona un solo registro de la tabla

Prog. 07 SELECT SINGLE


*---------Obtener datos BD----------* TABLES: SBOOK. SELECT SINGLE * FROM SBOOK. WRITE SBOOK.

Prog. 08 SELECT (Escribir toda la tabla)


*---------Obtener datos BD----------* TABLES: SBOOK. SELECT * FROM SBOOK WHERE CARRID = 'LH'. WRITE SBOOK. ENDSELECT.

Prog. 09 SELECT (Escribir campos)


*---------Obtener datos BD----------* TABLES: SBOOK. SELECT * FROM SBOOK WHERE CARRID = 'LH'. WRITE: SBOOK-CARRID, SBOOK-CONNID.

Pg. 8 de 48

Accenture Curso ABAP


ENDSELECT.

Prog. 10 Ingresar Parmetros y Buscarlos en la BD


*------Buscar parametro en BD-------* PARAMETER selec(2) type c. DATA select(2) type c. TABLES: SBOOK. select = selec. SELECT * From SBOOK WHERE CARRID = select. WRITE: SBOOK-CARRID, SBOOK-CONNID. ENDSELECT.

Variables del Sistema en SAP


SAP tiene una tabla de sistema llamada SYST donde se alojan las variables del sistema. Algunas de las variables del sistema son: SY-DYNNR: Devuelve en que pantalla (DYNPRO) me encuentro posicionado. SY-DATUM: Devuelve un tipo fecha. SY-TCODE: Devuelve el valor de la transaccin que se esta ejecutando. SY-TABIX: Devuelve las posiciones en cada vuelta del LOOP (acceso a una tabla interna). SY-UZEIT: Devuelve la hora. SY-UNAME: Devuelve el nombre del usuario que se encuentra logueado. SY-SUBRC: Variable de sistema que devuelve el estado en que termino una consulta. Los estados pueden ser: o SY-SUBRC = 0 => Significa que la seleccin esta OK. o SY-SUBRC = 4 => Significa que la seleccin no fue OK. o SY-SUBRC = 8 => Significa que hay errores en los datos de la tabla.

Por medio de la transaccin SE11 se manejan las variables del sistema. La estructura que tiene las variables del sistema es la SYST y se puede visualizar por medio de la SE11.

Prog. 11 Ingresar Parmetros y Buscarlos en la BD (Chequeando SY-SUBRC)


*------Buscar parametro en BD-------* PARAMETER pselec(2) type c. DATA dselec(2) type c. TABLES: SBOOK. dselec = pselec. SELECT * From SBOOK WHERE CARRID = dselec. ENDSELECT. IF SY-SUBRC = 0. WRITE: SBOOK-CARRID, SBOOK-CONNID,/. ELSE. WRITE 'No se encontraron datos en la base',/. ENDIF. WRITE: 'Contenido SY-SUBRC: ', SY-SUBRC,/.

12/05/05
Responsable: Martin Girolamo [email protected]
Pg. 9 de 48

Accenture Curso ABAP

Tablas Internas
La transaccin SE11 es la que me permite el ingreso al ABAP Dictionary: Initial Screen, en donde se pueden visualizar los contenidos de las tablas (BD). Para la creacin de tablas internas se utiliza: (WORK AREA) DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, END OF it_sbook. Donde IT_SBOOK es la tabla interna, OCCURS 0 permite el dimensionamiento dinamico de la tabla y CARRID, CONNID, FLDATE son los campos de la tabla interna. Se puede referenciar campos diferentes de tablas diferentes que existan en la BD.

El LIKE me permite referenciar un tipo de dato transparente (dato que se encuentra definido en la tabla), en el caso que yo deseara definir un tipo de dato de un campo de una tabla interna debera tipear: CARRID(3) type c,

Para crear una tabla intermedia que contenga todos los campos de la tabla de la base de datos se utiliza: DATA it_sbook type TABLE OF SBOOK WITH HEADER LINE.

Para definir una cabecera se utiliza: DATA wa_sbook LIKE SBOOK.

Para realizar una consulta y completar la tabla interna se utiliza:

SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate = xxx. SELECT carrid connid fldate class FROM sbook INTO CORRESPONDING FIELDS OF it_sbook WHERE fldate = xxx.

Manejo sobre el editor


/n Nombre Transaccin => Permite cambiar la transaccin. /h F8 => Activa el debag. /o => Realizar un nuevo modo. Pg. 10 de 48

Accenture Curso ABAP


Para comentar se utiliza CTRL+SHIFT+<. Para descomentar se utiliza CTRL+SHIF+>.

Prog. 12 Creacin de Tablas Internas (Utiliza PARAMETER)


*------Creacion tabla interna-------* REPORT zea08_a05_002_pruebatablas. PARAMETER p_select TYPE sy-datum. DATA d_selec TYPE sy-datum. d_selec = p_select. TABLES: sbook. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook. SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate = d_selec. IF SY-SUBRC = 0. WRITE 'Se logro el acceso a la tabla'. WRITE: 'CARRID: ', it_sbook-carrid, / , 'CONNID: ', it_sbook-connid, / , 'FLDATE: ', it_sbook-fldate, / , 'CLASS: ', it_sbook-class. ELSE. WRITE 'No se completo el acceso a la tabla'. ENDIF.

Ingreso de datos por pantalla


Para ingresar por la pantalla de seleccin un rango de valores desde hasta para que se busquen en la tabla del ejercicio anterior, se utiliza: En este caso debe tenerse en cuenta que antes del parametro de seleccin debe definirse la tabla con TABLES sbook. Al momento de realizar la consulta en los campos del WHERE debe considerarse que se comparar con el IN, para ver si en el rango de valores ingresado por la pantalla de seleccin la consulta me devuelve algo. SELECT-OPTIONS s_fldate FOR sbook-fldate.

Prog. 13 Creacin de Tablas Internas (Utiliza SELECT-OPTIONS)


*------Creacion tabla interna-------* REPORT zea08_a05_002_pruebatablas. TABLES: sbook. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook. SELECT-OPTIONS s_fldate FOR sbook-fldate. SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate IN s_fldate. IF sy-subrc = 0. WRITE 'Se logro el acceso a la tabla'. WRITE: 'CARRID: ', it_sbook-carrid, / , 'CONNID: ', it_sbook-connid, / , 'FLDATE: ', it_sbook-fldate, / , 'CLASS: ', it_sbook-class. ELSE. WRITE 'No se completo el acceso a la tabla'. ENDIF.

Pg. 11 de 48

Accenture Curso ABAP Programacin de ciclo LOOP (Solo para Tablas)


La sentencia LOOP se encuentra integrada por: LOOP AT xxxx. ------ENDLOOP. Se pueden anidar varios ciclos LOOP pero no es recomendable anidar mas de tres de ellos porque baja la Performance.

Prog. 14 Creacin de Tablas Internas (Utiliza LOOP)


*------Creacion tabla interna-------* REPORT zea08_a05_002_pruebatablas. TABLES: sbook. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook. SELECT-OPTIONS s_fldate FOR sbook-fldate. SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate IN s_fldate. IF sy-subrc = 0. WRITE: 'Se logro el acceso a la tabla'. LOOP AT it_sbook. WRITE: /, 'CARRID: ', it_sbook-carrid,'CONNID: ', it_sbook-connid, 'FLDATE: ', it_sbook-fldate,'CLASS: ', it_sbook-class, /. ENDLOOP. ELSE. WRITE 'No se completo el acceso a la tabla'. ENDIF.

Mantener la Limpieza de la Tabla


Se debe matener la limpieza de la tabla, de esta manera me aseguro que la lectura de todos los registros sea la correcta, (si existiera un registro con un campo en blanco aparecera en ese campo el contenido del registro anteriormente leido al registro con campo en blanco). Para realizar la limpieza de la cabecera de la tabla se utiliza: CLEAR it_sbook.

Para realizar la limpieza de toda la tabla interna resultante de la consulta se utiliza: (No efectua el borrado de la cabecera) REFRESH it_sbook.

Prog. 15 Creacin de Tablas Internas (Utiliza CLEAR - REFRESH)


*------Creacion tabla interna-------* REPORT zea08_a05_002_pruebatablas. TABLES: sbook. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid,

Pg. 12 de 48

Accenture Curso ABAP


fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook. SELECT-OPTIONS s_fldate FOR sbook-fldate. SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate IN s_fldate. IF sy-subrc = 0. WRITE: 'Se logro el acceso a la tabla'. LOOP AT it_sbook. WRITE: /, 'CARRID: ', it_sbook-carrid,'CONNID: ', it_sbook-connid, 'FLDATE: ', it_sbook-fldate,'CLASS: ', it_sbook-class, /. CLEAR it_sbook. ENDLOOP. REFRESH it_sbook. ELSE. WRITE 'No se completo el acceso a la tabla'. ENDIF.

Copiado de Tablas Internas


Para copiar tablas internas debo proceder a definirlas por medio del DATE. Las dos tablas internas deben tener el mismo tipo y estructura, para luego proceder al copiado del contenido de una de ellas por medio de: it_sbook2[] = it_sbook[]

Prog. 16 Creacin de Tablas Internas (Utiliza Copiado Tablas)


*------Creacion tabla interna-------* REPORT zea08_a05_002_pruebatablas. TABLES: sbook. DATA: BEGIN OF it_sbook1 OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook1. DATA: BEGIN OF it_sbook2 OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook2. SELECT-OPTIONS s_fldate FOR sbook-fldate. SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook1 WHERE fldate IN s_fldate. it_sbook2[] = it_sbook1[]. IF sy-subrc = 0. WRITE: 'Se logro el acceso a la tabla'. LOOP AT it_sbook2. WRITE: 'IT_SBOOK2:', /, 'CARRID: ', it_sbook2-carrid,'CONNID: ', it_sbook2-connid, 'FLDATE: ', it_sbook2-fldate,'CLASS: ', it_sbook2-class, /. ENDLOOP. ELSE. WRITE 'No se completo el acceso a la tabla'. ENDIF.

Pg. 13 de 48

Accenture Curso ABAP Ordenar los datos de una Tabla Interna


Para ordenar los datos que se tienen en una tabla interna se utiliza: SORT it_sbook BY (campos a ordenar)

Prog. 17 Creacin de Tablas Internas (Utiliza SORT)


*------Creacion tabla interna-------* REPORT ZEA08_A05_002_ORDENARTABLAS . TABLES: sbook. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, class LIKE sbook-class, END OF it_sbook. SELECT-OPTIONS s_fldate FOR sbook-fldate. SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate IN s_fldate. SORT it_sbook BY carrid. IF sy-subrc = 0. WRITE: 'Se logro el acceso a la tabla'. LOOP AT it_sbook. WRITE: /, 'CARRID: ', it_sbook-carrid,'CONNID: ', it_sbook-connid, 'FLDATE: ', it_sbook-fldate,'CLASS: ', it_sbook-class, /. ENDLOOP. ELSE. WRITE 'No se completo el acceso a la tabla'. ENDIF.

Ejercitacin
Aplicacin que recibe por la pantalla de seleccin de manera obligatoria un CARRID y de manera no obligatoria un rango de fechas a buscar . Realiza esta consulta sobre la base de datos SBOOK y se obtiene el resultado.
REPORT ZEA08_A05_004_EJERCICIOTABLAS1. PARAMETER p_carrid(2) type c OBLIGATORY. DATA: d_carrid(2) type c. d_carrid = p_carrid. TABLES: sbook. SELECT-OPTIONS s_fldate FOR sbook-fldate. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, bookid LIKE sbook-bookid, customid LIKE sbook-customid, custtype LIKE sbook-custtype, smoker LIKE sbook-smoker, class LIKE sbook-class,

Pg. 14 de 48

Accenture Curso ABAP


END OF it_sbook. SELECT carrid connid fldate bookid customid custtype smoker class FROM sbook INTO TABLE it_sbook WHERE carrid = d_carrid AND fldate IN s_fldate. IF SY-SUBRC = 0. WRITE: 'Acceso OK', /. LOOP AT it_sbook. WRITE: 'CARRID: ', it_sbook-carrid, 'CONNID: ', it_sbook-connid, 'FLDATE: ', it_sbook-fldate, 'BOOKID: ', it_sbook-bookid, 'CUSTOMID: ', it_sbook-customid, 'CUSTTYPE: ', it_sbook-custtype, 'SMOKER: ', it_sbook-smoker, 'CLASS: ', it_sbook-class, /. CLEAR it_sbook. ENDLOOP. REFRESH it_sbook. ELSE. WRITE 'Sin Acceso'. ENDIF.

Responsable: Sergio Duran - [email protected]

Modificacin de Registros de la Tabla Interna


Por medio del MODIFY la modificacin de la cabecera de la tabla modifica toda la tabla intena. Ejemplo: SELECT burkrs kunnr werks INTO TABLE t_vbak FROM vbak WHERE bukrs = p_burkrs AND kunnr IN s_kumur. LOOP AT t_vbak WHERE burrs = 2200. t_vak-werks = A. MODIFY t_vabk. ENDLOOP. Un LOOP condicionado con un WHERE entra solamente cuando esta condicin se cumple.

Agregar un Registro a una Tabla Interna


Para agregar un registro en la ultima posicin de una tabla interna utilizo el APPEND, este comando agrega el registro a la cabecera de la tabla para luego agregarlo en la tabla interna. Ejemplo: REFRESH t_tabla. CLEAR t_tabla. t_tabla-campo1 = AA. t_tabla-campo2 = 123. APPEND t_tabla.

Borrar un Registro de una Tabla Interna


Para borrar registros de una tabla interna se utiliza el DELETE, este comando borra el registro encontrado en la cabecera. Ejemplo: Pg. 15 de 48

Accenture Curso ABAP


LOOP AT t_vbak WHERE bukrs = 2200. DELETE t_vbak. ENDLOOP. Existe una variacin del DELETE: DELETE t_vbak WHERE bukrs = 2200.

Insercin de un registro en una Tabla Interna


Para insertar un registro en una tabla interna se utiliza INSERT, el registro es agregado a la cabecera de la tabla y desde alli de acuerdo a la posicin indicada a la tabla interna. Ejemplo: CLEAR t_tabla. t_tabla-campo = A. INSERT t_tabla INDEX 3.

Creacin de un TIPO TABLA


Para definir una estructura TIPO TABLA y luego inicializar una variable de ese tipo se utiliza: TYPE: BEGIN OF e_tabla. campo1 LIKE vbak-bukrs. campo2 LIKE vbak-kunnr. END OF e_tabla. DATA: t_tabla TYPE TABLE OF e_tabla WITH HEADER LINE. Si no se llegara a agregar el WITH HEADER LINE la tabla creada no tendra cabecera y no se podra acceder a ella.

Otra manera de crear una tabla intermedia es creando una WORK AREA.

Emisin de Mensajes al Usuario


Se realiza con MESSAGE por medio del tipo de mensaje, que puede ser: E: Error. W: Warning. I: Information. S: Status. X: Terminal A: Abort

Ejemplo: MESSAGE tipo numero (clasedemensaje). MESSAGE E001(00). MESSAGE E001(00) WITH p_bukrs. MESSAGE I002(zea03) WITH text-001. Lo que se incluya en text-001 se copiara en los campos & de la tabla de mensajes Por medio de la transaccin SE91 se manejan los numeros de mensaje.

Pg. 16 de 48

Accenture Curso ABAP

Leer una Tabla Interna


Para leer de una tabla interna un determinado registro se utiliza el READ TABLE. Ejemplo: READ TABLE t_tabla WITH KEY campo1 = C. IF SY-SUBRC IS INITIAL. t_tabla campo2 = 123. MODIFY t_tabla. ENDIF. La restriccin del READ TABLE es que siempre la condicin debe preguntar por una IGUALDAD. Si llegasen a haber dos registros que se corresponden con la condicin del read solo recupera el primero de ellos.

13/05/05
Responsable: Alberto

Resolucin del Ejercicio ACP en ABAP


Redefiniciones: Pantallas de seleccin: o Corrid Parameter sflight = Codigo aerolinea. o Corrid Select-Options sflight = Codigo vuelo. o Fldate Select-Options sflight = Fecha vuelo. Modificacin de las tablas por: o Tabla vuelos sflight o Tabla reservar sbook

Para realizar una consulta en una tabla por medio del contenido de una consulta previa se utiliza el FOR ALL ENTRIES (emula al INNER JOIN).

REPORT ZEA08_A05_005_EJ_ACP_EN_ABAP. ****************************************** *PANTALLA DE SELECCION ****************************************** PARAMETER p_carrid(2) type c OBLIGATORY. DATA: d_carrid(2) type c. d_carrid = p_carrid. TABLES: sbook, sflight. SELECT-OPTIONS: s_connid FOR sflight-connid,s_fldate FOR sflight-fldate. ****************************************** *TABLAS INTERNAS ****************************************** DATA: BEGIN OF it_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, price LIKE sflight-price, END OF it_sflight. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid,

Pg. 17 de 48

Accenture Curso ABAP


connid LIKE sbook-connid, fldate LIKE sbook-fldate, bookid LIKE sbook-bookid, customid LIKE sbook-customid, custtype LIKE sbook-custtype, smoker LIKE sbook-smoker, END OF it_sbook. DATA: BEGIN OF it_reporte OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, price LIKE sflight-price, bookid LIKE sbook-bookid, customid LIKE sbook-customid, custtype LIKE sbook-custtype, smoker LIKE sbook-smoker, END OF it_reporte. ***************************************** *Consultas ***************************************** SELECT carrid connid fldate price FROM sflight INTO TABLE it_sflight WHERE carrid = d_carrid AND connid IN s_connid AND fldate IN s_fldate. IF SY-SUBRC = 0. SELECT carrid connid fldate bookid customid custtype smoker FROM sbook INTO TABLE it_sbook FOR ALL ENTRIES IN it_sflight WHERE carrid = it_sflight-carrid AND connid = it_sflight-connid AND fldate = it_sflight-fldate. ****************************************** *Reportes ****************************************** IF SY-SUBRC = 0. WRITE: 'Acceso OK, consultas realizadas: ', /. LOOP AT it_sflight. LOOP AT it_sbook WHERE connid = it_sflight-connid AND carrid = it_sflight-carrid AND fldate = it_sflight-fldate. it_reporte-carrid = it_sflight-carrid. it_reporte-connid = it_sflight-connid. it_reporte-fldate = it_sflight-fldate. it_reporte-price = it_sflight-price. it_reporte-bookid = it_sbook-bookid. it_reporte-customid = it_sbook-customid. it_reporte-custtype = it_sbook-custtype. it_reporte-smoker = it_sbook-smoker. APPEND it_reporte. CLEAR it_reporte. CLEAR it_sbook. ENDLOOP. CLEAR it_sflight. ENDLOOP. LOOP AT it_reporte. WRITE: 'CARRID:', it_reporte-carrid, 'CONNID:', it_reporte-connid, ' FLDATE:', it_reporte-fldate, 'BOOKID:', it_reporte-bookid, ' CUSTOMID:', it_reporte-customid, ' CUSTTYPE:',it_reporte-custtype, ' SMOKER:', it_reporte-smoker, /, / . CLEAR it_reporte. ENDLOOP. REFRESH it_reporte. ELSEIF SY-SUBRC = 4. WRITE: 'Error en la seleccion de datos de la base de datos SBOOK'. ELSE. WRITE: 'Error el acceso a la base de datos SBOOK'.

Pg. 18 de 48

Accenture Curso ABAP


ENDIF. ELSEIF SY-SUBRC = 4. WRITE: 'Error en la seleccion de datos de la base de datos SFLIGHT'. ELSE. WRITE: 'Error el acceso a la base de datos SFLIGHT'. ENDIF.

16/05/05
Responsable: Melisa Fredes [email protected]

Transacciones
SE38: Transaccin que ejecuta el editor de programas. SE10: Transaccin de la ordenes de transporte. SE11: Transaccin de seleccin de Datos (Diccionario de Datos). SE37: Transaccin que muestra todos los modulos de funcin. (Para buscar una funcin se debe introducir z* + F4 y seleccionarla de la lista de funciones.) SE80: Transaccin que me brinda una vista de mi programa y sus objetos asociados.

Mdulos de Programa
En ABAP existen modulos de programacin que simplifican la declaracin, seleccin e impresin de datos. Para la inclusin de modulos se utiliza: Para proceder a la creacin del include se realiza doble click sobre el nombre del programa. El include TOP contiene la toda definicin de los datos (declaracin de variables que se van a utilizar). El include F1 contiene toda la logica del programa.

INCLUDE (nombre del programa)_TOP. INCLUDE (nombre del programa)_F1.

En el programa principal se establecen las llamadas a los diferentes include de la siguiente manera: Para la creacin de f_aero (Form = Subrutina) se realiza doble click sobre esta palabra y se prodede a la creacin de la subrutina dentro del include F1. All se colocar toda la lgica de subrutina. En el programa principal se reconocen eventos, donde por cada bloque de eventos el programa realiza una accin. Asi el programa principal queda divido en modulos que son ejecutados mediante los eventos. Mdulos del Programa Principal: Programa Principal Includes Pantalla Seleccin Procesamiento de Datos Impresiones Algunos ejemplos de eventos son:

PERFORM f_aero. la

Pg. 19 de 48

Accenture Curso ABAP


INITIALIZATION. s_carrid = LH. Inicializa en la pantalla de seleccin el carrid con LH. Se ejecuta al presionar el primer ejecutar. AT SELECTION-SCREEN. Valida todos los campos ingresados en la pantalla de seleccin. Luego de este evento se colocan todas las validaciones de campos de la pantalla. START-OF-SELECTION. Inicia el procesamiento de datos. Se ejecuta al presionar el segundo ejecutar. Luego de este evento se coloca la lgica de procesamiento de datos. END-OF-SELECTION. Indica el inicio del modulo de impresiones del programa principal y el fin del procesamiento de datos. Luego de este evento se coloca toda la lgica de impresin. La resolucin del ejercicio ACP en ABAP modularizada estaria integrada por: PROGRAMA PRINCIPAL
REPORT ZEA08_A05_006_EJ_ACP . ****************************************** *INCLUCION DE MODULOS ****************************************** INCLUDE ZEA08_A05_006_EJ_ACP_TOP. INCLUDE ZEA08_A05_006_EJ_ACP_F1. ****************************************** *EVENTOS ****************************************** ****************************************** *Pantalla de Seleccin ****************************************** INITIALIZATION. p_carrid = 'LH'. ****************************************** *Procesamiento Datos ****************************************** START-OF-SELECTION. PERFORM f_aerolinea. PERFORM f_append. ****************************************** *Impresiones ****************************************** END-OF-SELECTION. PERFORM f_writereporte.

INCLUDE _TOP

*----------------------------------------------------------------------* * INCLUDE ZEA08_A05_006_EJ_ACP_TOP * *----------------------------------------------------------------------* ****************************************** *PANTALLA DE SELECCION ****************************************** PARAMETER p_carrid(2) type c OBLIGATORY. DATA: d_carrid(2) type c. d_carrid = p_carrid. TABLES: sbook, sflight. SELECT-OPTIONS: s_connid FOR sflight-connid,s_fldate FOR sflight-fldate. ****************************************** *TABLAS INTERNAS ****************************************** DATA: BEGIN OF it_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, price LIKE sflight-price, END OF it_sflight. DATA: BEGIN OF it_sbook OCCURS 0,

Pg. 20 de 48

Accenture Curso ABAP


carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, bookid LIKE sbook-bookid, customid LIKE sbook-customid, custtype LIKE sbook-custtype, smoker LIKE sbook-smoker, END OF it_sbook. DATA: BEGIN OF it_reporte OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, price LIKE sflight-price, bookid LIKE sbook-bookid, customid LIKE sbook-customid, custtype LIKE sbook-custtype, smoker LIKE sbook-smoker, END OF it_reporte.

INCLUDE _F1
*----------------------------------------------------------------------* * INCLUDE ZEA08_A05_006_EJ_ACP_F1 * *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form f_aerolinea *&---------------------------------------------------------------------* form f_aerolinea. SELECT carrid connid fldate price FROM sflight INTO TABLE it_sflight WHERE carrid = d_carrid AND connid IN s_connid AND fldate IN s_fldate. IF SY-SUBRC = 0. SELECT carrid connid fldate bookid customid custtype smoker FROM sbook INTO TABLE it_sbook FOR ALL ENTRIES IN it_sflight WHERE carrid = it_sflight-carrid AND connid = it_sflight-connid AND fldate = it_sflight-fldate. ELSEIF SY-SUBRC = 4. WRITE: 'Error en la seleccion de datos de la base de datos SFLIGHT'. ELSE. WRITE: 'Error el acceso a la base de datos SFLIGHT'. ENDIF. endform. " f_aerolinea *&---------------------------------------------------------------------* *& Form f_append *&---------------------------------------------------------------------* form f_append. IF SY-SUBRC = 0. LOOP AT it_sflight. LOOP AT it_sbook WHERE connid = it_sflight-connid AND carrid = it_sflight-carrid AND fldate = it_sflight-fldate. it_reporte-carrid = it_sflight-carrid. it_reporte-connid = it_sflight-connid. it_reporte-fldate = it_sflight-fldate. it_reporte-price = it_sflight-price. it_reporte-bookid = it_sbook-bookid. it_reporte-customid = it_sbook-customid. it_reporte-custtype = it_sbook-custtype. it_reporte-smoker = it_sbook-smoker. APPEND it_reporte. CLEAR it_reporte. CLEAR it_sbook. ENDLOOP. CLEAR it_sflight.

Pg. 21 de 48

Accenture Curso ABAP


ENDLOOP. ELSEIF SY-SUBRC = 4. WRITE: 'Error en la seleccion de datos de la base de datos SBOOK'. ELSE. WRITE: 'Error el acceso a la base de datos SBOOK'. ENDIF. endform. " f_append *&---------------------------------------------------------------------* *& Form f_writereporte *&---------------------------------------------------------------------* form f_writereporte. LOOP AT it_reporte. WRITE: 'CARRID:', it_reporte-carrid, 'CONNID:', it_reporte-connid, ' FLDATE:', it_reporte-fldate, 'BOOKID:', it_reporte-bookid, ' CUSTOMID:', it_reporte-customid, ' CUSTTYPE:',it_reporte-custtype, ' SMOKER:', it_reporte-smoker, /, / . CLEAR it_reporte. ENDLOOP. REFRESH it_reporte. endform. " f_writereporte

Evitar Hardcodeo
Para evitar el hardcordeo se colocan las variables a implimir en los WRITE, de la siguiente manera: WRITE text-001. Para luego definir el valor del text-001 por medio del dobre click sobre su nombre. A su vez este valor de text-001 se puede traducir a diferentes idiomas mediante la opcin de menu GO TO / TRANSLATION.

Concatenar Strings
Para concatenar strings se utiliza la sentencia CONCATENATE. Ejemplo: v_salida(255) type c. CONCATENATE text-001 it_cuenta-saldo text-002 INTO v_salida SEPARATED BY SPACE. *SEPARATED BY .. *SEPARATED BY :.

Responsable: Jose Luis [email protected]

17/05/05
Responsable: Ana Paula Barbieri [email protected] Mariano Paola

Diccionario de Datos
El diccionario ABAP contiene las definiciones de campo almacenadas en el sistema SAP estndar. Mediante la verificacin en el nivel de aplicacin R/3 se garantiza la consistencia de los datos, antes de que stos se transfieran a la base de datos. Para ir al diccionario de Datos vamos con la Trx. SE11, Que es una trx? Pg. 22 de 48

Accenture Curso ABAP


Una transaccin R/3 es una sucesin de pasos de dilogo empresarialmente consistentes y conectados de forma lgica. En el diccionario de datos se puede definir: Tablas Elementos de datos Dominios Estructuras Se puede decir que: Tabla cuando se crea se debe especificar el tamao y clase de datos. Elemento de datos son las propiedades semnticas, sirve para especificar el tipo de datos que va a ir a la tabla. Siempre el elemento de datos tiene asociado un dominio. Dominio propiedades datos. son las fsicas de los

Estructuras: son como un plantilla. Las estructuras no contienen registros

Ej: Dominio

Pg. 23 de 48

Accenture Curso ABAP

Especificaciones Tcnicas de una tabla Se encuentra en el men PASAR A o en la barra el botn Clase de dato: Indica el tipo de dato que contendr la tabla. Ellos pueden ser: 1. Datos Maestros: la informacin no vara en el tiempo. Ej: clientes, Proveedores, etc. 2. Datos Transaccionales: los datos cambian en el tiempo. Ej: asientos contables, Mov. de stock, etc. 3. Datos organizacionales: son datos tipo parmetros. Se modifican una sola vez y nada ms. Ej: tipo de proveedor. 4. Datos del Sistema: son los datos propios del sistema, ya estn creados. Categora del tamao: especifica la cantidad de registros que va a tener la tabla.

Entrega y Actualizacin de una tabla Dicha solapa se encuentra cuando se crea la tabla, el cual tiene 2 opciones: Clase de Entrega y Browser datos/Actual. La clase de entrega indica el tipo de tabla que es. Y el Browser datos/Actual.vist puede aceptar los siguientes valores: Visualizacin/Actualizacin no permitida La actualizacin y visualizacin para esta tabla/vista no son posibles en la transaccin SE16. La transaccin SE54 deniega la generacin de un dilogo de actualizacin, de manera que ya no es posible llamar automticamente las transacciones SM30/SM34 para esta tabla/vista. Visualizacin/Actualizacin permitida con restricciones La transaccin SE16 permite la visualizacin para esta tabla/vista pero no la actualizacin. La generacin de un dilogo de actualizacin para esta tabla/vista es posible mediante la transaccin SE54. La transaccin SM30 deniega la actualizacin y la visualizacin para esta Visualizacin/Actualizacin permitida La transaccin SE16 permite la actualizacin y visualizacin para La transaccin SE54 permite la generacin de un dilogo de actualizacin para esta tabla/vista. La transaccin SM30 permite la visualizacin y actualizacin para esta esta

tabla/vista. tabla/vista. tabla/vista.

Pg. 24 de 48

Accenture Curso ABAP


Creacin Elemento de dato y dominio Una vez que se coloca el elemento de dato en la tabla, se hace doble clic. En la solapa Tipo de datos, se creara el dominio para ello en la opcin Dominio se coloca uno por ejemplo Znro y se hace doble clic. Ahora estamos en la creacin del dominio para ello, se deber hacer una especificacin del mismo en Descripcin breve, luego en la solapa Definicin se deber completar con el tipo de dato. Ej.: Tipo de datos CHAR Ctd.posiciones 20 Decimales 0 Longitud salida Rutina conv. 20

Si el campo tiene que tener valores predefinidos, para ello se deber ir a la solapa mbito Val. Y completar con los valores correspondientes. ndices Para la creacin de ndices se deber hacer un clic en el botn y se deber completar la identificacin del ndice, que debe empezar con z, luego la Descripcin Breve y el/los campos que van hacer ndices. Relacin de tablas Posicionarse en el campo que genera la relacin con la otra tabla y hacer un clic en el cuadradito que esta antes del campo, de esta forma se va a pintar el rengln. Luego presionar el icono . Ah se deber completar la tabla a relacionar y el campo Para poder ingresar los datos a una tabla o realizar una modificacin se deber crear una vista de la misma. Importante: Cuando se realizan cambios en la tabla hay que ir a la Trx. SE14 para que refleje las modificaciones Comandos para ser utilizados en los programas Insert: Permite ingresar registros nuevos en la tabla Sintaxis: 1. INSERT INTO dbtab VALUES wa. INSERT INTO (dbtabname) VALUES wa. INSERT dbtab FROM wa. INSERT (dbtabname) FROM wa. 2. INSERT dbtab FROM TABLE itab INSERT (dbtabname) FROM TABLE itab 3. INSERT dbtab. oder INSERT *dbtab. Ejemplo: DATA: wa TYPE scustom. wa-id = '12400177'. wa-nombre = 'Pedro'. wa-codigo = '69542'. wa-city = 'Heidelberg'. wa-custtype = 'P'. wa-discount = '003'. wa-telephone = '0788-4889'. INSERT INTO scustom VALUES wa.

Pg. 25 de 48

Accenture Curso ABAP


Update: Permite Ingesar y modificar registros. Sintaxis: 1. UPDATE UPDATE 2. UPDATE UPDATE 3. UPDATE UPDATE 4. UPDATE UPDATE Ejemplo: UPDATE sflight SET seatsocc = WHERE carrid = connid = fldate = seatsocc + 3 'LH' AND '0400' AND '20010228'. dbtab (dbtabname) dbtab (dbtabname) dbtab (dbtabname) dbtab. *dbtab. SET f1 ... SET f1 ... FROM wa. FROM wa. FROM TABLE FROM TABLE fn. fn. itab. itab.

Modify: Permite modificar registros. Sintaxis: 1. MODIFY dbtab FROM wa. MODIFY (dbtabname) FROM wa. 2. MODIFY dbtab FROM TABLE itab. MODIFY (dbtabname) FROM TABLE itab. 3. MODIFY dbtab. MODIFY *dbtab. 4. MODIFY dbtab VERSION vers. MODIFY *dbtab VERSION vers. Ejemplo: DATA: wa TYPE scustom. wa-id = '12400177'. wa-name = 'Robinson'. wa-postcode = '69542'. wa-city = 'Heidelberg'. wa-custtype = 'P'. wa-discount = '003'. wa-telephone = '06201/44889'. MODIFY scustom FROM wa. Delete: Permite borrar registros. Sintaxis: 1. DELETE FROM dbtab. DELETE FROM (dbtabname). 2. DELETE dbtab FROM wa. DELETE (dbtabname) FROM wa. 3. DELETE dbtab FROM TABLE itab. DELETE (dbtabname) FROM TABLE itab. 4. DELETE dbtab. DELETE *dbtab. 5. DELETE dbtab VERSION vers. DELETE *dbtab VERSION vers.

Pg. 26 de 48

Accenture Curso ABAP


Ejemplo: DELETE FROM SBOOK WHERE CARRID = 'LH' AND CONNID = '0400' AND FLDATE = '20010228'. Ejercicio Creacin de Tabla Ir a la Trx. SE11, luego se ingresa el nombre de la tabla (ZTSOCIOS) y presionar CREAR, se deber completar una especificacin de la tabla en Descripcin de Breve, luego la Clase de Entrega que tendr A y por ltimo Browser datos/Actual. La tabla ZTSocios deber tener los Siguientes Campos: CAMPOS Elem de dato Tipo de dato Mandt MANDT NroSocio (clave) Znro Znro Apellido Zapellido Char Nombre Znombre Znombre Direccion Zdireccion Char

Long

30 20 40

Dominio: Znro es numrico de 4 posiciones Znombre es un char de 20 y los valores que tiene son: Lucas, Natalia, Federico, Carla. Cualquier cambio que se realice sobre una tabla se tiene que actualizar desde la SE14

Vista de Actualizacin: Permite el ingreso de datos a la tabla. - Vista de Actualizacin (Para crear vistas de actualizacin, SE80) Grupo de Funcin - Crear Funcin (Para crear grupo, SE80)

RESUMEN Partimos de la SE11 donde se crea la tabla, debe estar activo el DOMINIO y el ELEMENTO DE DATO, por ltimo se debe activa la TABLA. Si modifico la tabla me dirijo a la SE14 para actualizarla. Para crear la vista de actualizacin, a traves de la SE11, dentro de UTILIDADES/Generador de actualizacin vista, se agrega el grupo de funcin (que debe ser igual al nombre de la tabla), se setea la propiedad nmero de imagen y se crea la vista de actualizacin. Por medio de SM30 actualizo la tabla y puedo introducir registros dentro de la tabla por medio de Entradas Nuevas.

Estructuras de datos: Se crean mediante la transaccin SE11, seleccionando la opcin TIPO DE DATOS/ESTRUCTURA. Estas estructuras se utilizan en las tablas internas. Para incluir la estructura en el programa, la misma se debe incluir por medio de un include, para luego poder utilizar los campos de la misma. INCLUDE STRUCTURE (nombreestructura).

Si se tiene la variable V_DESC = CASA. Y se quiere obtener la letra S se coloca. V_R = V_DESC+2 (1). Significa que me salteo dos letras y tomo una letra en la posicion que me encuentro. Pg. 27 de 48

Accenture Curso ABAP


Programacin de Recuadros
SELECTION-SCREEN BEGIN OF BLOCK (nombre) WITH FRAME TITLE (text-001). ----SELECTION-SCREEN END OF BLOCK (nombre).

18/05/05
Responsable: Ana Paula Barbieri [email protected] Mariano Paola Diccionario de Datos (Continuacin) - Ayuda para bsqueda
Dentro de la transaccin SE11 la ayuda para busqueda se encuentra en Ayuda para Busqueda, se ingresa AANLI y luego Visualizar. En la definicin de ayuda para busqueda, en el metodo de seleccion se pueden colocar tablas o vistas y luego se completan los campos de ayuda. La ayuda para busqueda se utiliza en los Parameters de la siguiente forma: PARAMETERS: p_bukrs LIKE t001-bukrs MATCHCODE OBJECT (nombre de la ayuda para busqueda = AANLI).

Corte de Control
En la declaracin de la tabla interna el campo por medio del que se va a hacer el campo de control debe declararse primero. SORT t_tabla BY (campo corte) LOOP t_tabla AT NEW (campo corte) ----ENDAT. ----AT END OF (campo corte) ----ENDAT. ENDLOOP. El AT NEW se utiliza al principio (primera ocurrencia del campo por el que se hace el corte) y el AT END OF funciona en la ltima ocurrencia del campo de corte de control. AT NEW cada vez que hay un cambio en el campo entra en el ciclo. AT END se encarga de verificar que el contenido del bloque que le sigue al campo sea diferente al que se esta evaluando, en ese campo entra a la sentencia. Reglas: En el AT NEW/END de un campo se puede usar el valor de ese campo y cualquiera que este a la izquierda. Entra en el AT NEW/END de un campo si cambio ese campo o alguno que se encuentre a su izquierda. Los campos que se situan a la izquierda son jerarquicamente mas importantes que el campo por el cual se establece el AT NEW/END.

Ejercitacin AT NEW / AT END.

REPORT ZEA08_A05_008_ATNEWATEND. *********************************** INCLUDE ZEA08_A05_008_ATNEWATEND_TOP. INCLUDE ZEA08_A05_008_ATNEWATEND_F1. *********************************** START-OF-SELECTION. it_fac-fact = 1. it_fac-cli = 'a'. it_fac-imp = 10. APPEND it_fac. it_fac-fact = 2. it_fac-cli = 'a'.

Pg. 28 de 48

Accenture Curso ABAP


it_fac-imp = 20. APPEND it_fac. it_fac-fact = 3. it_fac-cli = 'b'. it_fac-imp = 40. APPEND it_fac. ********************************** LOOP AT it_fac. AT NEW cli. d_total = 0. ENDAT. d_total = d_total + it_fac-imp. AT END OF cli. WRITE: 'CLIENTE: ', it_fac-cli, ' IMPORTE: ', d_total, /. ENDAT. ENDLOOP. *----------------------------------------------------------------------* * INCLUDE ZEA08_A05_008_ATNEWATEND_TOP *----------------------------------------------------------------------* DATA: d_fact(1) type n, d_cli(1) type c, d_imp(4) type n, d_total(4) type n. DATA: BEGIN OF it_fac OCCURS 0, cli LIKE d_cli, fact LIKE d_fact, imp LIKE d_imp, END OF it_fac.

Existen a su vez el AT FIRST y el AT LAST que tiene el mismo funcionamiento que las sentencias vistas.

Ejercitacin Diccionario de Datos.


REPORT ZEA08_A05_007_DICDATOS. ****************************************** *INCLUCION DE MODULOS ****************************************** INCLUDE ZEA08_A05_007_DICDATOS_TOP. INCLUDE ZEA08_A05_007_DICDATOS_F1. ****************************************** *EVENTOS ****************************************** ****************************************** *Pantalla de Seleccin ****************************************** AT SELECTION-SCREEN. d_mesl = s_cumple-LOW. d_mesh = s_cumple-HIGH. IF d_mesl < 1 OR d_mesl > 12 OR d_mesh < 1 OR d_mesh > 12. MESSAGE E001(zea03) WITH 'Mes Invalido'. ENDIF. ****************************************** *Procesamiento Datos ****************************************** START-OF-SELECTION. PERFORM f_consulta. IF SY-SUBRC = 0. WRITE: 'Consulta en ZEA08LC OK', /. LOOP AT it_cumple. d_mestabla = it_cumple-fechanac+4(2). IF d_mestabla < d_mesl OR d_mestabla > d_mesh. DELETE it_cumple. ENDIF.

Pg. 29 de 48

Accenture Curso ABAP


ENDLOOP. ELSEIF SY-SUBRC = 4. MESSAGE W001(zea03) WITH 'Consulta en ZEA08LC OK, sin datos'. ELSEIF SY-SUBRC = 8. MESSAGE W001(zea03) WITH 'Error en acceso a ZEA08LC'. ELSE. MESSAGE W001(zea03) WITH 'Error causa desconocida'. ENDIF. ****************************************** *Impresiones ****************************************** IF SY-SUBRC = 0. WRITE: 'NOMBRE', 20 'APELLIDO', 40 'DNI', 58 'FECHA CUMPLEAOS',/. LOOP AT it_cumple. WRITE: it_cumple-nombre, 20 it_cumple-apellido, 40 it_cumple-dni, 58 it_cumple-fechanac, /. ENDLOOP. LOOP AT it_cumple. IF it_cumple-fechanac+4(4) = '0901'. WRITE: /, /, 'Hoy es el cumpleaos de: ', it_cumple-nombre. ENDIF. ENDLOOP. ENDIF. *----------------------------------------------------------------------* * INCLUDE ZEA08_A05_007_DICDATOS_TOP * *----------------------------------------------------------------------* ****************************************** *DEFINICION DE VARIABLES ****************************************** DATA: d_mes(2) type c, d_mestabla(2) type c, d_mesl(2) type c, d_mesh(2) type c. ****************************************** *PANTALLA DE SELECCION ****************************************** TABLES: zea08lc. SELECTION-SCREEN BEGIN OF BLOCK b_001 WITH FRAME TITLE text-001. SELECT-OPTIONS: s_dni FOR zea08lc-dni, s_apel FOR zea08lc-apellido, s_cumple FOR d_mes. SELECTION-SCREEN END OF BLOCK b_001. ****************************************** *TABLAS INTERNAS ****************************************** DATA: BEGIN OF it_cumple OCCURS 0, dni LIKE zea08lc-dni, apellido LIKE zea08lc-apellido, nombre LIKE zea08lc-nombre, fechanac LIKE zea08lc-fechanac, END OF it_cumple. *----------------------------------------------------------------------* * INCLUDE ZEA08_A05_007_DICDATOS_F1 * *----------------------------------------------------------------------* ********************************************* *Form f_consulta ********************************************* FORM f_consulta. SELECT dni apellido nombre fechanac FROM zea08lc INTO TABLE it_cumple WHERE dni IN s_dni AND apellido in s_apel. ENDFORM.

Responsable: Fernando Calderon [email protected] - 5071-0353

19/05/05
Pg. 30 de 48

Accenture Curso ABAP


Responsable: Martin Girolamo [email protected]

Reportes
Creacin de CheckBox y RadioButton
Los checkbox/radiobutton pertenecen a la pantalla de seleccin y se definen por medio de un PARAMETER. Ejemplo: PARAMETER: p_carrid, p_check1 AS CHECKBOX DEFAULT X, p_radio1 RADIOBUTTON GROUP rad, p_radio2 RADIOBUTTON GROUP rad, El DEFAULT X indica que el elemento aparezca marcado en la pantalla de seleccin. El Radiobutton 1 aparece marcado por defecto debido a su utilizacin.

Eventos para Reportes


Al igual que existen eventos como START-OF-SELECTION, END-OF-SELECTION, existen eventos propios de los reportes como: TOP-OF-PAGE: Ejecuta apenas se inicia la cabecera del formulario.

Declaracin de Lineas Verticales y Horizontales para Reportes


Exiten dos variables del sistema que permite el trazado de lneas horizontales y verticales: SY-ULINE: Traza lineas horizontales. Si no se especifica un tamao de la lnea, la misma abarca toda la hoja. Ejemplo: WRITE 20 SY-ULINE. SY-VLINE: Traza lineas verticales, para hacer una tabla las lineas verticales se deben imprimir en el LOOP. Ejemplo: WRITE 20 SY-VLINE.

Para trazar lineas horizontales sin la variable del sistema incluida en una sentencia WRITE se coloca ULINE.

Fijacin del tamao del reporte


Para la realizacion de reportes se debe especificar el tamao de salida del mismo en la primera lnea del programa donde aparece el nombre del ejecutable. REPORT ZEA08_A05_007_DICDATOS LINE-SIZE valor NO STANDARD PAGE HEADING. LINE-SIZE establece el valor del largo de la hora desde el extremo izquierdo al derecho. NO STANDARD PAGE HEADING define una hoja estndar.

Write con Posicionamiento de los Valores a Imprimir


Se puede utilizar el WRITE conjuntamente con la sentencia AT para posicionar el valor a mostrar. Ejemplo: WRITE: AT 5, it_datos-connid.

Impresin con color de una lnea determinada


Para imprimir una lnea en un color determinado utilizamos: Pg. 31 de 48

Accenture Curso ABAP


El FORMAT COLOR OFF finaliza la impresin de lineas en color. El campo INTENSIFIED intensifica el color que se muestra, no es un campo obligatorio y si se coloca en la sentencia ON debe colocarse en la sentencia OFF. FORMAT COLOR (valor/nombre color) INTENSIFIED ON (lineas a imprimir). FORMAT COLOR (valor/nombre color) OFF.

Saltos de una pgina a otra


Para crear una pgina nueva se utliza NEW-PAGE. La variable de sistema SY-PAGNO devuelve el nmero de pginas donde uno se encuentra situado. La variable de sistema SY-LINCT devuelve el nmero de lneas del reportel. La variable de sistema SY-LINSZ devuelve el SIZE de lnea. La variable de sistema SY-SROWS devuelve el nmero de lneas en la pgina mostrada. La variable de sistema SY-SCOLS devuelve el nmero de columnas en la pantalla mostrada. La variable de sistema SY-LINNO devuelve el nmero de lneas de la pagina mostrada

Tablas
INNER JOIN
Seleccin de elementos de dos tablas por medio de un campo comun. Para hacer la seleccin se utilizan alias. Ejemplo: SELECT sb~connid sb~carrid sf~price FROM sbook AS sb INNER JOIN sflight AS sf ON sb~connid = sf~connid AND sb~carrid = sf~carrid INTO TABLE it_tabla1 WHERE sb~connid = p_connid AND sf~price > 1000.

Responsable: Eduardo.

20/05/05
Responsable: Mariano

Eventos
INITIALIZATION: Se activa cuando se ejecuta el progama, se encarga de asignar valores a variables. AT SELECTION-SCREEN: Permite validar los datos ingresados en la pantalla de seleccin. STAR-OF-SELECTION: Da inicio a la lgica del programa END-OF-SELECTION: Finaliza la lgica del programa y se encarga de enviar archivos al UNIX. No se debe mostrar consultas o resultados obtenidos. TOP-OF-PAGE: Al efectuar un WRITE, coloca un encabezado a la pantalla. END-OF-PAGE: Evento que se ejecuta al final de la pgina. AT LINE-SELECTION: Evento que se activa al hacer doble click sobre un elemento de la pantalla de reportes. Se utiliza para la activacin de otra pantalla por medio de la seleccin de un elemento. Para que funcione el activar otra pantalla, en el LOOP de la primera tabla que se muestra(primer reporte) se debe agregar HIDE: it_tabla. De esta manera el hide mantiene los datos de la lnea seleccionada para ejecutar una accin con ellos. Se puede colocar luego de AT LINE-SELECTION. WINDOWS x y. Y de esta manera los valores x e y determinaran los lmites de la nueva ventana que se activa.

Pg. 32 de 48

Accenture Curso ABAP

Tablas - Consultas
SELECT SINGLE: Cuando se realiza una consulta con la seguridad que se va a extraer de una tabla un unico dato se utiliza el SELECT SINGLE. SELECT SINGLE * FROM sflight WHERE id = X.

SELECT / SELECT END SELECT: Cuando se realiza una consulta que extraiga varios datos de una tabla se utiliza SELECT / SELECT END SELECT. SELECT id nro value INTO CORRESPONDING FIELDS OF TABLE t_tabla FROM sflight WHERE id = X. SELECT ENDSELECT.

INNER JOIN/ FOR ALL ENTRIES IN: Cuando se desea realizar una junta entre dos tablas por un campo en comn se utiliza FOR ALL ENTRIES IN emulando un INNER JOIN. SELECT id nro value INTO CORRESPONDING FIELDS OF TABLE t_tabla FROM sflight WHERE id = X. SELECT X INTO TABLE t_tabla FROM scarr FOR ALL ENTRIES IN campo = t_tabla-campo WHERE nto = 5.

SELECT X INTO TABLE t_tabla FROM scarr INNERJOIN sflight ON scarr~id = sfligh~id WHERE scarr~id = o.

COUNT/SUM/AVG: Las sentencias que se ejecutan en el SELECT son COUNT (contar), SUM (sumar), AVG (promedio). SELECT COUNT( * ) INTO v_total FROM scarr WHERE id = o. SELECT SUM( valor ) INTO v_sum FROM scarr. SELECT AVG( valor ) INTO v_prom FROM scarr.

DESCRIBE TABLE LINES: Cuenta las lneas de una tabla interna (cantidad de registros), de las siguiente manera:. DESCRIBE TABLE t_table LINES v_cantlineas. Pg. 33 de 48

Accenture Curso ABAP

INSERT / DELETE / UPDATE: Permiten la insercin, borrado y actualizacin de registros de las tablas. INSERT t_tabla INTO scarr. DELETE w_scarr FROM scarr. UPDATE TABLE SCARR WHERE id = w_carr_id.

Select-Options
El select-options tiene las opciones: SING, OPTION, LOW y HIGHT. La opcion SING puede contener I o E, si tuviera una I y luego se efectuara una consultas sobre ese select-options se tomaran todos los datos ingresados, si tuviera una E no se podra tomar todos los datos. El OPTION puede ser BT (betheen) que significa que se toman los datos intermedios a los colocados, EQ (equal) que significa que se toman los valores iguales a los ingresados, NE (not equal). Otras opciones son NO EXTENSION que elimina el campo hight del select-options y la opcion NO INTERVALS no permite la introduccin de intervalos. El select-options es un RANGES, este ranges funciona como una tabla interna, por lo tanto se puede hacer un LOOP AT sobre el. SELECT-OPTIONS s_campo FOR scarr. RANGES: r_campo FOR scarr. r_campo[] = s_campo[]. LOOP AT r_campo. r_campo-low = 8, MODIFY r_campo. ENDLOOP.

Forms
Se pueden pasar valores por valor o referencia a las subrutinas Forms. PERFORM f_nombre TABLES i_tabla. FORM f_nombre TABLES i_tabla1 STRUCTURE scarr. ENDFORM. Permite pasar tablas internas a la subrutina.

PERFORM f_nombre USING v_uno. FORM f_nombre USING p_valor LIKE scarr-id. . ENDFORM. Permite pasar valores de entrada a la subrutina.

PERFORM f_nombre CHANGING v_uno. FORM f_nombre CHANGING p_valor LIKE scarr-id. ENDFORM. Permite la salida de valores de la subrutina.

23/05/05
Responsable: Eduardo
Pg. 34 de 48

Accenture Curso ABAP


Creacin de Transacciones
La transaccin SE93 es la transaccin que permite crear transacciones. Al crear se elige la transaccion report (segunda opcion) y en el campo programa el programa se coloca el nombre del programa ejecutable que tiene el codigo de la transaccin. A continuacin se graba la transaccin. Luego se ejecuta la transaccin con su nombre. (Ejemplo de transaccion creado: ZEA08_TRANSLC).

Copiar Tablas
Dirigirse a la transaccion SM30 y colocar el nombre de la tabla a copiar. Se accede a la tabla y por medio de CTRL+Y el mouse permite la seleccin de datos para luego por medio de CTRL+C copiarlos a una nueva tabla.

24/05/05
Responsable: Lorena Tomas

Transferencia de Datos (BC420)


Archivos
Existen dos tipos de archivos: Secuenciales y Locales. Un archivo secuencial es externo a nuestra PC, que se transfiren del servidor, mientras que un archivo local es el que recide en nuestra PC.

Entrada y Salida en archivos del servidor


Abrir un Archivo del Servidor: OPEN DATASET nombre_del_fichero FOR [ OUTPUT INPUT APPENDING ] IN BINARYMODE IN TEXTMODE ] Escribe en un fichero Lee un fichero Aade un registro a un fichero

Luego de realizar el open se puede evaluar SY-SUBRC con los siguientes valore: SY-SUBRC = 0 Abierto correctamente SY-SUBRC = 6 / 8 Error

Ejemplos: En la variable mensaje el OPEN devuelve un mensaje. El nombre del fichero puede ser una variable que contenga la ruta del fichero entre comillas simples.

DATA: nombre(60) value archivo.txt. mensaje(60). OPEN DATASET nombre FOR INPUT MESSAGE mensaje. IF SY-SUBRC <> 0. WRITE: SY-SUBRC:, SY-SUBRC, /, Mensaje del Sistema:, mensaje. ENDIF.

Pg. 35 de 48

Accenture Curso ABAP


DATA: w_archivo(50) type c. PARAMETERS: p_file LIKE w_archivo LOWER CASE. LOWER CASE se define por default para archivos. OPEN DATASET p_file FOR INPUT IN TEXTMODE. IF SY-SUBRC <> 0. MESSAGE I000(sw) WITH Error al crear archivo, p_file. EXIT. ENDIF. Leer y Cerrar un Archivo del Servidor: READ DATA SET nombre_fichero INTO variable [LENGTH longitud]. Ejemplo: TYPES: BEGIN OF st_clientes, nombre(12) type c, apellido(12) type c, direccion(50) type c, END OF st_clientes. DATA: cliente type st_cliente, archivo(20) VALUE /TPM/clientes.txt. OPEN DATASET archivo FOR INPUT. DO. READ DATASET archivo INTO cliente. IF SY-SUBRC = 0. WRITE: /, Nombre:, cliente-nombre, . ELSE. WRITE: /, Fichero no encontrado.. ENDIF. ENDDO. CLOSE DATASET archivo.

Escribir un Archivo del Servidor: TRANSFER variable TO nombre_fichero. Ejemplo: TYPES: BEGIN OF st_clientes, nombre(12) type c, apellido(12) type c, direccion(50) type c, END OF st_clientes. DATA: cliente type st_cliente, archivo(20) VALUE /TPM/clientes.txt. cliente-nombre = Juan. cliente-apellido = Perez, OPEN DATASET archivo FOR INPUT. TRANSFER cliente TO archivo. CLOSE DATASET archivo.

Pg. 36 de 48

Accenture Curso ABAP


Borrar un Archivo del Servidor: DELETE DATASET nombre_archivo.

Entrada y Salida en archivos locales


Se utilizan tablas internas como interfases entre el programa y el mdulo. Se utilizan las funciones: DOWNLOAD: Creacin de Archivo. WS_DOWNLOAD: Creacin de Archivo (sin dialogo con el usuario). UPLOAD: Lectura de un archivo. WS_DOWNLOAD: Lectura de un archivo (sin dialogo con el usuario).

Si se desea que el usuario ingrese la ruta del archivo se puede utilizar: PARAMETER: p_ruta LIKE RLGRAP_filename. Ejemplos: ******************************************** REPORT zea08_014_archivos . PARAMETER ruta LIKE rlgrap-filename. CALL FUNCTION 'WS_DOWNLOAD' EXPORTING filename = ruta filetype = 'ASC' TABLES data_tab = it_mitabla. ******************************************** REPORT zea08_014_archivos . PARAMETER ruta LIKE rlgrap-filename.

DATA: BEGIN OF it_mitabla OCCURS 0, nombre(20) TYPE c, ape(20) TYPE c, edad(3) TYPE c, END OF it_mitabla. it_mitabla-nombre = 'Bruno'. it_mitabla-ape = 'Lanzilotta'. it_mitabla-edad = '21'. APPEND it_mitabla. it_mitabla-nombre = 'Alejandro'. it_mitabla-ape = 'Lattuca'. it_mitabla-edad = '25'. APPEND it_mitabla. it_mitabla-nombre = 'Michula'. it_mitabla-ape = 'Taringa'. it_mitabla-edad = '65'. APPEND it_mitabla. it_mitabla-nombre = 'Papa'. it_mitabla-ape = 'Noel'. it_mitabla-edad = '156'. APPEND it_mitabla.

DATA: BEGIN OF it_mitabla2 OCCURS 0, nombre(20) TYPE c, ape(20) TYPE c, edad(3) TYPE c, END OF it_mitabla2. CALL FUNCTION 'WS_UPLOAD' EXPORTING filename = ruta filetype = 'ASC' TABLES data_tab = it_mitabla2. LOOP AT it_mitabla2. WRITE it_mitabla2-nombre. WRITE it_mitabla2-ape. WRITE it_mitabla2-edad. WRITE /. ENDLOOP. ********************************************

VER PAGINA 96 DE MANUAL DE SAP

Pg. 37 de 48

Accenture Curso ABAP

Batch-Inputs
La actualizacin de la base de datos a traves de las transacciones del sistema. Carga inicial de datos del sistema SAP Preparar interfases permanentes entre el sistema no SAP y un sistema SAP Ventajas: Sin intervencin No se requiere intervencin manual durante la transferencia de datos (archivos). Integridad de Datos Un Bach-Input introduce los datos al sistema SAP de la misma forma en que lo hara un usuario a traves de transacciones. Hay dos formas de realizar un Bach-Input, por medio de una transaccin SM35 que permite realizar un juego de datos o por medio de un CALL Transaction.

Estructura utilizada por tablas internas para todos los mtodos de Batch-Inputs: CAMPO PROGRAM DYNPRO DYNBEGIN FNAM FVAL TIPO Char Numc Char Char Char LONGITUD 8 4 1 35 80 SIGNIFICADO Nombre del MODULPOOL de la transaccin Nombre DYMPRO transaccin Inicio de datos de una DYMPRO Nombre del campo Valor del campo

Ejemplo de definicin de Tabla: DATA: BEGIN OF tabla_bdc OCURRS 0, INCLUDE BDCDATA, END OF tabla_bdc.

26/05/05
Responsable: Mariano

Batch-Inputs (Continuacin)
Para realizar un Batch-Inputs se debe cargar dentro de una tabla interna llamada BDC toda la informacin de los pasos a seguir por el programa. La tabla BDC tiene los siguientes campos: PROGRAM Z_crear_cliente DYNPRO 0100 DYNBEGIN X FNAM Z_cliente_cod Z_cliente_nro BDCOKCODE PROGRAM: Es el nombre del programa DYNPRO: Es el nombre de la pantalla DYNBEGIN: Se selecciona la primera vez que se inicia el batch-input por medio de una X. FNAM: Representa el nombre de los campos que se completarn por medio del batch-input. FVAL: Representa el valor del campo indicado en FNAM BDCOKCODE: Representa una accin a seguir: /0 = Enter, /11 = Grabar, =SAVE. Estructura del Programa para cargar ms de un registro por medio de Batch-Inputs: Levantar los datos de un archivo a una tabla interna (llamada i_cliente) Cargar la tabla BDC Llamar a CALL TRANSACTION Pg. 38 de 48 FVAL 10 8 /11 o =SAVE

Accenture Curso ABAP

FORM que carga la tabla BDC: FORM cargar_tabla TABLES i_bdctabla STRUCTURE BDCDATA USING dynbegin fnam fval. CLEAR i_bdctabla. IF dynbegin = X. i_bdctabla-dynbegin = X. i_bdctabla-program = fnam. Nombre del Programa i_bdctabla-dynpro = fval. Nro Dynpro ELSE. i_bdctabla-fnam = fnam. Nombre Campo o Boton i_bdctabla-fval = fval. Valor Campo o Valor ENDIF. APPEND i_bdctabla. ENDFORM. Debo pasar por valor los parmetros para cargar la tabla BDCDATA. La tabla interna se define previamente como BDCDATA en el programa principal. En los parametros fnam y fval se pasa el nombre del programa y la dynpro la primera vez que se llame al PERFOMR, por lo cual no se necesitan mas parmetros para su ingreso.

Definicin de i_bdctabla en el programa principal: DATA: BEGIN OF i_bdctabla OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA: END OF i_bdctabla.

Llamada al FORM en el programa principal: PERFORM cargar_tabla TABLES i_bdctabla USING X Z_crear_cliente 0100. LOOP AT it_cliente. PERFORM cargar_tabla TABLES i_bdctabla USIGN Z_cliente_cod i_cliente-cod. PERFORM cargar_tabla TABLES i_bdctabla USIGN Z_cliente_nro i_cliente-nro. PERFORM cargar_tabla TABLES i_bdctabla USIGN BDC_OKCODE = NEXT. ENDLOOP. PERFORM cargar_tabla TABLES i_bdctabla USIGN BDC_OKCODE = SAVE. Llamada al CALL TRANSACTION en el programa principal: CALL TRANSACTION zcliente USING i_bdctabla MODE N. No visible al usuario. A. Visible al usurario. E. Visualiza solo los errores. Registro de Transacciones: Dirigirse a la SM35 (Transaccin la grabadora), boton GRABACION, boton GRABACION NUEVA, completar el nombre de grabacin y el nombre de la transaccin (SM30), a continuacin colocar la tabla a actualizar en la SM30 (ZZZ_SCARR) y ACTUALIZAR; luego aparece el editor para registrar transacciones con lo cual uno se va guiando para escribir el Batch-Input.

Pg. 39 de 48

Accenture Curso ABAP

Una vez que estan grabados los pasos del batch-input, en la SM35 se puede seleccionar dicha grabacin, precionar PROGRAMA, ingresar un nombre de programa nuevo teniendo en cuenta la opcion TOMAR DE LA GRABACIN y grabarlo y aparecer el cdigo fuente del BATCH-INPUT grabado.
report ZLORENA no standard page heading line-size 255. include bdcrecx1. start-of-selection. perform open_group. perform bdc_dynpro using 'SAPMSVMA' '0100'. perform bdc_field using 'BDC_CURSOR' 'VIEWNAME'. perform bdc_field using 'BDC_OKCODE' '=UPD'. perform bdc_field using 'VIEWNAME' 'ZZZ_SCARR'. perform bdc_field using 'VIMDYNFLDS-LTD_DTA_NO' 'X'. perform bdc_dynpro using 'SAPLSPO1' '0300'. perform bdc_field using 'BDC_OKCODE' '=NO'. perform bdc_dynpro using 'SAPMSVMA' '0100'. perform bdc_field using 'BDC_OKCODE' '/EBACK'. perform bdc_field using 'BDC_CURSOR' 'VIEWNAME'. perform bdc_transaction using 'SM30'. perform close_group.

Pg. 40 de 48

Accenture Curso ABAP

Otra forma de llamar al Batch-Input: CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = GROUP USER = SY-UNAME HOLDDATE = DATE KEEP = X. CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = 'XD02' TABLES DYNPROTAB = BDC_TAB. CALL FUNCTION 'BDC_CLOSE_GROUP'. Para visualizar los datos del Programa y la DYMPRO se debe ir a la transaccin SM30, luego menu SISTEMA, opcion STATUS. Ejercitacin:
REPORT ZEA08_A05_013_BATCHINPUT. INCLUDE ZEA08_A05_013_BATCHINPUT_TOP. INCLUDE ZEA08_A05_013_BATCHINPUT_F1. START-OF-SELECTION. PERFORM f_ws_upload. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPMSVMA' 100. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'VIEWNAME' 'ZZZ_SCARR_MLC'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BDC_OKCODE' '=UPD'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '1'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BDC_OKCODE' '=NEWL'. LOOP AT it_archivo. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '2'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-CARRID' it_archivo-carrid. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-CARRNAME' it_archivo-carrname. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-CURRCODE' it_archivo-currcode. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-URL' it_archivo-url. PERFORM f_cargartabla_bdc TABLES it_bdctabla

Pg. 41 de 48

Accenture Curso ABAP


USING '' 'BDC_OKCODE' '=NEXT'. ENDLOOP. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '2'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BDC_OKCODE' '=SAVE'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '2'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BCD_OKCODE' '=BACK'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '1'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BCD_OKCODE' '=BACK'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPMSVMA' 100. CALL TRANSACTION 'SM30' USING it_bdctabla MODE 'N'. *----------------------------------------------------------------------* * INCLUDE ZEA08_A05_013_BATCHINPUT_TOP *----------------------------------------------------------------------* TABLES: zzz_scarr_mlc. DATA: BEGIN OF it_bdctabla OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA: END OF it_bdctabla. DATA: BEGIN OF it_archivo OCCURS 0, mandt LIKE zzz_scarr_mlc-mandt, carrid LIKE zzz_scarr_mlc-carrid, carrname LIKE zzz_scarr_mlc-carrname, currcode LIKE zzz_scarr_mlc-currcode, url LIKE zzz_scarr_mlc-url, END OF it_archivo. *----------------------------------------------------------------------* * INCLUDE ZEA08_A05_013_BATCHINPUT_F1 *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form f_ws_upload *&---------------------------------------------------------------------* form f_ws_upload. CALL FUNCTION 'WS_UPLOAD' EXPORTING filename = 'c:\aerolineas.txt' filetype = 'ASC' TABLES data_tab = it_archivo. * LOOP AT it_archivo. * WRITE: it_archivo-mandt, it_archivo-carrid, it_archivo-carrid, * it_archivo-carrname, it_archivo-currcode, it_archivo-url, /. * ENDLOOP. endform. " f_ws_upload * *

Pg. 42 de 48

Accenture Curso ABAP


*&---------------------------------------------------------------------* *& Form f_cargartabla_bdc *&---------------------------------------------------------------------* form f_cargartabla_bdc TABLES it_bdctabla STRUCTURE BDCDATA USING dynbegin fnam fval. IF dynbegin = 'X'. it_bdctabla-dynbegin = dynbegin. it_bdctabla-program = fnam. it_bdctabla-dynpro = fval. ELSE. it_bdctabla-fnam = fnam. it_bdctabla-fval = fval. ENDIF. APPEND it_bdctabla. endform. " f_cargartabla_bdc

27/05/05
Responsable: Fernando Calderon

Batch-Inputs (Continuacin)
CALL TRANSACTION vs. JUEGO DE DATOS
El Batch Inputs es una tecnica para similar un usuario ejecutando una transaccin, se mapea la actividad del usuario por medio de una tabla llamada BDCDATOS que posee 4 campos: Program, Dynpro, Dynbegin, Fnan, Fval. La diferencia radica en la forma en que se ejecutan esa serie de pasos que se encuentran en la tabla, por medio de una llamada a Call Transaction se ejecuta inmediatamente la transaccion con la tabla de datos que se le envia por parmetros. Por medio del juego de datos yo necesito hacer un Open-Group, Insert y Close-Group para generar un paquete pero no para ejecutar una transaccin. Por medio del insert no se ejecuta la transaccin sino que se carga el juego de datos y se arma un paquete al cerrar por medio del close group. Luego dentro de la transaccin SM35 se guardan todos los juegos de datos que son paquetes que se encuentran en diferente estados. Si el estado es nuevo quiere decir que el paquete nunca fue ejecutado, se debe seleccionar y precionar EJECUTAR junto con el modo de ejecucin (visible para el usuario = A, no visible al usuario = N, o solo errores = E) y tildando los check box de LOG AMPLIADO, MODO EXPERTO, y TAM. ESTANDAR DYMPRO. Por medio de un juego de datos tengo la ventaja de que puedo reprocesar dicha informacin todas las veces que sea necesario, ya que la informacin se encuentra centralizada y el reproceso lo ejecuta automaticamente SAP. La ejecucin por medio de Call Transaction tiene la ventaja de ejecucin en el mismo instante con lo que se logra ver si el Batch-Inputs funciona bien o no. La ventaja de cada mtodo se convierte en la desventaja del metodo opuesto. Se puede crear un juego de datos y luego ejecutarlos por medio de una llamada a un programa. Un programa puede invocarse desde otro programa por medio de la sentencia SUBMIT. SUBMIT nombre-programa USING juego de datos AND RETURN.

Se integran las soluciones y el Batch-Inputs se ejecuta con Call Transaction para luego, con los errores que se hallan producido, se genera un juego de datos para que en una instancia posterior se corrijan.

GRABADORA
Para el ingreso directo a la grabadora se utiliza la transaccin SHDB, sino se puede ingresar por medio de la SM35, opcin GRABACIN. La grabadora permite conocer el mapeo y la secuencia de pantalla, asi como tambin la generacin de codigo. Dicho cdigo no es del todo confiable, siempre debe revisarse antes de ejecutar.

Pg. 43 de 48

Accenture Curso ABAP

Responsable: Guillermo Sakumoto [email protected] [email protected]

30/05/05
Responsable: Andres Maldonado

Reportes ALV
Existen tres tipos de reportes ALV: ALV grillla, ALV en lista y ALV jerarquico. Estos reportes reemplazan al comando WRITE. Ejemplo ALV creando el catalogo por codigo:
REPORT ZEA08_A05_015_EJEMPLO_ALV . * Se trata de un pequeo ejemplo de listado ALV para aquellos que * nunca han creado uno. * Propsito: * --------* Voy mostrar un listado de posiciones de pedidos de compras * Pasos esenciales (Buscar el simbolo '') * ---------------* 1. Definicin estructuras y tablas necesarias * 2. Definimos la tabla con los datos de salida * 3. Toma de datos * 4. Definicin estructura y formato de salida * 5. Mostrar listado *<-- Paso 1. Definicion estructuras y tablas necesarias * Type Pool donde vienen definidas todas las estructuras y tablas TYPE-POOLS: slis. * Catlogo de campos: contiene la descripcin de los campos de salida DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, * Especificaciones de la disposicin de la lista: descripcin de la * estructura de salida gs_layout TYPE slis_layout_alv, * Nombre del programa g_repid LIKE sy-repid. *<-- Paso 2. Definimos la tabla con los datos de salida TYPES: BEGIN OF st_output. INCLUDE STRUCTURE sflight. TYPES: semaforo(1). TYPES: END OF st_output. DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE. INITIALIZATION. g_repid = sy-repid. START-OF-SELECTION. *<-- Paso 3. Toma de datos PERFORM toma_datos. *<-- Paso 4. Estructura y formato de salida PERFORM init_fieldcat. PERFORM init_layout. *<-- Paso 5. Mostrar listado PERFORM listado. *&&-----------------------------------------------------------------&&* * SUBRUTINAS DEL PROGRAMA * *&&-----------------------------------------------------------------&&* *---------------------------------------------------------------------* * FORM INIT_FIELDCAT * *---------------------------------------------------------------------* FORM init_fieldcat. * Mediante esta tabla vamos a definir los campos que queremos mostrar * en el listado de salida.

Pg. 44 de 48

Accenture Curso ABAP


gt_fieldcat-fieldname = 'CARRID'. gt_fieldcat-ref_tabname = 'SFLIGHT'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'CONNID'. gt_fieldcat-ref_tabname = 'SFLIGHT'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'FLDATE'. gt_fieldcat-ref_tabname = 'SFLIGHT'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'PRICE'. gt_fieldcat-ref_tabname = 'SFLIGHT'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'CURRENCY'. gt_fieldcat-ref_tabname = 'SFLIGHT'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'PLANETYPE'. gt_fieldcat-ref_tabname = 'SFLIGHT'. APPEND gt_fieldcat. CLEAR gt_fieldcat. ENDFORM. *---------------------------------------------------------------------* * FORM INIT_LAYOUT * *---------------------------------------------------------------------* FORM init_layout. * Mediante esta estructura podemos definir el formato de salida gs_layout-zebra = 'X'. "Registros en diferentes colores gs_layout-f2code = '&ETA'. "Muestra el detalle al clickear gs_layout-detail_popup = 'X'. "Abre el pop-up al clickear registro gs_layout-lights_fieldname = 'SEMAFORO'. ENDFORM. *---------------------------------------------------------------------* * FORM TOMA_DATOS * *---------------------------------------------------------------------* FORM toma_datos. * Los datos deben guardarse en la tabla interna de salida SELECT * FROM SFLIGHT UP TO 100 ROWS INTO TABLE gt_output. Loop at gt_output. if gt_output-SEATSOCC > 0 and gt_output-SEATSOCC < 100. gt_output-semaforo = '1'. elseif gt_output-SEATSOCC > 100 and gt_output-SEATSOCC < 1000. gt_output-semaforo = '2'. else. gt_output-semaforo = '3'. endif. modify gt_output. endloop. ENDFORM. " TOMA_DATOS *---------------------------------------------------------------------* * FORM LISTADO * *---------------------------------------------------------------------* FORM listado. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = g_repid is_layout = gs_layout it_fieldcat = gt_fieldcat[] TABLES t_outtab = gt_output EXCEPTIONS program_error =1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " LISTADO

Pg. 45 de 48

Accenture Curso ABAP

Ejemplo ALV creando el catalogo por medio de una funcin:


REPORT ZEA08_A05_015_EJEMPLO_ALV . * Se trata de un pequeo ejemplo de listado ALV para aquellos que * nunca han creado uno. * Propsito: * --------* Voy mostrar un listado de posiciones de pedidos de compras * Pasos esenciales (Buscar el simbolo '') * ---------------* 1. Definicin estructuras y tablas necesarias * 2. Definimos la tabla con los datos de salida * 3. Toma de datos * 4. Definicin estructura y formato de salida * 5. Mostrar listado *<-- Paso 1. Definicion estructuras y tablas necesarias * Type Pool donde vienen definidas todas las estructuras y tablas TYPE-POOLS: slis. * Catlogo de campos: contiene la descripcin de los campos de salida DATA: row_fieldcat TYPE slis_fieldcat_alv, indice TYPE i. DATA: gt_fieldcat TYPE slis_t_fieldcat_alv, "WITH HEADER LINE, * Especificaciones de la disposicin de la lista: descripcin de la * estructura de salida gs_layout TYPE slis_layout_alv, * Nombre del programa g_repid LIKE sy-repid. *<-- Paso 2. Definimos la tabla con los datos de salida TYPES: BEGIN OF st_output. INCLUDE STRUCTURE sflight. TYPES: semaforo(1). TYPES: END OF st_output. DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE. INITIALIZATION. g_repid = sy-repid. START-OF-SELECTION. *<-- Paso 3. Toma de datos PERFORM toma_datos. *<-- Paso 4. Estructura y formato de salida PERFORM init_fieldcat. PERFORM init_layout. *<-- Paso 5. Mostrar listado PERFORM listado. *&&-----------------------------------------------------------------&&* * SUBRUTINAS DEL PROGRAMA * *&&-----------------------------------------------------------------&&* *---------------------------------------------------------------------* * FORM INIT_FIELDCAT * *---------------------------------------------------------------------* FORM init_fieldcat. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = 'ZEA08_A05_015_EJEMPLO_ALV' I_INTERNAL_TABNAME = 'GT_OUTPUT' I_STRUCTURE_NAME = 'SFLIGHT' I_CLIENT_NEVER_DISPLAY = 'X' I_INCLNAME = 'ZEA08_A05_015_EJEMPLO_ALV' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = CHANGING ct_fieldcat = gt_fieldcat EXCEPTIONS INCONSISTENT_INTERFACE =1 PROGRAM_ERROR =2 OTHERS = 3.

Pg. 46 de 48

Accenture Curso ABAP


IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. READ TABLE gt_fieldcat WITH KEY fieldname = 'CARRID' INTO row_fieldcat. IF SY-SUBRC = 0. row_fieldcat-seltext_m = 'Medium'. row_fieldcat-ddictxt = 'M'. indice = sy-tabix. "Guarda el nro registro posicionado modify gt_fieldcat index indice from row_fieldcat. ELSEIF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFORM. *---------------------------------------------------------------------* * FORM INIT_LAYOUT * *---------------------------------------------------------------------* FORM init_layout. * Mediante esta estructura podemos definir el formato de salida gs_layout-zebra = 'X'. "Registros en diferentes colores gs_layout-f2code = '&ETA'. "Muestra el detalle al clickear gs_layout-detail_popup = 'X'. "Abre el pop-up al clickear registro gs_layout-lights_fieldname = 'SEMAFORO'. ENDFORM. *---------------------------------------------------------------------* * FORM TOMA_DATOS * *---------------------------------------------------------------------* FORM toma_datos. * Los datos deben guardarse en la tabla interna de salida SELECT * FROM SFLIGHT UP TO 100 ROWS INTO TABLE gt_output. Loop at gt_output. if gt_output-SEATSOCC > 0 and gt_output-SEATSOCC < 10. gt_output-semaforo = '3'. elseif gt_output-SEATSOCC > 10 and gt_output-SEATSOCC < 100. gt_output-semaforo = '1'. else. gt_output-semaforo = '2'. endif. modify gt_output. endloop. ENDFORM. " TOMA_DATOS *---------------------------------------------------------------------* * FORM LISTADO * *---------------------------------------------------------------------* FORM listado. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = g_repid is_layout = gs_layout it_fieldcat = gt_fieldcat[] TABLES t_outtab = gt_output EXCEPTIONS program_error =1 OTHERS =2 IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " LISTADO

Pg. 47 de 48

Accenture Curso ABAP 31/05/05


Responsable: Andres Maldonado Responsable: Diego Eisen

Nociones de Performance
Transacciones para medir la Performance
Transaccin ST05: Permite la visualizacin de la traza de las consultas con SELECT, accesos a la base de datos. Lo que permite la visualizacin de entradas repetidas a la base de datos, tiempo excedido de consultas y resultados de las mismas. Transaccin SE30: Permite analizar el codigo ABAP, por ejemplo cuanto tiempo demora la ejecucin de un Perform, se utiliza para analizar la lgica de un programa.

01/06/05
Responsable: Fernando Calderon

Repaso General.
Variante: Foto de la pantalla de seleccin que se utiliza para grabar la pantalla de seleccin. Variante de Visualizacin: Foto de la configuracin de un reporte ALV.

Programacin de Dialogo (BC405)


Utiliza la programacin interactiva que consiste en el redireccionamiento del flujo de ejecucin dependiendo de la actividad del usuario. Tambin es llamado MODULPOOL.

Pg. 48 de 48

También podría gustarte