curso abap para consultores

Upload: manuel-sandoval

Post on 15-Oct-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 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