Curso online certificacao de consultores em pedagogia empresarial
Curso Abap Para Consultores
-
Upload
manuel-sandoval -
Category
Documents
-
view
235 -
download
0
Transcript of Curso Abap Para Consultores
-
5/26/2018 Curso Abap Para Consultores
1/200
1
ABAP/4 paraconsultores
-
5/26/2018 Curso Abap Para Consultores
2/200
2
1.Introduccinn Objetivos
nA quin va dirigido el curso
-
5/26/2018 Curso Abap Para Consultores
3/200
3
1.1 Objetivosn Conocimientos bsicos programacin
ABAPn Repaso a las diferentes herramientas de
desarrollon Utilizacin del debug (trucos y consejos)
n Repaso interfacesnAmpliaciones al sistema
-
5/26/2018 Curso Abap Para Consultores
4/200
4
1.1 A quin va dirigido el curso?nA gente con experiencia funcional en el
entorno SAP R/3 que quiera sacar mspartido al producto sin depender para todode un programador.
nA programadores que quieran mejorar sus
tcnicas de debugueo y saber dndeencontrar ampliaciones del sistema.
-
5/26/2018 Curso Abap Para Consultores
5/200
5
1.1 Objetivosn El consultor al finalizar el curso debe ser
capaz de entender un programa ofragmentos del mismo, ya sea viendo elcdigo o debugueando su funcionamiento.
n Con el temario de este curso NO ser
capaz de hacer programas complejos decero.
-
5/26/2018 Curso Abap Para Consultores
6/200
6
2. Visin general del entorno de
desarrollo y herramientasn Repasaremos las
transacciones msutilizadas por losprogramadores en sutrabajo.
-
5/26/2018 Curso Abap Para Consultores
7/200
7
2.1 SE11 Diccionario ABAPn Es el repositorio de
tablas, vistas yestructuras de SAP.
-
5/26/2018 Curso Abap Para Consultores
8/200
8
2.2 SE38 Editor ABAPn Punto central para
editar el cdigo fuenteSAP.
-
5/26/2018 Curso Abap Para Consultores
9/200
9
2.3 SE37 Biblioteca de funcionesn Editor de funciones
utilizadas en variospuntos de SAP.
-
5/26/2018 Curso Abap Para Consultores
10/200
10
2.4 SE91Actualizacin de mensajesn Repositorio de todos
los mensajes deerror/advertencia/aviso en SAP.
-
5/26/2018 Curso Abap Para Consultores
11/200
11
2.5 SE93 Transaccionesn Mantenimiento de los
cdigos detransaccin
-
5/26/2018 Curso Abap Para Consultores
12/200
12
2.6 SE43 Mens ambiton Mantenimiento de
mens
-
5/26/2018 Curso Abap Para Consultores
13/200
13
2.7 SE80 Object Navigatorn Es un punto central
nico para acceder atoda la informacinanterior.
-
5/26/2018 Curso Abap Para Consultores
14/200
14
DICCIONARIO
DE
DATOS
-
5/26/2018 Curso Abap Para Consultores
15/200
15
3. Diccionario de datosn Tablas
n Estructuras
n Elementos de datos
n Dominios
n
Vistas
-
5/26/2018 Curso Abap Para Consultores
16/200
16
DICCIONARIO DE DATOS: Lectura yProceso de tablas de la B.D.
n DICCIONARIO DE DATOS
n INSTRUCCIONES SQL DE ABAP/IV
Diccionario de Datos
El Diccionario ABAP es el centro donde se describen y manejan todas las
definiciones de datos usadas en el sistema. El Diccionario ABAP estcompletamente integrado en el WorkBench ABAP. El resto de componentes delWorkBench ABAP tienen acceso a las definiciones almacenadas en el DiccionarioABAP.
El Diccionario ABAP soporta la definicin de tipos definidos por el usuario(elementos de datos, estructuras y tipos de tablas). Tambin se puede definir laestructura de objetos de la base de datos (tablas, ndices y vistas). Estos objetospueden ser creados automticamente en la base de datos con esta definicin. ElDiccionario ABAP tambin proporciona herramientas para la correccin de camposde pantalla, por ejemplo para asignar a un campo una ayuda de entrada (tecla deayuda F4).
Los objetos ms importante en el Diccionario ABAP son tablas, vistas, tipos
(elementos de datos, estructuras, tipos de tablas), dominios, ayuda parabsquedas y objetos de bloqueo.
SQL
El Open SQL consiste en un juego de sentencias ABAP que realizan operacionessobre la base de datos central en el Sistema R/3. Los resultados de lasoperaciones y los mensajes de error son independientes del sistema de base dedatos que se emplea. Open SQL proporciona una sintaxis uniforme y unasemntica para todos los sistemas de base de datos soportados por SAP. Losprogramas ABAP que usan declaraciones de Open SQL trabajarn en cualquierSistema R/3, independientemente del sistema de base de datos que se utilice. Lassentencias de SQL slo puede trabajar con las tablas de base de datos que hansido creados en el Diccionario ABAP.
-
5/26/2018 Curso Abap Para Consultores
17/200
17
El Diccionario de Datos
n CAMPOS
n ELEMENTOS DE DATOS
n DOMINIOS
El diccionario de datos (DD) es una fuente de informacincentralizada. Los distintos objetos del DD estn estructurados en:
CAMPOS: pertenecientes a las tablas.ELEMENTOS DE DATOS: describen el significado de un campo
independientemente de las tablas dnde se utilizan. Es decir, tienenun carcter semntico.
DOMINIOS: describen el campo de valores posibles. Tendrn uncarcter tcnico.
-
5/26/2018 Curso Abap Para Consultores
18/200
18
Conceptos y atributos del
Diccionario de Datos I
n Fuente de informacin centralizada
n Integrado y activo
nAlmacenamiento de tablas, estructuras,vistas..
n Informacin almacenada con F1 o F4
En el diccionario estn almacenados la descripcin de todos losdatos usados en el sistema, sin redundancias.
Los datos almacenados ms importantes en el diccionario son lastablas, vistas y estructuras.
Tambin contiene informacin almacenada con F1 y F4 de ayudapara campos. Los textos visualizados con F1 describen el contenidode un campo de una tabla. Con F4 obtenemos una lista de losposibles valores que pueden tener estos campos.
El DD se dice que es integrado y activo. Integrado porque integra elDD con el Screen painter, programas ABAP, dynpros .. Y activoporque si modificamos algn objeto del DD, el sistemaautomticamente regenera los programas que utilicen esos objetos.
-
5/26/2018 Curso Abap Para Consultores
19/200
19
Conceptos y atributos del
Diccionario de Datos IIn Integracin
nActivacin de los objetos
n Declaracin en programas: TABLES
nAcceso de una tabla en un programa:SELECT.
nAcceso al diccionario: SE11
Todos los objetos del diccionario estn integrados. Cuando sedefine una pantalla y el campo se refiere a un campo del diccionario,
por defecto este campo tomar todas las especificaciones del campodel diccionario.
El Sistema R/3 trabaja interpretativamente, permitiendo al DiccionarioABAP estar integrado activamente en el WorkBench. En vez de losobjetos originales, los intrpretes ven slo las representacionesinternas de estos objetos.
Cada vez que se modifica un objeto del diccionario, hay queactivarlo.
Para declarar en un programa una tabla del diccionario, lo hacemoscon la palabra reservada TABLES.
Para acceder a una tabla en un programa lo haremos con SELECT.
Para acceder al diccionario, lo haremos con la transaccin SE11; omediante el men:
HERRAMIENTAS > WORKBENCH ABAP > DICCIONARY ABAP
-
5/26/2018 Curso Abap Para Consultores
20/200
20
Tablas
n Componentes de una tabla:
Campos de la tabla
Claves externas
Aspectos tcnicos
ndices
Las tablas pueden ser definidas, independientemente de la base de datos,en el Diccionario ABAP. Los campos de la tabla son definidos con sus
tipos de datos (independientes de base de datos) y longitudes. Cuando latabla se activa, se crea una una definicin fsica sobre la base de datos apartir de la definicin de la tabla almacenada en el Diccionario ABAP. Ladefinicin de tabla es traducida del Diccionario ABAP a una definicin de labase de datos particular.
Una definicin de tabla en el Diccionario ABAP contiene los siguientescomponentes:
Los campos de la tabla definen los nombres de los campos y los tipos dedatos de los campos de la tabla.
Las claves externas son las relaciones de la tabla con otras tablas.
Los aspectos tcnicos es el control de cmo la tabla debera ser creadaen la base de datos
Los ndices mejoran el acceso en cuanto a rapidez de los datos en la basede datos.
El usuario puede modificar la utilizacin de tablas de SAP, aadiendoestructuras y Parametrizando includes. Esta clase de modificacin aseguraque las mejoras se incorporan automticamente a las nuevasactualizaciones del estndar cuando hay una actualizacin de la versin.
-
5/26/2018 Curso Abap Para Consultores
21/200
21
Campos de la Tabla
nNombre de un campo
nINCLUDE ( Subestructura )
nESTRUCTURA APPEND
Se debe definir lo siguiente para un campo de la tabla en el Diccionario ABAP:
El nombre del campo: el nombre del campo puede tener un mximo de 16
caracteres y puede contener letras, dgitos y subrayados. El nombre del campodebe comenzar con una letra.
Marca de Clave: determina si el campo pertenece a la clave de la tabla.
Tipo de campo: tipo de datos del campo en el Diccionario ABAP.
Longitud: nmero de posiciones vlidos en el campo.
Posiciones Decimales: nmero de posiciones despus del punto decimal, paratipos de datos numricos.
Texto Corto: texto corto que describe el significado del campo.
Con el INCLUDE incluimos los campos de otra tabla o estructura.
Con un Append Structure, se adaptan tambin automticamente las tablas que seincluyen en esta estructura o tabla, de forma que se pueden aadir ms campos ala tabla que tiene el Append.
Tambin pueden anidarse subestructuras. Por eso, una estructura A, incluye unaestructura B, que incluye a su vez a una estructura C, etc. El nivel de anidamiento,se limita a 9.
Las ESTRUCTURAS APPEND se pueden utilizar para realizar ampliaciones noprevistas en el estndar (desarrollos especficos, versiones de pases, para aadircampos de clientes a una tabla estndar SAP).
Puede haber varias ESTRUCTURA APPEND en una tabla.
Al aadir estructuras append y/o al incluir campos en una estructura appendexistente, la tabla no se convertir automticamente. Los campos de la estructuraappend se aaden a la tabla de la base de datos.
-
5/26/2018 Curso Abap Para Consultores
22/200
22
Elementos de datos.
n El elemento de datos se asocia a uncampo de la tabla.
n Describe el significado del contenido delcampo.
Describe el significado de un campo independientemente de lastablas dnde se utilizan. Es decir, tienen un carcter semntico.
El elemento de datos puede ser uno ya existente en el diccionario,uno creado por nosotros ( Z... ) o una subestructura. Si en el nombredel campo hemos puesto .INCLUDE, en el elemento de datos,pondremos la subestructura que queremos incluir.
El elemento de datos proporciona la informacin sobre lafuncionalidad de este tipo de datos en el sistema, es decir indica quse est almacenando en el campo que tiene este elemento de datos(por ejemplo un n de factura, un importe, etc).
-
5/26/2018 Curso Abap Para Consultores
23/200
23
Dominio
n Los dominios los asociamos a elementosde datos.
n Es una agrupacin de propiedades decampos.
n Posibilidad de asociarlo a una tabla devalores.
Describen el campo de valores posibles. Tendrn un carctertcnico.
El dominio es una agrupacin de propiedades formales de campos,tales como tipo de datos y cantidad de posiciones del campo.
Un dominio define principalmente el mbito de valores para todos loscampos que hacen referencia al dominio.
Diferentes campos tcnica y profesionalmente similares se resumena travs de un dominio. Campos que hacen referencia al mismodominio se modifican simultneamente al modificarse el dominio.Con ello queda garantizada la consistencia de estos campos.
En la definicin de un dominio se puede introducir una rutina de
conversin para los datos de este dominio. Con esto lo que seconsigue es que la introduccin o salida de datos se hagan con unformato determinado a partir de otro formato de datos. Por ejemplo,el cdigo de los materiales tienen el dominio MATNR el cual tiene unrutina de conversin CONVERSION_EXIT_MATN1_INPUT (paraentrada) y CONVERSION_EXIT_MATN1_OUTPUT (para salida) quealmacenan los datos aadindoles ceros hasta completar 18posiciones.
El dominio permite asociar a este tipo de datos una tabla de valores
contra los que chequear las entradas o una serie de valores fijos quesern los que se pueden introducir.
-
5/26/2018 Curso Abap Para Consultores
24/200
24
Tipos de datos
nAsociado al dominio.
El tipo de datos describe el formato de datos en la interfase deusuario y, adems, es independiente del sistema de base de datos
utilizado.Si se utiliza una tabla o estructura en los programas ABAP, el tipo dedatos adopta un formato utilizado por el procesador ABAP.
Al crear una tabla en la base de datos, el tipo de datos se compila enun formato de datos correspondiente al sistema de base de datosutilizado.
-
5/26/2018 Curso Abap Para Consultores
25/200
25
Claves
n Identificacin unvoca de los registros
n Los campos clave posicionados juntos alprincipio.
Los campos o campo clave de una tabla identifican unvocamente losregistros de la tabla.
Los campos clave de una tabla tienen que estar posicionados juntosal principio de la tabla, es decir que ningn campo no clave debeestar entre dos campos clave.
-
5/26/2018 Curso Abap Para Consultores
26/200
26
Tabla y campo de referencia
n Indicar la tabla y campo de referenciapara los campos que contienen importesde moneda o cantidad
Para aquellos campos que contienen importes de monedas (tipo dedatos CURR) o bien de cantidad (tipo de datos QUAN) ha de
indicarse una Tabla de referencia. sta ha de contener un campo(Campo de referencia) con el formato de clave de moneda (tipo dedatos CUKY) o bien el formato para unidades de cantidad (tipo dedatos UNIT). La asignacin del campo al campo de referencia serealiza en el tiempo de ejecucin mediante un programa.
Si un campo se ha completado con importes de moneda, la monedacorrespondiente se calcula a partir del campo de referenciaasignado, es decir, el valor indicado en el campo de referencia enese momento fija la moneda.
-
5/26/2018 Curso Abap Para Consultores
27/200
27
Aspectos Tcnicos
n Clase de datos
Con la clase de datos se define de forma lgica el mbito fsico dela base de datos en el que se ha de grabar la tabla. Si se selecciona
correctamente la clase de datos, la tabla se asignar de formaautomtica al mbito correcto en el momento de su creacin en labase de datos.
Las clases de datos ms importantes (aparte de los datos desistema) son:
o APPL0 Datos maestros
o APPL1 Datos variables
o APPL2 Datos de gestin y de Customizing
Los datos maestros son aquellos a los que se accede muy a
menudo para su lectura, pero muy raramente para su actualizacin.Los datos variables son aquellos que se actualizan muy a menudo.
Los datos de gestin y de Customizing se introducen en laparametrizacin del sistema y raramente se modifican conposterioridad.
El cliente dispone de otras dos clases de datos USR y USR1. stasestn previstas para desarrollos propios del cliente. Las tablasasignadas a estas clases de datos se archivan en un tablespacepara desarrollos propios del cliente.
La clase de datos slo influye en la grabacin de la tabla en lossistemas con la base de datos ORACLE E INFORMIX.
-
5/26/2018 Curso Abap Para Consultores
28/200
28
Aspectos Tcnicos II
n Categora del tamao
Determinacin de la probable demanda de espacio de una tabla en labase de datos.
Es posible seleccionar una categora de 0 hasta 4. Cada categoratiene asignado un determinado tamao fijo de un mbito de memoriaen la base de datos. Al crear una tabla es reservada una posicininicial en la base de datos. En caso de que la tabla nueva demandems espacio de memoria porque su contenido ocupe ms espacio,se aadir ms espacio de memoria, de acuerdo a la categoraindicada.
Cuando una tabla es creada, se el reserva un espacio inicial en labase de datos. Si ms tarde se necesita ms espacio, se le aadirms memoria adicional.
-
5/26/2018 Curso Abap Para Consultores
29/200
29
Utilidad de la Base de Datos
Modificacin de la tabla, mantenimiento dedatos.
Si modificamos la estructura de una tabla y ya tenemos datos enesta tabla, y deseamos que los datos permanezcan deberamos ir a
esta opcin: UTILIDADES UTILIDAD DE LA BSE DE DATOS.
-
5/26/2018 Curso Abap Para Consultores
30/200
30
Relacin entre tablas
n Clave externa
n Tabla de valores
n Tabla de verificacin
-
5/26/2018 Curso Abap Para Consultores
31/200
31
Tabla de Verificacin, tabla de
Valores y Clave Externa
n Tabla de valores: chequeo de entradade datos
n Clave externa: necesaria para elchequeo anterior
n Tabla de verificacin: para limitar msan el chequeo.
La tabla de valores es la tabla indicada en el dominio. De estemodo, todos los campos que remiten a este dominio podrn
compararse con los campos correspondientes de la tabla de valores.Para poder realizar la verificacin en la mscara de entrada debedefinir una clave externa para la tabla.
Podr limitar el mbito de valores admitiendo slo un subconjunto delos valores de la tabla. El subconjunto ser definido mediante laindicacin de una tabla de verificacin relacionada con la tabla devalores a travs de la clave externa.
-
5/26/2018 Curso Abap Para Consultores
32/200
32
Rendimiento de tablas
( ndices )
n Los ndices son usados para acelerar laseleccin de los datos de los registros deuna tabla.
n Nombre del ndice ZXX.
Los ndices aceleran la bsqueda en las tablas.
Podemos tener ninguno, uno o varios ndices.
Un ndice puede ser considerado una copia de una tabla de base de datosque ha sido reducida a ciertos campos. Esta copia est siempre en laordenada. La ordenacin proporciona el acceso ms rpido a los registrosde datos de la tabla, por ejemplo la utilizacin una bsqueda binaria. Elndice tambin contiene un indicador del registro correspondiente a la tablareal para que los campos no contenidos en el ndice tambin puedan serledos.
El ndice primario se distingue de los ndices secundarios de una tabla. Elndice primario contiene los campos claves de la tabla y un puntero a loscampos que no son clave de la mesa. El ndice primario es creadoautomticamente cuando la tabla es creada en la base de datos.
Tambin se pueden crear ms ndices sobre una tabla en el DiccionarioABAP. Estos se conocen como ndices secundarios. Esto es necesario sila tabla es accedida con frecuencia de manera que no se aprovecha laclasificacin del ndice primario para el acceso. ndices diferentes sobre lamisma tabla son llamados con un identificador de ndice de tres caracteres.
Para utilizar los ndices secundarios para los accesos a las tablas, esnecesario que en las condiciones de bsqueda (de los Selects) aparezcantodos los campos que forman el ndice secundario.
-
5/26/2018 Curso Abap Para Consultores
33/200
33
Vistas
n Es una visin lgica de una mstablas.
Una vista es una visin lgica de una ms tablas, es decir, no sealmacena fsicamente, sino que se deriva de una o ms tablas.
-
5/26/2018 Curso Abap Para Consultores
34/200
34
Actualizacin de tablasn Podemos crear una vista de
actualizacin para la tabla.
n ENTORNO GENERAR ACTUALIZ. DETABLAS
Desde una tabla podemos crear una vista de actualizacin, con estose consigue poder introducir, modificar o eliminar datos directamente.
Los datos se introducirn a travs de la transaccin SM30.
-
5/26/2018 Curso Abap Para Consultores
35/200
35
Actualizacin de tablas
Para crear estas vistas de actualizacin habr que introducir lossiguientes datos:
En GRUPO DE AUTORIZACIONES pondramos sin grupo o algunoen concreto.
Tambin deberamos asociarlo a un GRUPO DE FUNCIONES.
En IMGENES DE ACTUALIZACIN tenemos la opcin de hacerloa UN NIVEL o a DOS NIVELES. En UN NIVEL, para introducir losdatos aparece en forma de tabla. En DOS NIVELES apareceindividual cada entrada en forma de formulario. Segn el nivel quedeseemos, elegimos uno y despus pulsamos el botn Buscar n de
imgenes y le damos a crear. El por defecto ya propondr lasimgenes.
En RUTINA DE GRABACION podemos elegir entre:
Rutina de grabacin estndarsi queremos que nos pida ordende transporte al grabar
Rutina de grabacin individual o ninguna si no queremos quenos pida orden de transporte.
-
5/26/2018 Curso Abap Para Consultores
36/200
36
Actualizacin de tablas -
Eventos
Podemos insertar cdigo en estos mantenimientos utilizando loseventos.
Nos permite asociar una rutina en un determinado momento.
El evento que mejor funciona para validar los campos introducidos enuna tabla es el 21.
-
5/26/2018 Curso Abap Para Consultores
37/200
37
SE16 Modificacin de registros
n Truco para modificar tablas que no tengan mantenimiento o notengan marcado el flag de permitir actualizacin de tablas
n 1. Ves al Databrowser (SE16)2. Selecciona la tabla que quieras cambiar3. Selecciona el registro que quieres cambiar y pulsa visualizar(F7)4. Teclea/h. Entrers en modo debug.4. Pulsa F7 para saltar del bloque en que ests
n 5. Cambia el codigo de CODE de 'SHOW' a 'EDIT'. Ahoratendrs acceso al registro. Haz tus cambios y puslta sobre elbotn de grabar.
-
5/26/2018 Curso Abap Para Consultores
38/200
38
ABAP/IVDEVELOMENT
WORKBENCH
-
5/26/2018 Curso Abap Para Consultores
39/200
39
Creacin de programasTRANSACCION SE38
n Nombre programa ( Z.. ) CREAR
n Ttulo
n Tipo programa
nAplicacin
nAutorizacionesn Clase desarrollo
n Base de datos lgica
Transaccin SE38 ( Herramientas Workbench ABAP Desarrollo Editor ABAP )
Nombre del programa ( debe comenzar por Z ) CrearTtulo
Tipo de programa: normalmente es 1 ( REPORT ), podra ser uninclude, modulpool, grupo de funciones ...
Aplicacin: si es vlido para todas las aplicaciones o para algunaen concreto; normalmente multiaplicaciones
Grupo de autorizaciones: sin autorizacin o para alguna enconcreto ( el sistema verificar si el usuario pertenece a este grupode autorizaciones )
Clase de desarrollo: es una manera de agrupar los programasfuncionalmente para facilitar los mtodos de correccin y transporte.Puede ser temporal ( no se trasportar ) o alguna especfica.
Base de datos lgica: si la utiliza el programa.
-
5/26/2018 Curso Abap Para Consultores
40/200
40
Trabajar con el editor de programas (I)
UTILIDADES - OPCIONES MODO EDITOR
Podemos trabajar de muchas maneras, segn lo que queramoshacer.
Con UTILIDADES - OPCIONES MODO EDITOR , hay unacombinacin de maneras de hacerlo.
-
5/26/2018 Curso Abap Para Consultores
41/200
41
Trabajar con el editor de programas (II)
Con F1 sobre una instruccin obtenemosinformacin online acerca de sta.
Con F1 en el editor podemos obtener laayuda online global
Con F1 en el editor nos aparece una pantalla en la que podemosobtener ayuda online sobre alguna instruccin ABAP, documentacion
y ejemplos.
-
5/26/2018 Curso Abap Para Consultores
42/200
42
Trabajar con el editor de
programas (III)
n Verificar el programa
nActivar el programa
Una vez codificado el programa podemos verificar quesintcticamente no tenga ningn error y antes de poderlo ejecutar
tendremos que activar el programa.En el proceso de activacin SAP transfiere el estado del programa adiversas tablas del Diccionario de datos.
La tabla TRDIR contiene informacin de los programas del sistema.
-
5/26/2018 Curso Abap Para Consultores
43/200
43
Ejecucin de programas
nONLINE
nEN FONDO ( Paravisualizacin de los programas
en fondo SM37 )
Un report se puede ejecutar en ONLINE ( PROGRAMA EJECUTAR ) o en FONDO ( PROGRAMA EJECUTAR EN
PROCESO DE FONDO ).Es conveniente lanzarlo en fondo cuando tenga que procesarmuchos datos; ya que si se lanza en online, se puede quedarcolgado por tiempo.
Para trabajar con los reports lanzados en fondo tenemos latransaccin SM37
-
5/26/2018 Curso Abap Para Consultores
44/200
44
Variantes
n VALORES de la variante
nATRIBUTOS de la variante
n Icono para traer las variantes:
Las variantes nos ahorran tiempo a la hora de ejecutar un programapara ejecuciones cuya pantalla de seleccin es igual o similar.
Insertamos las condiciones de seleccin del report y le damos agrabar. As hemos creado los VALORES de la variante.
Le ponemos el ttulo de la variante y el significado y llenamos losATRIBUTOS. En los atributos, podemos sealar los campos quequeremos que estn protegidos, invisibles ...
Cuando volvamos a ejecutar el report, nos aparecer un icono detraer variante y elegiremos la que nos interese.
-
5/26/2018 Curso Abap Para Consultores
45/200
45
Control de eventos de
programasn INITIALIZATION
nAT LINE-SELECTION
nAT USER-COMMAND
nAT SELECTION-SCREEN
n TOP-OF-PAGE
n END-OF-PAGE
n START-OF-SELECTION
n END-OF-SELECTION
El ABAP est basado en eventos.
INITIALIZATION: se procesa antes de que aparezca la
pantalla de seleccin.AT LINE-SELECTION: se activa cuando se selecciona
una lnea de la salida principal
AT USER-COMMAND: se activa cuando se seleccionauna funcin o se introduce un comando en el campo comandos
AT SELECTION-SCREEN: se procesa mientras lapantalla de seleccin est activa.
TOP-OF-PAGE: por inicio de pgina ejecutar lasinstrucciones que se indiquen.
END-OF-PAGE: por fin de pgina ejecutar lasinstrucciones que se indiquen.
START-OF-SELECTION: se procesa despus de lapantalla de seleccin..
END-OF-SELECTION: por fin de programa ejecutar lasinstrucciones indicadas.
-
5/26/2018 Curso Abap Para Consultores
46/200
46
Tipos de instruccionesTIPOS DE PALABRAS CLAVES:
nDeclarativas
nEventos
nControl
nOperativasCOMENTARIOS: *
Un report consiste en una serie de instrucciones ABAP queempiezan por una palabra clave y terminan con un punto.
Tipos de palabras clave:- Declarativas: para declarar los datos que vamos a
usar a lo largo del programa. Por ejemplo: DATA, TABLES.
- Eventos: especifica un evento, es el punto dndeABAP ejecuta un cierto proceso.
Por ejemplo: START-OF-SELECTION, TOP-OF-PAGE.
- Control: sentencias de control de flujo de programa.Por ejemplo: IF, WHILE.
- Operativas: realizan funciones propias segn el tipode palabra clave. Por ejemplo: WRITE, MOVE.
Comentarios:
- Con un (*) en la primera columna de una lnea.
- Con comillas () en mitad de lnea.
-
5/26/2018 Curso Abap Para Consultores
47/200
47
TIPOS DE DATOS
ABAP distingue entre tipos y objetos (datos). Los tipos de datos son descripcionespor tanto no ocupan memoria. Los objetos son instancias de tipos, y ocupan supropio espacio en memoria. Un tipo describe los atributos tcnicos de todos losobjetos que tienen ese tipo.Los programas trabajan con datos locales. Un dato consiste de strings de bytes enel rea de memoria del programa. Un string de unos determinados bytes es lo quellamamos un campo. Cada campo tiene una identidad (un nombre) y un tipo dedatos. Todos los lenguajes de programacin tienen un un concepto para describircomo es el contenido de un campo siendo este interpretado de acuerdo al tipo dedatos.
En ABAP, los campos son llamados objetos de datos. Cada objeto de datos es unainstancia de un tipo de datos abstracto. Los tipos de datos en ABAP no sonprecisamente atributos de campos, pero pueden ser definidos como ellos. Haynombres distintos para objetos de datos y tipos de datos, pero nosotros podemos
darle a la vez el mismo nombre a un objeto de datos que al tipo de datos, por queaunque se llamen igual ABAP distingue a uno de otro, tienen su propio espaciocada uno.
Tipos de Datos
Al igual que los definimos como atributos de un objeto de datos, los tipos de datostambien pueden ser definidos independientemente. La definicin de un tipo dedatos definido por el usuario esta basado en un conjunto de tipos de datos bsicospredefinidos. Puedes definir tipos de datos tanto en la declaracin en el report(usando la instruccin TYPES) globalmente en el diccionario ABAP. Tambinpuedes usar tus propios tipos de datos para declarar objetos de datos o parachequearlos tipos de parmetros en operaciones genricas.
-
5/26/2018 Curso Abap Para Consultores
48/200
48
Tipos de datos
0000006Hora HMST
000000008Fecha AMDD
X001HexadecimalX
08N empaquet.P
00001Texto numricoN
04EnteroI
0.0E+008Punto flotanteF
ESPACIOS1TextoC
VALOR INICIALLONG. DEFECTODESCRIPCINTIPOS
Los tipos de datos pueden dividirse en simples, por referencia y complejos.
Los tipos elementales son la ms pequea e indivisible unidad de un tipo. Pueden
ser agrupados como aquellos con longitud fija y variable.Con longitud fija.
Hay 8 tipos predefinidos en ABAP con longitud fija:
4 tipo carcter: Carcter (C), Carcter numrico, Fecha (D) y Hora (T).
1 tipo hexadecimal: Campo Byte(X).
3 tipos numricos: Entero (I), Numrico con coma flotante (F) y numricoempaquetado(P).
Con longitud variable.
Hay 2 tipos predefinidos en ABAP con longitud variable:
STRING para tiras de caracteres.
XSTRINGS para tiras de bytes.Los tipos por Referencia describen objetos de datos que contienen referencias
(punteros) a otros objetos (objetos de datos y objetos en Objetos ABAP). Hayuna jerarqua de tipos por referencia que describe la jerarqua de objetos a loscuales las referencias. Si no hay referencias predefinidas debes definirlas tmismo en el programa.
Los tipos complejos estn compuestos de otros tipos. Por lo que te permitengestionar y procesar datos relacionados semanticamente bajo un solo nombre.Puedes acceder a objetos de datos complejos enteros o a una parte(componente individual). No hay tipos de datos predefinidos en ABAP. Tumismo debes definirlos ya sea en tus programas o en el Diccionario ABAP. Lostipos estructurados estn divididos tanto en estructuras como en tablas
internas.
-
5/26/2018 Curso Abap Para Consultores
49/200
49
Declaracin de datos
n DATA
n TYPE
n LIKE
n VALUE
n OCCURS
n INCLUDE STRUCTURE
Se declaran campos del report con la sentencia DATA.
Si no se indica lo contrario, las variables sern del tipo carcter y la longitud 1.
Ejemplo: DATA CAR.Con el parmetro TYPE podemos utilizar otros tipos de datos.
Ejemplo: DATA NUM_CAR(5) TYPE N.
DATA FECHA_LIMITE TYPE D.
Con el parmetro LIKE podemos declarar una variable con los mismos atributos de longitudy tipo que una variable de la base de datos.
Ejemplo: DATA ACRREDOR LIKE LFA1-LIFNR.
Con el parmetro VALUE podemos inicializar la variable con un valor distinto al que tienepor defecto.
Ejemplo: DATA CONTADOR TYPE P VALUE 1.
Tambin usaremos la instruccin DATA para declarar tablas internas. Las tablas internas adiferencia de las de base de datos se guardarn en memoria y no en el diccionario de
datos.Ejemplo: DATA: BEGIN OF PROVEEDORES OCCURS 100
NAME1 LIKE LFA1-NAME1,
ORT1 LIKE LFA1-ORT1,
END OF PROVEEDORES.
La clusula OCCURS determina el nmero de lneas guardadas en memoria principal. Estono significa que el tamao mximo de la tabla sea el indicado, ya que si ste se desbordalos datos se guardan en un fichero de paginacin.
Tambin podemos utilizar la misma estructura que en una tabla de base de datos, para elloutilizamos INCLUDE STRUCTURE.
Ejemplo: DATA BEGIN OF SOCIEDADES OCCURS 0.
INCLUDE STRUCTURE T001.DATA END OF SOCIEDADES.
-
5/26/2018 Curso Abap Para Consultores
50/200
50
Asignando valores
n MOVE TO
n =
n COMPUTE =
n OFFSET
n CLEAR
n MOVE-CORRESPONDING TO n DESCRIBE FIELD
OFFSET: podemos referenciar o asignar valores a una parte de lavariable.
Ejemplo: DATA: VAR1(10) VALUE MARIA SANZ,VAR2(4) VALUE HOLA.
MOVE VAR1+6(4) TO VAR2+5(4).
WRITE VAR2.
Resultado: HOLA MARIA
CLEAR : para inicializar las variables, inicializa al valor quetiene asignado como valor inicial sin tener en cuenta a las clusulasVALUE que haya.
MOVE-CORRESPONDING TO : mueve de reg1 areg2 aquellos campos que tengan idntico nombre.
DESCRIBE FIELD: para chequear la longitud o el tipo de unavariable.
DESCRIBE FIELD LENGTH : chequea lalongitud de un campo.
DESCRIBE FIELD TYPE : tipo de datosutilizado.
-
5/26/2018 Curso Abap Para Consultores
51/200
51
Variables del sistema
n Variables internas que se van actualizandoautomticamente y que pueden serutilizadas en programas.
n Empiezan con SY-.
n Estn en la estructura SYST.
ABAP/IV tiene algunas variables internas que se van actualizandoautomticamente y que pueden ser utilizadas en los programas.
En la estructura SYST estn todas ellas.SY-SUBRC: cdigo de retorno. Si es 0 ha encontrado algo, sino no.
SY-REPID: nombre del programa
SY-DATUM: fecha del da ...
-
5/26/2018 Curso Abap Para Consultores
52/200
52
Tablas internas
n Declaracin de tablas internas
n Llenado de una tabla interna
n Ordenar una tabla interna
n Proceso de una tabla interna
n Niveles de ruptura
n Lecturas de registros de una tablainterna
n Modificacin de una tabla interna
Si deseamos guardar una coleccin de registros de datos de lamisma estructura en memoria sin necesidad de acceder a la base de
datos y poder realizar operaciones diversas con este conjunto deinformacin, utilizaremos tablas internas.
-
5/26/2018 Curso Abap Para Consultores
53/200
53
Declaracin de tablas internas
n DATA: BEGIN OF OCCURS
LIKE ,
TYPE ,
..............
END OF .
n DATA: BEGIN OF OCCURS .
INCLUDE STRUCTURE .
DATA: LIKE ,
TYPE ,
END OF .
n DATA: LIKE OCCURS
WITH HEADER LINE.
La clusula OCCURS determina el nmero de lneas guardadas enmemoria principal. Esto no significa que el tamao mximo de la
tabla sea el indicado, ya que si ste se desborda los datos seguardan en un fichero de paginacin.
Tambin podemos utilizar la misma estructura que en una tabla debase de datos, para ello utilizamos INCLUDE STRUCTURE.
Ejemplo: DATA BEGIN OF SOCIEDADES OCCURS 0.
INCLUDE STRUCTURE T001.
DATA END OF SOCIEDADES.
Con WITH HEAER LINE, definimos la tabla con cabecera.
-
5/26/2018 Curso Abap Para Consultores
54/200
54
Llenado de una tabla interna
nAPPEND
nCOLLECT
n
INTO TABLE
APPEND: aade un registro a una tabla interna con valores quetengamos en la cabecera.
COLLECT: aade o suma la lnea de cabecera comparando loscampos de tipo carcter. Sumar todos los campos de tipo P, F, I.
INTO TABLE: podemos llenar una tabla interna con el contenido deuna tabla de la base de datos. Siempre que la tabla interna tenga lamisma estructura que la tabla de base de datos.
SELECT * FROM INTO TABLE.
-
5/26/2018 Curso Abap Para Consultores
55/200
55
Ordenacin de una tabla internan SORT .
n SORT BY ..... .
n SORT ASCENDING BY
DESCENDING BY
Si no se indica lo contrario la ordenacin es ascendente.
-
5/26/2018 Curso Abap Para Consultores
56/200
56
Procesamiento de una tabla
internan LOOP AT (WHERE )
.............
ENDLOOP.
n LOOP AT FROM TO .
.............
ENDLOOP.
Podemos recorrer una tabla interna con la instruccin LOOP ...ENDLOOP.
En cada iteracin coloca la lnea de la tabla que se est procesandoen la lnea de cabecera.
Podemos restringir el proceso de una tabla con una condicinWHERE.
Si no existe ningn registro de la tabla que cumpla la condicinespecificada en la clusula WHERE, la variable del sistema SY-SUBRC ser distinta de 0.
Dentro del LOOP la variable SY-TABIX contiene el ndice de laentrada que est procesando en ese momento.
FROM TO : recorrer la tabla desde el registronmero >inicio> hasta el registro nmero .
-
5/26/2018 Curso Abap Para Consultores
57/200
57
Niveles de ruptura
nAT FIRST. .... ENDAT.
nAT LAST. .... ENDAT.
nAT NEW . .... ENDAT..
nAT END OF . ....ENDAT.
AT FIRST: realiza las instrucciones que hay a continuacin del ATFIRST para la primera entrada en la tabla.
AT LAST: realiza las instrucciones que hay a continuacin del ATLAST para la ltima entrada en la tabla.
AT NEW: realiza las instrucciones que hay a continuacindel AT NEW para cada nueva entrada del contenido del campo.
AT END : realiza las instrucciones que hay a continuacindel AT END para cada final de contenido del campo.
Si utilizamos la instruccin SUM dentro de una AT ... ENDATrealizar la suma de todos los campos P, I, F de ese nivel de ruptura( para el clculo de subtotales ). El resultado lo encontraremos en la
cabecera de la tabla.Ser necesario que la tabla interna est ordenada en el mismo ordenque la utilizacin de los niveles de ruptura.
-
5/26/2018 Curso Abap Para Consultores
58/200
58
Lectura de registros de una
tabla internaREAD TABLE WITH KEY =
.................
=
n READ TABLE INDEX
El resultado de la bsqueda lo tendremos en SY-SUBRC.
Si SY-SUBRC = 0 la bsqueda ha sido positiva
Si SY-SUBRC 0 no ha encontrado el registro solicitado.
-
5/26/2018 Curso Abap Para Consultores
59/200
59
Modificacin de tablas internasn MODIFY ( INDEX ) ( WHERE )
n INSERT ( INDEX )
n DELETE ( INDEX ) ( WHERE )
n DELETE ADJACENT DUPLICATES FROM
n CLEAR
n REFRESH
n FREE
n DESCRIBE TABLE LINES
Una vez llena la tabla interna, tenemos la posibilidad de modificar losdatos con una serie de sentencias ABAP/IV.
MODIFY : podemos sobrescribir el contenidodel registro de la tabla, con los datos de la cabecera.
INSERT : aade una entrada
DELETE : borra una entrada.
El MODIFY, INSERT y DELETE sin el INDEX, tiene que estar dentrode un LOOP ... ENDLOOP.
DELETE ADJACENT DUPLICATES FROM :borra los registros iguales en una tabla interna
CLEAR : inicializa la cabecera.
REFRESH : borra el contenido de una tabla.
FREE : libera el espacio ocupado por una tablaen memoria.
DESCRIBE TABLE LINES : carga ennum el nmero de lneas de la tabla.
-
5/26/2018 Curso Abap Para Consultores
60/200
60
Control de flujo en los
programas
n Formulando condiciones
nProceso de bucles
nSentencias de control
-
5/26/2018 Curso Abap Para Consultores
61/200
61
Formulando condiciones
n IF ELSE ... ENDIF.
n CASE .
WHEN ...
WHEN ...
WHEN OTHERS ...ENDCASE
En ABAP, como en todos los lenguajes estructurados, se dispone deuna serie de instrucciones para subdividir el programa en bloques
lgicos que se ejecutarn cuando cumpla una cierta condicin.
-
5/26/2018 Curso Abap Para Consultores
62/200
62
Proceso de bucles
n DO TIMES
...........
ENDDO.
n WHILE
..........ENDWHILE.
Con el DO y WHILE, podemos realizar procesos repetitivos.
La instruccin DO permite ejecutar un bloque de instrucciones tantas
veces como se especifique.En la variable del sistema SY-INDEX tendremos un contador delnmero de repeticiones.
La instruccin WHILE permite ejecutar un bloque de instruccionesmientras se cumpla una condicin.
-
5/26/2018 Curso Abap Para Consultores
63/200
63
Sentencias de control
nCHECK
nEXIT
nSTOP
nLEAVE
Las sentencias descritas a continuacin se utilizan para terminar elprocesamiento de un bucle o proceso.
Con CHECK se realiza un chequeo de forma que si dentro de unbucle la condicin es falsa, saltar todas las instrucciones que siguenal CHECK e iniciar la siguiente pasada al bucle. Fuera del bucle, sila condicin es falsa, saltar todas las instrucciones que sigan alCHECK hasta el final del evento o programa en proceso.
Con EXIT dentro de un bucle , saldr fuera del bucle y si est fuerade un bucle saldr del programa. Si la instruccin EXIT est dentrode varios bucles anidados, nicamente saldr del bucle en proceso.
Con STOP finalizaremos el report en ejecucin, pero antesejecutaremos el evento END-OF-SELECTION.
Con LEAVE finalizaremos el report en ejecucin, sin ejecutar elevento END-OF-SELECTION.
-
5/26/2018 Curso Abap Para Consultores
64/200
64
Instrucciones SQL de ABAP IV
n SELECT
n INSERT
n UPDATE
n MODIFY
n DELETE
ABAP/IV tiene un subconjunto de sentencias SQL para su aplicacinsobre tablas de la base de datos SAP.
Las sentencias INSERT, UPDATE, MODIFY Y DELETE, se utilizarnen la medida que sea posible el menor nmero de veces sobre tablasSAP. Siempre se intentar insertar o modificar datos mediantetransacciones estndares SAP o va Batch Input. Ya que no siemprees fcil conocer la compleja estructura de toda la base de datos SAPy as nos aseguramos no producir ninguna inconsistencia en la basede datos.
-
5/26/2018 Curso Abap Para Consultores
65/200
65
Selectn SELECT SINGLE * FROM
WHERE
n SELECT * FROM
( WHERE ).
ENDSELECT.
n SELECT * FROM
WHERE ...
BETWEEN AND .
... IN (,.. ).
Lectura de un nico registro: SELECT SINGLE * FROM WHERE .. Como realizamos la bsqueda de un registro, en
la condicin slo podemos utilizar la igualdad y el operados AND, yaque especificamos toda la clave del registro.
Lectura iterativa: seleccin de un grupo de registros. SELECT *FROM (WHERE ). ENDSELECT. Selecciona todos losregistros que cumplan la condicin de la clusula WHERE, o todosen caso de no utilizarla. El resultado lo tenemos en la cabecera.
Con BETWEEN seleccionara los registros en los que el camposeleccionado se encuentren entre y .
Con IN los registros en los que el campo seleccionado est en elconjunto de valores , ..
Si SY-SUBRC=0, ha encontrado algn registro; sino no.
-
5/26/2018 Curso Abap Para Consultores
66/200
66
Insert
n INSERT
n INSERT
FROM TABLE
Con INSERT introducimos registros.
Podemos introducir datos desde una tabla interna (FROM TABLE
)
-
5/26/2018 Curso Abap Para Consultores
67/200
67
Update
n UPDATE
n UPDATE SET =
WHERE
n UPDATE FROM TABLE
Con UPDATE modificaremos el contenido de los registros.
Para modificar el contenido de ms de un registro a la vez ( SET ... ).
Tambin podemos modificar registros desde una tabla interna (FROM TABLE ... ).
-
5/26/2018 Curso Abap Para Consultores
68/200
68
Modify
n MODIFY
n MODIFY FROM TABLE
La sentencia MODIFY se utilizar cuando no estemos seguros siutilizar un INSERT o un UPDATE. Es decir, cuando no sepamos con
certeza si un registro existe o no, para modificarlo o aadirlo.En caso de que sepamos si existe o no un registro, por eficaciautilizaremos INSTER o UPDATE.
-
5/26/2018 Curso Abap Para Consultores
69/200
69
Delete
n DELETE
n DELETE FROM WHERE
n DELETE FROM FROM TABLE
Para realizar borrados de datos se aplica la sentencia DELETE.
Lo podemos borrar el registro de cabecera, los que cumplan una
condicin, todos los registros de una tabla interna.
-
5/26/2018 Curso Abap Para Consultores
70/200
70
Autorizaciones
Podemos controlar las autorizaciones en los programas mediante losobjetos de autorizacin previamente definidos por SAP que utiliza en
sus programas estndar, y adems definir nuestros propios objetos deautorizacin, que podremos utilizar en nuestros programas.
-
5/26/2018 Curso Abap Para Consultores
71/200
71
Autorizacionesn AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'ACTVT' FIELD '02
ID 'CARRID' DUMMY.
Para controlar las autorizaciones en los programas, se debe especificar el objeto y losvalores que el usuario necesita para tener autorizacin al objeto.
El cdigo de ejemplo comprueba si la el usuario est autorizado al objeto S_CARRID, parael la actividad 02, (Modificacin)
El comando AUTHORITY-CHECK comprueba la autorizacin y devuelve un cdigo deretorno. Cuando se lee este odigo, se debe realizar alguna accin (por ejemplomostrar un mensaje de error si no se tiene autorizacin, o no mostrar en el programalos registros para los que no se tiene acceso.
Debes especificar todos los campos del AUTHORITY-CHECK. Si no desea comprobarun campo determinada, introduzca DUMMY despus del nombre del campo.
Los cdigos de retorno ms importantes son:
0: El usuario tiene autorizacin
4: El usuario no tiene autorizacin
8: El chequeo no se ha podido realizar porque no se han especificado todos los campos delobjeto.
-
5/26/2018 Curso Abap Para Consultores
72/200
72
Autorizaciones - Ejemplo
Por cada registro ledo dentro de un SELECT, se comprueban lasautorizaciones. El comando AUTHORITY CHECK verifica si el usuario
tiene la autorizacin de los valores solicitados. Despus se comprubeael valor del campo SY-SUBRC. Si el valor es 0, el usuario tiene laautorizacin necesaria y el programa continua.
Si el valor es diferente de 0, el usuario no posee autorizacin y el sistema ledevuelve un mensaje de error.
-
5/26/2018 Curso Abap Para Consultores
73/200
73
Subrutinas
TIPOS DE SUBRUTINAS:
n INTERNAS
n EXTERNAS
n BIBLIOTECA DE FUNCIONES
( MDULOS DE FUNCIN )
Existen tres tipos de subrutinas:
INTERNAS: el subprograma y la llamada a ste estn
en el mismo programa.EXTERNAS: el subprograma y la llamada a ste estn
en programas distintos.
BIBLIOTECA DE FUNCIONES ( MDULOS DEFUNCIN ): Funciones externas al programa con interface dellamada claramente definido.
-
5/26/2018 Curso Abap Para Consultores
74/200
74
Subrutinas Internas
n PERFORM .
FORM .... ENDFORM.
n PERFORM USING ...CHANGING ....
FORM USING ....CHANGING ENDFORM.
n
PERFORM TABLES FORM TABLES ....ENDFORM.
Con PERFORM llamamos a un procedimiento osubprograma.
Con FORM escribimos nuestro subprograma.Tambin podemos pasarles parmetros con USING.
Podemos devolver los valores con CHANGING.
Podemos pasar como parmetros tablas internas con TABLES.
Especificaremos siempre las tablas antes que el resto deparmetros.
Tanto las variables definidas al inicio del report como las tablas songlobales a todas las subrutinas y por tanto son accesibles encualquier momento.
Dentro de cada subrutina, es posible declarar datos con la sentenciaDATA, que slo sern visibles dentro del mdulo donde se estdeclarando. ABAP/IV crear un espacio para esas variables que serliberado al salir del mdulo.
-
5/26/2018 Curso Abap Para Consultores
75/200
75
Subrutinas Externas
PERFORM ()
USING ...
n INCLUDE .
Para llamar a una subrutina que est en un programa distintoutilizaremos PERFORM ()
Tambin existe la posibilidad de aadir porciones de cdigo del tipoINCLUDE con la instruccin INCLUDE .
-
5/26/2018 Curso Abap Para Consultores
76/200
76
Mdulos de funcin
CALL FUNCTION .EXPORTING =
IMPORTING
-
5/26/2018 Curso Abap Para Consultores
77/200
77
GESTION
DE
LISTADOS
-
5/26/2018 Curso Abap Para Consultores
78/200
78
Obtencin de datos
( Pantalla seleccin )n Pantalla de seleccin
n Va Base de Datos Lgica
Para seleccionar los datos de los programas, lo hacemos por lapantalla de seleccin. La pantalla de seleccin puede venir por
defecto si utilizamos una Base de Datos Lgica o ponerle los camposque queramos.
-
5/26/2018 Curso Abap Para Consultores
79/200
79
Pantalla de seleccin
n PARAMETERS
n SELECT- OPTIONS
n MARCOS
Si deseamos introducir una serie de delimitaciones en la ejecucinde un report a nivel de parmetros, disponemos de PARAMETERS y
SELECT-OPTIONS.Con PARAMETERS podemos utilizar parmetros de cualquier tipoen la pantalla de seleccin.
Con SELECT-OPTIONS podemos determinar un criterio deseleccin de los datos a utilizar en el report.
Podemos enmarcar en la pantalla de seleccin los parmetros deentrada que queramos.
-
5/26/2018 Curso Abap Para Consultores
80/200
80
Parameters I
PARAMETERS: TYPE
LIKE
DEFAULT
OBLIGATORY.
LOWER CASE.
PARAMETERS: para introducir parmetros en la ejecucin delreport. El nombre del parmetro no puede ser superior a 8
caracteres.Con DEFAULT inicializamos con un valor el parmetro.
Con OBLIGATORY obliga a introducir un valor.
Con LOWER CASE permite introducir minsculas.
-
5/26/2018 Curso Abap Para Consultores
81/200
81
Parameters II
PARAMETERS: AS CHECKBOX
( DEFAULT X )
PARAMETERS: RADIOBUTTON GROUP
,
RADIOBUTTON GROUP
.
( DEFAULT X ).
Dentro de los parameters, podemos declarar una casilla de seleccincon CHECKBOX.
Al preguntar por ella simplemente IF NE SPACE ....ENDIF.
Tambin dentro de parameters podemos declarar un grupo debotones, con RADIOBUTTON GROUP.
Para preguntar por el radiobutton es similar al checkbox.
-
5/26/2018 Curso Abap Para Consultores
82/200
82
Select-options
n SELECT-OPTIONS FOR (DEFAULT )(DEFAULT TO ) (LOWERCASE) (OBLIGATORY) (NO-EXTENSION)
n SELECT * FROM WHERE IN .
como mucho tendr 8 caracteres.
La variable tomar los posibles valores a seleccionar y nos indica paraqu campo y de qu tabla ser utilizado el parmetro ( esto implcitamente nos est dando
el tipo y la longitud de los posibles valores ).Con esta sentencia, automticamente en la pantalla de seleccin se podrn introducirrangos de valores posibles para el parmetro.
Para cada sentencia SELECT-OPTIONS el sistema crea una tabla interna con el nombre. Cada registro de la tabla est formada por los campos: -LOW, -HIGHT,-SIGN, -OPTION.
EL contenido de cada registro ser respectivamente: el valor inferior, el superior, el signo (Incluido/ Excluido ) y el operador.
Para seleccionar los datos de lectura en tiempo de ejecucin mediante los valores deseleccin , utilizaremos la clusula WHERE de la instruccin SELECT y el operador IN, quebuscar en la tabla de base de datos todos los registros que cumplan las condicionesincluidas en la tabla interna de la pantalla de seleccin.
SELECT * FROM WHERE IN .En la pantalla de seleccin aparecer el texto como comentario a la seleccin dedatos, si queremos que el texto sea distinto al nombre de la variable tendremos que ir a laopcin Textos de seleccin del men Pasar a Elementos de texto.
DEFAULT: asignar valores iniciales a un criterio de seleccin
DEFAULT TO : para inicializar un rango de valores (inferiory superior).
LOWER CASE: para hacer que se acepten valores en minsculas.
OBLIGATORY: obligar a que se introduzcan valores de seleccininevitablemente.
NO-EXTENSIN: desactivar la posibilidad de introducir seleccionescompuestas.
-
5/26/2018 Curso Abap Para Consultores
83/200
83
Marcos
SELECTION-SCREEN BEGIN OFBLOCK WITH FRAMETITLE text-001.
PARAMETERS: ...
SELECT-OPTIONS: ...
SELECTION-SCREEN END OFBLOCK .
Con este conjunto de instrucciones, podemos hacer un marco aparmetros de entrada; si queremos ponerle un ttulo con WITH
FRAME TITLE y un texto de seleccin.
-
5/26/2018 Curso Abap Para Consultores
84/200
84
Control de eventos de
programasn INITIALIZATION
nAT LINE-SELECTION
nAT USER-COMMAND
nAT SELECTION-SCREEN
n TOP-OF-PAGE
n END-OF-PAGE
n START-OF-SELECTION
n END-OF-SELECTION
El ABAP est basado en eventos.
INITIALIZATION: se procesa antes de que aparezca la
pantalla de seleccin.AT LINE-SELECTION: se activa cuando se selecciona
una lnea de la salida principal
AT USER-COMMAND: se activa cuando se seleccionauna funcin o se introduce un comando en el campo comandos
AT SELECTION-SCREEN: se procesa mientras lapantalla de seleccin est activa.
TOP-OF-PAGE: por inicio de pgina ejecutar lasinstrucciones que se indiquen.
END-OF-PAGE: por fin de pgina ejecutar lasinstrucciones que se indiquen.
START-OF-SELECTION: se procesa despus de lapantalla de seleccin..
END-OF-SELECTION: por fin de programa ejecutar lasinstrucciones indicadas.
-
5/26/2018 Curso Abap Para Consultores
85/200
85
Variantes
n VALORES de la variante
nATRIBUTOS de la variante
n Icono para traer las variantes:
Las variantes nos ahorran tiempo a la hora de ejecutar un programapara ejecuciones cuya pantalla de seleccin es igual o similar.
Insertamos las condiciones de seleccin del report y le damos agrabar. As hemos creado los VALORES de la variante.
Le ponemos el ttulo de la variante y el significado y llenamos losATRIBUTOS. En los atributos, podemos sealar los campos quequeremos que estn protegidos, invisibles ...
Cuando volvamos a ejecutar el report, nos aparecer un icono detraer variante y elegiremos la que nos interese.
-
5/26/2018 Curso Abap Para Consultores
86/200
86
Atributos Variantes
Mediante esta imagen podr establecer los atributos de cadavariante.
Introduzca para cada una de ellas un texto breve que seainformativo.
Slo para procesos de fondo
Si este campo aparece marcado con una cruz significa que lavariante slo puede usarse para procesos de fondo. Iniciar unprograma en Online ya no es posible mediante las variantes de estetipo.
Proteccin de las variantes
Si este campo aparece marcado con una cruz significa que lavariant slo puede modificarla el fabricante o el ltimo modificador. Sise inicia un programa con variantes de este tipo y mediante laimagen de seleccin, los campos sern slo de visualizacin y nocabr la posibilidad de sobrescribir otros valores.
Visualizar slo en el catlogo
Si este campo aparece marcado con una cruz significa que la
variante o se visualizar en la ayuda para entradas, sin slo en elcatlogo.
Variantes de sistema
-
5/26/2018 Curso Abap Para Consultores
87/200
87
Variables Variantes de seleccin
Actualmente se soportan estas 3 clases de variables de seleccin:
Variables de tabla de TVARV
Deberan utilizarse estas variables al archivar informacionesestticas. Por defecto aparecern variables TVARV como propuesta.
Clculos de fecha dinmicos:
Un requisito para utilizar estas variables es que elcorrespondiente criterio de seleccin del programa sea del tipo "D"
(fecha). Si al elegir la variable de seleccin se cambia del tipo T altipo D, el campo NOMBRE DE LA VARIABLE ser slo devisualizacin y los valores slo se podrn introducir con la ayuda deentrada.
Actualmente estn implementados estos clculos de fechadinmicos:
Fecha del da de hoy
Desde principios de mes hasta hoy
Fecha de hoy +/- ??? das
Primer trimestre ????Segundo trimestre ????
Tercer trimestre ????
Cuarto trimestre ????
-
5/26/2018 Curso Abap Para Consultores
88/200
88
Iconos y simbolos
n INCLUDE
WRITE AS ICON.
n INCLUDE
WRITE ASSYMBOL.
Podemos insertar un icono o smbolo en nuestro listado.
-
5/26/2018 Curso Abap Para Consultores
89/200
89
Formatos de los datos de
salida ( I )
n WRITE /()() texto.
n ULINE /()().
n SKIP
n NEW-PAGE
Existen cuatro instrucciones principales en la creacin de listados enABAP:
-WRITE. Es en comando para escribir los textos.-ULINE. Dibuja lineas, tanto horizontales como verticales.
-SKIP. Hace saltos de linea.
-NEW-PAGE. Hace saltos de pagina.
EJEMPLO:
data: itab type standard table of lfbk,
wa like line of itab.
select LIFNR BANKS BANKL BANKn bkont into corresponding fields oftable itab from lfbk where banks eq 'GB'.
write:/2 'Nmero de cuenta', 17 'Clave de pas del banco', 30 ' Clavede banco', 40 'N cuenta bancaria',
50 'Clave de control de bancos'.
uline.
skip.
if sy-subrc eq 0.
loop at itab into wa.
write:/2 wa-LIFNR, 17 wa-BANKS, 30 wa-BANKl, 40 wa-BANKn, 50 wa-bkont.
endloop.endif.
-
5/26/2018 Curso Abap Para Consultores
90/200
90
Formatos de los datos de
salida( II )n WRITE UNDER
n POSITION
n SKIP TO LINE
n WRITE NO-SIGN
n WRITE CURRENCY
UNDER: para escribir un campo, variable o literal justamente debajo de otros sin tener quecalcular la columna.
write: 31 'buenos' .
write: / 'das' under 'buenos'.
POSITION: si queremos especificar la columna de un texto en forma de variable.
write: 31 'buenos das' .
SKIP TO LINE: si queremos ir a una determinada lnea dentro de la misma pgina.
SKIP TO LINE 10.
write: 31 'buenos' .
write: / 'das' under 'buenos'.
NO-SIGN: formatear la salida de un nmero empaquetado, evitamos que aparezca el signo.
Data numero(2) type I.
numero = -1.
write numero.write numero no-sign.
CURRENCY: para visualizar importes correctamente dependiendo de la moneda delimporte. Sin CURRENCY, el sistema pone 2 decimales.
tables reguh.
Data: importe like reguh-rwbtr,
importe2(10).
select * from reguh where waers = 'ESP'.
I mporte = reguh-rwbtr.
exit.
endselect.
write importe to importe2 currency reguh-waers.write importe2.
-
5/26/2018 Curso Abap Para Consultores
91/200
91
Formatos de los datos de
salida( III )n WRITE USING EDIT MASK
mascara
n WRITE NO-ZERO
n WRITE DD/MM/YY
n
WRITE MM/DD/YYn WRITE DD/MM/YYYY
n WRITE MM/DD/YYYY
USING EDIT MASK: si desea formatear la salida de un camposegn una cierta mscara. Los caracteres de la mscara son:
_: un carcter del campo a formatear:: un separador.puede se cualquier carcter menos el
_.
LL:justifica a la izquierda ( por defecto )
RR: justifica por la derecha.
Ejemplo: WRITE SY-UZEIT USING EDIT MASK__:__:__.
NO-ZERO: si queremos suprimir los ceros iniciales de una cadenade caracteres.
data dnumero(10) type n.
dnumero = '00000000010'.
write dnumero.
write dnumero no-zero.
FORMATOS DE FECHA. Se utiliza para adaptar los formatos de lasfechas que en SAP se almacenan con formato YYYYMMDD al quenecesitemos en nuestro listado.
write: / sy-datum.write: / sy-datum MM/DD/YY.
-
5/26/2018 Curso Abap Para Consultores
92/200
92
Formatos de los datos de
salida( IV )
n FORMAT INTENSIFIED ON/OFF
n FORMAT INVERSE ON/OFF
n FORMAT COLOR n
......
Estas instrucciones. Permite modificar el formato al editar un campoen pantalla.
FORMAT INTENSIFIED ON/OFF. Esta instruccin permite comenzara utilizar y dejar de hacerlo un tipo de formato de salida.
FORMAT INVERSE ON/OFF Cambia el color de la fuente en ellistado.
FORMAT COLOR n. Cambia el color de fondo del listado.
format intensified on.
write / 'Prueba de colores'.
format intensified off.
format inverse on.
write / 'Prueba de colores'.
format inverse off.
format color 3.
write / 'Prueba de colores'.
format color off.
-
5/26/2018 Curso Abap Para Consultores
93/200
93
Formato de pgina ( I)
n TOP-OF-PAGE
n END-OF-PAGE
n NEW-PAGE
n REPORT NO STANDARD
PAGE HEADINGn REPORT LINE-SIZE
LINE-COUNT
Podemos hacer tratamientos por inicio y fin de pgina con loseventos:
TOP-OF-PAGE y END-OF-PAGE.END-OF-PAGE no se ejecutar si el salto de pgina
se produce con un NEW-PAGE.
NO STANDARD PAGE HEADING: para que lacabecera del report del standard de SAP no salga.
LINE-SIZE: ancho de lnea del listado.
LINE-COUNT: lneas por pgina del listado.
-
5/26/2018 Curso Abap Para Consultores
94/200
94
Formato de pgina( II)
NEW-PAGE PRINT ON/OFF
NO-DIALOG
LINE-COUNT
LINE-SIZE
DESTINATION INMEDIATELY
Hay varias formas de imprimir un report:
- Una vez ha salido el report por pantalla con la opcin
Imprimir.- Imprimir sin visualizar por pantalla con la opcin
Imprimir desde la pantalla de seleccin o deparmetros.
Desde el programa ABAP/IV podemos controlar la impresin con elNEW-PAGE y las opciones:
PRINT ON/OFF: pantalla o impresora
NO-DIALOG: no visualiza la pantalla de opciones deseleccin
LINE-COUNT: lneas por pgina
LINE-SIZE: tamao de lnea
DESTINATION: impresora destino
INMEDIATELY: impresin inmediata S/N.
-
5/26/2018 Curso Abap Para Consultores
95/200
95
Elementos de texto y
mensajesn Creacin y visualizacin de mensajes :
transaccin SE91
n MESSAGE Tnnn WITH ...
n REPORT MESSAGE-ID
MESSAGE Tnnn.
MESSAGE Tnnn WITH ...
El entrono de desarrollo de programas en ABAP nos permite manejar elementos detexto sin necesidad de codificarlos en el programa.
Los elementos de texto pueden ser ttulos de reports, cabeceras de reports, textosde seleccin y textos numerados. Todo esto est en Pasar a Elementos detexto.
Con los Ttulos y Cabeceras podemos tratar el ttulo, cabeceras de report ycabeceras de columna que saldr po pantalla e impresora.
Con los Textos de seleccin trataremos los comentarios que acompaan a losparmetros del tipo PARAMETERS o SELECT-OIPTIONS.
Con los textos numerados podemos utilizar constantes de tipo texto sin necesidadde declararlas en el cdigo del programa. Los nombres de las constantes sernTEXT-xxx, dnde xxx son tres caracteres cualquiera.
Con los mensajes de dilogo que aparecen en la lnea de mensajes sonmanejables desde un programa.
Donde nnn es el nmero de mensaje dentro de su respectiva rea de mensajes y Tes el tipo de mensajes
A: cancelacin o Abend del proceso
E: error. Es necesaria una correccin de los datos.
I: informacin. El proceso continuar con un ENTER.
S: confirmacin
W: warning. Podemos cambiar los datos o pulsar INTRO paracontinuar.
En MESSAGE Tnnn WITH , en la posicin del mensaje que seencuentra el smbolo &, podemos utilizar el valor que le pasamos como parmetro
a la instruccin MESSAGE. No podemos utilizar ms de 4 parmetros por mensaje.los datos sobre los mensajes estn en la tabla T100.
-
5/26/2018 Curso Abap Para Consultores
96/200
96
Llamada a otro report
SUBMIT
( VIA SELECTION-SCREEN )
( AND RETURN )
Desde un programa podemos llamar a otro; para ello utilizamos elSUBMIT.
Si queremos que nos pase por la pantalla de seleccin del segundoreport utilizaremos VIA SELECTION-SCREEN.
Si queremos que cuando halla ejecutado el segundo report, nosvuelva al primero para continuar con el resto del cdigo del primeroutilizaremos AND RETURN.
-
5/26/2018 Curso Abap Para Consultores
97/200
97
Listados ALVnALV es la abreviatura de Advanced
List Viewer.
n Encapsulan en funciones estndar lasopciones ms utilizadas en listados.
n Simplifican el mantenimiento de los
programas a la vez que ofrecen msopciones de cara al usuario.
-
5/26/2018 Curso Abap Para Consultores
98/200
98
Listados ALV - Funcin
n La funcin principal a la que se invocaes REUSE_ALV_LIST_DISPLAY.
n Para ello hay que rellenar diferentestablas internas, con los datos que sehan de mostrar y los diferentesatributos de los mismos.
REPORT zalv_simple.
* 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
*
-
5/26/2018 Curso Abap Para Consultores
99/200
99
Listados ALV - Include
n En Lladr se ha encapsulado estafuncionalidad en el include ZEBCI013.
nPERFORM listado_tabla_alv TABLES i_listado
USING 'I_LISTADO'
alv_fieldtab.
REPORT zalv_simple.
* 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
*
-
5/26/2018 Curso Abap Para Consultores
100/200
100
Creacin de transaccionesn Las transacciones se crean en la
pantalla SE93
n Se selecciona el tipo de objeto deinicio de la transaccin
n Se crea la transaccin
Las transacciones se crean en la pantalla SE93, seleccionamos eltipo de objeto de inicio de la transaccin ( para asociar un report, se
seleccionaria el botn de Programa e imagen de seleccin ) ycreamos la transaccin asocindola al programa que va a serllamado por esta.
-
5/26/2018 Curso Abap Para Consultores
101/200
101
Creacin de transacciones
Las transacciones ms normales sern las que ejecuten un report,para ello la opcin que hay que seleccionar es Programa e imagen
de seleccin (tranaccin de report).
Podriamos crear diferentes transacciones para un mismo report condiferentes variantes personalizadas.
-
5/26/2018 Curso Abap Para Consultores
102/200
102
Asignacin transacciones a men
Ir a la transaccin SE43.
Introducir el men de mbito S000 (men principal de SAP)
Seleccionar un ID de ampliacin
Navegar al menu en el que se quiere introducir la nueva transaccin
Insertar opcin de men -> Insertar en el mismo nivel
-
5/26/2018 Curso Abap Para Consultores
103/200
103
Variantes de transaccinn Permiten definir atributos a las
transaccin de forma anloga a laspantallas de seleccin de un report
Desde la transaccin SHD0 podemos crear variantes paratransaccin de forma parecida a la de hacerlo para reports.
Para ello realizamos una simulacin de las pantallas por las quequeremos pasar y al finalizar la ejecucin de las mismas podemoscambiar diferentes atributos.
-
5/26/2018 Curso Abap Para Consultores
104/200
104
Variante de transaccin-Ejemplo
Vamos a crear una variante de transaccin para que al crear unpedido slo permita la clase PS (Pedido estndar) y que no se
permita cambiarla al usuario.
Para ello introducimos la transaccin sobre la que queremos crear lavariante y elegimos un nombre de variante.
Al finalizar de introducir los campos que queremos, nos pedir quemodifiquemos atributos.
-
5/26/2018 Curso Abap Para Consultores
105/200
105
Variante de transaccin-Ejemplo
La variante que hemos creado, podemos hacer que sea la varianteestndar de la transaccin por defecto, o podemos crear otra
transaccin que ejecuta la transaccin inicial pero con nuestravariante.
-
5/26/2018 Curso Abap Para Consultores
106/200
106
INTERFACES
-
5/26/2018 Curso Abap Para Consultores
107/200
107
INDICEnAnlisis y preparacin de datos
n Ficheros secuenciales y locales
n Workbench de Control de Batch Input
n Control de Batch Input
n Batch Input Recorder transferencia dedatos
-
5/26/2018 Curso Abap Para Consultores
108/200
108
Anlisis y Preparacin deDatos
n Sistema Externo Sistema SAP
n Sistema SAP R/3 Sistema SAP R/3
Anlisis y preparacin de datos
Gran cantidad de datos no pueden ser transferidosmanualmente desde un sistema antiguo al Sistema R/3. Esto es
inaceptable para una compaa por razones econmicas. Por tanto,necesitas un mtodo de transferencia de datos automtico.
La transferencia de datos es necesaria si los datos sontransferidos de un Sistema Externo al Sistema SAP R/3
Por tanto, debemos encontrar la manera de transportarlos datos a la base de datos del Sistema R/3. Por razones deintegridad tu no puedes importar datos a la base de datos del
Sistema R/3 directamente.
-
5/26/2018 Curso Abap Para Consultores
109/200
109
Sistema Externo Ficheros Secuenciales
Ficheros Secuenciales Interfaces SAP/
Chequeos
Interfaces SAP/ Sistema R/3
Chequeos SAPdata
Anlisis y preparacin de datos
Cuando transfieres datos al Sistema R/3 desde unSistema R/3 diferente o desde un Sistema Externo, se debe
asegurar la integridad de los datos.
Esto significa que la transferencia de datos esta sujetaa los mismos chequeos que soportaran si se hiciera online.
Lo mejor y ms simple, por tanto, es usar transaccionesSAP para la transferencia de datos que utiliza los mismos chequeosque si se hace online.
-
5/26/2018 Curso Abap Para Consultores
110/200
110
Anlisis y Preparacin de Datos
Sistema Externo Ficheros Secuenciales
Ficheros Secuenciales Batch Input
Call Transaction
Direct Input
Sistema R/3 (SAPdata)
Para transferir datos al Sistema R/3 desde un Sistema Externo odesde otro Sistema R/3 puedes usar el mtodo BATCH INPUT (BI),
CALL TRANSACTION (CT) y DIRECT INPUT (DI).Estos mtodos dan las siguientes ventajas:
- La interaccin manual no es requerida durante latransferencia de datos. Si los datos a pasar estn estn yatransformados en formato electrnico (por ejemplo en un sistema deficheros) , entonces puedes usar estos mtodos para transferir losdatos automticamente al Sistema R/3.
- Porque estos sistemas utilizan las mismastransacciones para transferir datos al Sistema R/3 que un dialogo deusuario, los datos heredados estn sujetos a los mismos chequeos ycontroles que los datos entrados manualmente. Esto asegura laintegridad de los datos.
-
5/26/2018 Curso Abap Para Consultores
111/200
111
Anlisis y Preparacin de Datos
Sistema Externo Campos y Estructuras
Campos y Estructuras Qu campos yestructuras van a ser transferidos?
Campos SAP Sistema R/3
y Estructuras
El primer paso implica analizar los datos que van a ser transferidos alSistema R/3.
El objetivo es establecer como los datos existentes deben sermapeados a la estructura de datos SAP.
Determinar la estructura de los datos, en que aplicacin y usandoque transaccin, los datos sern introducidos al Sistema R/3.
-
5/26/2018 Curso Abap Para Consultores
112/200
112
Anlisis y Preparacin de Datos
nAnalizar la transaccin SAP
nAsignacin de Datos
n Conversin de Formato
Analizar la transaccin SAP:
Ejecutar la transaccin que es utilizada para introducir datos en el Sistema R/3.
El anlisis de la transaccin debe determinar la siguiente informacin:
- cdigo de la transaccin, si no es conocido an
- campos requeridos para el input
- campos para los cuales pueden ser usados valores por defecto
- nombre, tipo, longitud de los campos que son usados en la transaccin.
Asignacin de Datos:
En la transferencia de datos una de las tareas ms importantes es establecer qu campos de datos delSistema Externo se corresponden con campos de datos del Sistema R/3.
Los pasos para asignar datos son:
- Establecer cuales de los datos existentes deben ser mapeados para la estructurade datos SAP.
- Establecer los datos que pueden ser transferidos directamente desde los datos.Estos campos corresponden directamente a los campos de datos existentes y estos a los campos dedatos SAP.
- Establecer que campos del Sistema Externo deben ser adaptados (conversin delos datos en el tipo y en la longitud de los datos) antes de transferirlos a los campos de datos SAP.
- Establecer las reglas para rellenar los campos de datos en el Sistema R/3 donde elSistema Externo no puede ser utilizado directamente.
Conversin de Formato
Convertir los datos existentes al formato SAP. Determinar el conjunto de valores validos de los camposde datos SAP y convertir los datos heredados al nuevo conjunto de valores validos.
Cuando usas el mtodo de transferencia de datos, los datos heredados deben estar formateadosexactamente de la misma manera que si los fueras a introducir a travs del teclado con el dilogo deusuario. Las reglas a aplicar son las siguientes:
Los datos deben estar en formato carcter.
Los campos individuales no deben ser ms largos que los campos SAP.
Se convierten los datos y se dejan en un fichero secuencial.
-
5/26/2018 Curso Abap Para Consultores
113/200
113
FICHEROS
SECUENCIALES
-
5/26/2018 Curso Abap Para Consultores
114/200
114
Visin General
SAP
Programa ABAP
TRANSFER READ DATASET
R/3
Para procesar ficheros secuenciales se utiliza el mandato READDATASET (operaciones de lectura) y el mandato TRANSFER
(operaciones de escritura).
El fichero secuencial debe estar visible por el servidor deaplicaciones. Los ficheros que se encuentran en el ordenador depresentacin no pueden ser procesados por estas sentencias.
-
5/26/2018 Curso Abap Para Consultores
115/200
115
Importar y exportar datos
SISTEMA DELCLIENTE
SISTEMA SAP
____________
____________
Los ficheros secuenciales se utilizan como interface entre el sistemadel cliente y el sistema R/3.
La misin de los ficheros secuenciales es importar datos del sistemadel cliente al sistema R/3 y exportar datos del sistema R/3 al sistemadel cliente.
-
5/26/2018 Curso Abap Para Consultores
116/200
116
Procesar ficheros secuenciales
Abrir fichero
Cerrar fichero
Procesar fichero
OPEN DATASETFOR...IN...AT POSITION
TRANSFERTO
CLOSE DATASET
OPEN DATASET
Para abrir un fichero secuencial, usaremos la instruccin OPEN
DATASET.Si lo hace con xito, SY_SUBRC = 0. Sino, ser igual a 8.
Algunas opciones del FOR:
OUTPUT:Abre el fichero para guardar datos. Si el fichero existe,su contenido se borra.
INPUT:Abre el fichero existente para leer sus datos. Si el ficheroya estaba abierto, posiciona
el puntero en el primer dato.
APPENDING:Abre el fichero para guardar datos al final. Si elfichero no existe, lo genera. Si el
fichero ya estaba abierto posiciona el puntero al final.
Se recomienda abrir el fichero antes de realizar cualquier operacin sobre l. Si nose abre por defecto toma el modo INPUT.
Opciones del IN:
TEXT MODE: Los datos son interpretados como lneas deestructura encada operacin de
lectura y escritura. Si el rea de datos es demasiado larga, la lneade estructura es ajustada
con blancos. Si el rea de datos es demasiado pequea, el final dela lnea de estructura se
pierde.
BINARY MODE: Los datos no son interpretados en lasoperaciones de lectura y escritura.
-
5/26/2018 Curso Abap Para Consultores
117/200
117
Transferir datos a un fichero secuencial
TRANSFER TO
Cada instruccin TRANSFER transfiere un registro de datos a unfichero secuencial.
Antes de TRANSFER, sita el registro de datos en un campo o enuna estructura.
Posibles estructuras son campos string o reas de trabajo de tabla.
La ejecucin del TRANSFER depende del modo:
BINARY MODE: Escribe el largo del campo oestructura.
TEXT MODE: Escribe una lnea.
Si el fichero especificado no esta abierto, el TRANSFER intenta abrirel ficheroFOR OUTPUT (IN BINARY MODE) o usando lascondiciones del ltimo OPEN DATASET para ese fichero. Si esto noes satisfactorio, se produce un error de ejecucin. Los errores queocurren durante un TRANFER determinan la terminacin delprograma.
EL parmetro adicional LENGTH del TRANSFER tepermite especificar una longitud en bytes. En este caso, el nmeroexacto de caracteres especificado en es transferido. Si la
estructura es ms corta, el registro es rellenado con blancos en textmode y con ceros en hexadcimal si esta en binary mode. Si laestructura es ms larga, el registro es truncado.
-
5/26/2018 Curso Abap Para Consultores
118/200
118
Leer datos de un fichero
secuencial
READ DATASET INTO
Cada instruccin READ DATASET lee un registro desde un ficherosecuencial a un campo o estructura. Posibles estructuras son
campos strings o reas de trabajo de tabla.La ejecucin del READ DATASET depende del modo:
BINARY MODE: Lee la longitud de la estructura.
TEXT MODE: Lee una lnea.
Si el fichero especificado no esta abierto, el READ DATASET intentaabrir el fichero con las opciones del ltimo OPEN DATASET.
Si ha alcanzado el final del fichero, SY_SUBRC coger el valor 4. Deotra manera pondr un 0. Si el fichero no ha podido abrirse, SY-SUBRC contendr el valor 8. Los errores dan como resultado laterminacin del programa.
El READ DATASET es parecido al TRANSFER, no realizaconversiones implcitas. Los datos son ledos tal y como han sidoescritos.
El READ DATASET junto con el parmetro adicionalLENGTH te permite especificar la longitud del registro delfichero importado. En modo binario tu ves la longitud de la estructuraleda, en modo texto ves la longitud del registro.
-
5/26/2018 Curso Abap Para Consultores
119/200
119
Borrar un fichero secuencial
DELETE DATASET
La instruccin DELETE DATASET se utiliza para borrar un ficherosecuencial explcitamente. Si esto se hace satisfactoriamente, SY-
SUBRC es igual a 0.
-
5/26/2018 Curso Abap Para Consultores
120/200
120
Cerrar un fichero secuencial
CLOSE DATASET
Usas la instruccin CLOSE DATASET para cerrar un ficherosecuencial explcitamente.
En un programa, todos los ficheros abiertos son implcitamentecerrados cada vez que cambia la pantalla, y entonces reabiertosexactamente exactamente como estaban antes cuando el procesotermin. Al final de un programa todos los ficheros son cerrados.
Abrir y cerrar ficheros explcitamente da rentabilidad al sistema.
-
5/26/2018 Curso Abap Para Consultores
121/200
121
Esquema proceso fichero secuenciales
Definir estructuras
Abrir fichero
Llenar Estructura Leer datos
Transf. Estructura Procesar datos
Cerrar fichero
HayMs
Datos?
Fin delFichero?
GRABAR LEER
-
5/26/2018 Curso Abap Para Consultores
122/200
122
WORKBENCH DETRANSFERENCIA
DE DATOS
-
5/26/2018 Curso Abap Para Consultores
123/200
123
Tipos de interfaces
-
5/26/2018 Curso Abap Para Consultores
124/200
124
Batch InputVisin General
SISTEMA EXTERNO
SISTEMA SAP
Debido al gran volumen de informacin que hay que tratar, en ciertascircunstancias, seria deseable disponer de un sistema de carga de
forma automtica.Por ejemplo, cuando se realiza un cambio de sistema, de otrosistema de gestin a SAP, hay que traspasar toda o parte de lainformacin que existe en el sistema antiguo a SAP.
SAP dispone del BATCH INPUT, que realiza esta funcin a laperfeccin. La tcnica del Batch Input, proporciona todo lo necesario,para validar los datos que se estn introduciendo en el sistema.
Si la actualizacin de tablas, se hiciera de forma manual, podrasuceder que no se realizaran las verificaciones necesarias, y dentrodel sistema, habra datos que no seran correctos y debido a queSAP es un sistema integrado, perderiamos esta integracin.
Bsicamente los Batch Input, simulan el comportamiento de unusuario introduciendo datos de forma manual. Cada pantalla en laque se van entrando datos, realiza las verificaciones oportunas, deesta forma llega a ser casi imposible que algn dato incorrecto,pueda saltarse el sistema de verificacin.
Los datos necesarios para realizar un Batch Input, pueden extraersede un fichero tipo ASCII, y otros tipos de ficheros, siempre que seaconocido el formato de los mismos.
-
5/26/2018 Curso Abap Para Consultores
125/200
125
Batch Input
Proceso de un Batch Input
Fichero Secuencial
Programa BatchInput
Cola de BatchInput
SAP R/3
Bsicamente la secuencia de Batch Input, puede estructurarse como:
- Obtencin del fichero de datos.
- Proceso de los mismos con un programa detratamiento de Batch Input.
- Con la ejecucin del programa de Batch Input, segenera un juego de datos, que contiene los
datos que se han de procesar, y la pantalla paraintroducirlos.
- Con la utilidad de proceso de los Batch Input, seprocesara el juego de datos.
Una vez finalizado este proceso, los datos, estarn en las tablascorrespondientes, y adems estarn verificados.
-
5/26/2018 Curso Abap Para Consultores
126/200
126
Batch InputCreacin de un programa de Batch Input
Mandante CLIENT
Nombre de Sesin GROUP
Fecha de bloqueo HOLD
Borrar sesin tras proceso
KEEP
Nombre de usuario USER
Cdigo de transaccin
TCODE
Tabla BDCDATADYNPROTAB
BDC_OPEN_GROUP
BDC_INSERT
BDC_CLOSE_GROUP
Los pasos necesarios para la creacin de un programa de BatchInput, son los siguientes:
- Abrir la sesin con la funcin BDC_OPEN_GROUP.Los parmetros necesarios para llamar a esta funcin,
son los siguientes:
- Mandante.
- Nombre para la sesin de Batch Input.
- Fecha de bloqueo.
- Borrar sesin tras proceso.
- Nombre del usuario. (SY-UNAME).
- Insertar datos en la sesin con la funcinBDC_INSERT, que tiene como parmetros:
- Cdigo de la transaccin a ejecutar.
- Estructura BDCDATA asociada.
- Cerrar la sesin de Batch Input conBDC_CLOSE_GROUP.
-
5/26/2018 Curso Abap Para Consultores
127/200
127
Batch InputBDC_OPEN_GROUP
EXPORTING
CLIENT = mandante
GROUP = nombre de la sesin
HOLDDATE = fecha de bloqueo
KEEP = flag de borrado
USER = nombre de usuario
EXCEPTIONSQUEUE_ERROR = 1
CLIENT_INVALID = 2
GROUP_INVALID = 3
CALL FUNCTION BDC_OPEN_GROUP
Mediante la funcin BDC_OPEN_GROUP, se puede abrir una sesinpara realizar un Batch Input.
Los parmetros son los siguientes:
CLIENT: Mandante. ( Parmetro obligatorio )
GROUP: Nombre de la sesin. ( Parmetro obligatorio )
HOLDDATE: Fecha de bloqueo del juego de datos.
No ser posible ejecutar el juego dedatos hasta la fecha indicada. ( Parmetro
opcional )
KEEP: Marca si se guarda o si se borra el juego dedatos una vez procesado.
USER: Nombre del usuario. ( Parmetro obligatorio ).
-
5/26/2018 Curso Abap Para Consultores
128/200
128
Batch Input
BDC_INSERT
EXPORTING
TCODE = cdigo de transaccin
TABLES
DYNPROTAB = Tabla BDC
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
CALL FUNCTION BDC_INSERT
Mediante la funcin BDC_INSERT, es posible insertar datos paraprocesarlos posteriormente. Los datos que se introducen con la
funcin BDC_INSERT, sern procesados cuando se lance el juegode datos.
Los parmetros de esta funcin, son los siguientes:
TCODE: Cdigo de la transaccin, es decir, el cdigode la pantalla donde se van a introducir
los datos.
DYNPROTAB: Parmetro de tipo tabla. En una tablade tipo BDCDATA se dispone de los datos
para la pantalla especificada con el TCODE.
Estructura de la tabla BDCDATA:
PROGRAM: Nombre del programa.
DYNPRO: Nmero de dynpro de entrada de datos.
DYNBEGIN: Indica si es inicio de dynpro.
FNAM: Nombre del campo de dynpro.
FVAL: Valor que ha de tomar el campo.
-
5/26/2018 Curso Abap Para Consultores
129/200
129
BATCH INPUTContenido tabla BDCDATA
Especificamos:
1) Programa
Dynpro
Inicio Dynpro
2) Nombre del campo dynpro
Valor del campo de dynpro
-
5/26/2018 Curso Abap Para Consultores
130/200
130
BATCH INPUTBDC_CLOSE_GROUP
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
CALL FUNCTION CLOSE_GROUP
Una vez insertados todos los datos de entrada en el sistema, secerrara la sesin de Batch Input con la funcin
BDC_CLOSE_GROUP.
Si todo ha sido correcto, podremos pasar a procesar el juego dedatos.
Mediante la transaccin SM35 es posible gestionar los juegos dedatos para los Batch Input.
-
5/26/2018 Curso Abap Para Consultores
131/200
131
CALL TRANSACTIONVISIN GENERAL
QueueCALL TRANSACTION
Funcin de Aplicacin
Funcin Batch Input
Funcin de Aplicacin
Fichero
Base Datos SAP
Tabla BDC
En contraste con el batch input, el mandato CALL TRASACTIONpermite pasar directamente a la interface de dilogo sin tener que
gestionar el juego de datos.
-
5/26/2018 Curso Abap Para Consultores
132/200
132
CALL TRANSACTIONSENTENCIA PARA BATCH INPUT
CALL TRANSACTION
USING
MODE
UPDATE
MESSAGE INTO
CALL TRANSACTION es una alternativa al proceso convencional de batch input.La transferencia de datos es particularmente rpida, ya que la generacin de juegode datos no se realiza.
Aunque CALL TRANSACTION tiene ciertas ventajas sobre el proceso normal debatch input no ofrece las mismas opciones de correccin y administracin que elbatch input.
MODO VISUALIZACIN:
- A: Visualizar todo.
- E: Visualizar solo errores
- N: No visualizar
MODO ACTUALIZACIN:
- S: No contina procesando hasta que se finaliza la actualizacin.( Sincrona ).
- A: Contina procesando inmediatamente. ( Asincrona ).
El proceso es inmediato al contrario que en el Batch Input que es retrasado.
-
5/26/2018 Curso Abap Para Consultores
133/200
133
Control de Batch Input
nA procesar
nProcesada
nErrnea
nSiendo creada
nEn proceso
nFondo
Una sesin de B.I pue