Abapdocumentación
Abapdocumentación
Cdigo de Transaccin
BMV0 OY19 SCAM SCAT SE01 SE07 SE09 SE10 SE11 SE12 SE13 SE14 SE15 SE16 SE17 SE30 SE32 SE35 SE36 SE37 SE38 SE39 SE41 SE43 SE51 SE54 SE61 SE62 SE63 SE65 SE66 SE68 SE71 SE72 SE73 SE74 SE75 SE76 SE77 SE80 SE81 SE82 SE84 SE85 SE86 SE87 SE88 SE91 SE92 SE93
Descripcin
Gestin de los log de direct input. Comparacin del contenido de una tabla entre dos sistemas SAP R/3 CATT Management Computer Aided Test Tool Sistema de gestin de transportes Estatus de las ordenes de transporte rdenes de transporte Workbench rdenes de transporte Customizong Mantenimiento del diccionario de datos Visualizacin del diccionario de datos Mantenimiento de tablas Diccionario de datos, utilidad para bases de datos Sistema del repositorio Visor de datos (Datos Browser) Visor de tablas Anlisis de tiempos de ejecucin Mantenimiento de elementos de texto. Mantenimiento de mdulos de dilogo Mantenimiento de bases de datos lgicas Mantenimiento de mdulos de funcin Mantenimiento de programas (editor ABAP/4) Editor split screen Manteniemiento de mens (men Painter) Mantenimiento de mens de rea. Mantenimiento de dynpros (screen painter) Mantenimiento de vistas Gestin de la documentacin Utilidad ramo industrial Traductor Documentacin estadstica de textos breves Documentacin estadstica de textos explicativos Gestin del departamento de traduccin SAPscript layout set SAPscript estilos SAPscript fonts SAPscript conversin de formato SAPscript settings SAPscript traductor Layout Sets SAPscript traductor estilos Visor de objetos (object browsers) Jerarqua de aplicacin (SAP) Jerarqua de aplicacin (cliente) Sistema de informacin del repositorio. Sistema de informacin del repositorio. Sistema de informacin del repositorio. Gestin del modelo de datos (data modeler) Sistema de informacin Gestin de mensajes Gestin de mensajes del log del sistema Gestin de cdigos de transaccin
Pg. 1 de 48
Cdigo de Transaccin
SU01 SU02 SU03 PFCG SUIM
Descripcin
Administracin de usuarios Administracin de perfiles Administracin de autorizaciones Generador automtico de perfiles Sistema de informacin
TRANSACCIONES DE LOGSTICA
Este es resumen amplio de las transacciones del mdulo de logstica (MM) de la versin 3.x del sistema SAP R/3:
Cdigo de Transaccin
ME00 MB00 MR00 MRBE LPRO MD00 MI00 MM00 CL00 VA00 VL00 MCE9 MCC2 MCT2 MC01 MC02
Descripcin
Gestin Materiales. Compras Gestin Materiales. Gestin de Stocks Gestin Materiales. Verificar Facturas Gestin Materiales. Valoracin Gestin Materiales. Pronostico de Material Gestin Materiales. Planificacin Necesidades Gestin Materiales. Inventario Gestin Materiales. Maestro Materiales Gestin Materiales. Clasificacin Gestin comercial. Ventas Gestin Materiales. Expedicin Sistema Info. Compras. Sistema Info. Gestin Stocks Sistema Info. Comercial Sistema Info. Buscar va Set Info. Sistema Info. Buscar va Texto
Pg. 2 de 48
Pg. 3 de 48
Cdigo de Transaccin
PA03 PA20 PA30 PP02 PU00
Descripcin
Cambia el registro de control de nminas Visualiza infotipo PA Crearo modifica infotipos PA. Entrada rpida para objetos de tipo PD Borra infotipo PA de un empleado.
Cdigo de Transaccin
OLSD VB21 VK15 VA01 VA02 VA03 VA05 VA11 VA12 VA13 VA15 VL02
Descripcin
Configuracin de SD Volumen de ventas y compras Mltiples condiciones de ventas. Sol. Material Almacn. Crear Sol. Material Almacn. Modificar Sol. Material Almacn. Visualizar Sol. Material Almacn. Lista Crear solicitud de venta Modificar solicitud de venta Visualizar solicitud de venta Lista solicitud de venta Entrega
Pg. 4 de 48
11/05/05
Responsable: Fernando Calderon [email protected] - 5071-0353
BC400
Abap
Lenguaje de programacin del sistema SAP. Se trabajara sobre el R/3, aspecto funcional. R/3 = ERP Sistema integrado de gestin para una empresa. R/3 ABAP BASIS
Pg. 5 de 48
Transacciones
Todo en SAP es una transaccin. La transaccin SE38 es la que me permite el ingreso al entorno de programacin, el ABAP Editor. Para crear un programa que no es estndar (cualquier tipo de aplicacin desarrollada) el mismo debe respetar la nomenclatura de comienzo del nombre con las letras Z o Y. La nomenclatura de escritura de nombres de programas del curso es:
ZEA08_Axx_nnn_libre
Donde Axx es el nmero de alumno asignado, y nnn el nmero de programa que se esta desarrollando
Estructura de ciclos
IF condicin. ------ELSE. ------ENDIF. DO ----ENDDO.
Pg. 6 de 48
Definicin de Datos
Pg. 7 de 48
DATE: Define una variable dentro de un programa. El estandar de definicin utiliza d_nombredato. CONSTANTS: Define una constante. El estandar de definicin utiliza c_nombreconstante. Ejemplo: CONSTANTS: c_carrid(2) type c value SQ.
Mandante
Existen tres grandes reas de manejo de ABAP que se denominan ambientes: Desarrollo, Testing y Produccin. Por cada ambiente existen los que se llaman mandantes, lo cual al iniciar sesin bajo un mandante me permite ejecutar una transaccin. Por ejemplo en el ambito de desarrollo el mandante 200 me permite desarrollar aplicaciones.
Pg. 8 de 48
Por medio de la transaccin SE11 se manejan las variables del sistema. La estructura que tiene las variables del sistema es la SYST y se puede visualizar por medio de la SE11.
12/05/05
Responsable: Martin Girolamo [email protected]
Pg. 9 de 48
Tablas Internas
La transaccin SE11 es la que me permite el ingreso al ABAP Dictionary: Initial Screen, en donde se pueden visualizar los contenidos de las tablas (BD). Para la creacin de tablas internas se utiliza: (WORK AREA) DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, END OF it_sbook. Donde IT_SBOOK es la tabla interna, OCCURS 0 permite el dimensionamiento dinamico de la tabla y CARRID, CONNID, FLDATE son los campos de la tabla interna. Se puede referenciar campos diferentes de tablas diferentes que existan en la BD.
El LIKE me permite referenciar un tipo de dato transparente (dato que se encuentra definido en la tabla), en el caso que yo deseara definir un tipo de dato de un campo de una tabla interna debera tipear: CARRID(3) type c,
Para crear una tabla intermedia que contenga todos los campos de la tabla de la base de datos se utiliza: DATA it_sbook type TABLE OF SBOOK WITH HEADER LINE.
SELECT carrid connid fldate class FROM sbook INTO TABLE it_sbook WHERE fldate = xxx. SELECT carrid connid fldate class FROM sbook INTO CORRESPONDING FIELDS OF it_sbook WHERE fldate = xxx.
Pg. 11 de 48
Para realizar la limpieza de toda la tabla interna resultante de la consulta se utiliza: (No efectua el borrado de la cabecera) REFRESH it_sbook.
Pg. 12 de 48
Pg. 13 de 48
Ejercitacin
Aplicacin que recibe por la pantalla de seleccin de manera obligatoria un CARRID y de manera no obligatoria un rango de fechas a buscar . Realiza esta consulta sobre la base de datos SBOOK y se obtiene el resultado.
REPORT ZEA08_A05_004_EJERCICIOTABLAS1. PARAMETER p_carrid(2) type c OBLIGATORY. DATA: d_carrid(2) type c. d_carrid = p_carrid. TABLES: sbook. SELECT-OPTIONS s_fldate FOR sbook-fldate. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid, connid LIKE sbook-connid, fldate LIKE sbook-fldate, bookid LIKE sbook-bookid, customid LIKE sbook-customid, custtype LIKE sbook-custtype, smoker LIKE sbook-smoker, class LIKE sbook-class,
Pg. 14 de 48
Otra manera de crear una tabla intermedia es creando una WORK AREA.
Ejemplo: MESSAGE tipo numero (clasedemensaje). MESSAGE E001(00). MESSAGE E001(00) WITH p_bukrs. MESSAGE I002(zea03) WITH text-001. Lo que se incluya en text-001 se copiara en los campos & de la tabla de mensajes Por medio de la transaccin SE91 se manejan los numeros de mensaje.
Pg. 16 de 48
13/05/05
Responsable: Alberto
Para realizar una consulta en una tabla por medio del contenido de una consulta previa se utiliza el FOR ALL ENTRIES (emula al INNER JOIN).
REPORT ZEA08_A05_005_EJ_ACP_EN_ABAP. ****************************************** *PANTALLA DE SELECCION ****************************************** PARAMETER p_carrid(2) type c OBLIGATORY. DATA: d_carrid(2) type c. d_carrid = p_carrid. TABLES: sbook, sflight. SELECT-OPTIONS: s_connid FOR sflight-connid,s_fldate FOR sflight-fldate. ****************************************** *TABLAS INTERNAS ****************************************** DATA: BEGIN OF it_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, price LIKE sflight-price, END OF it_sflight. DATA: BEGIN OF it_sbook OCCURS 0, carrid LIKE sbook-carrid,
Pg. 17 de 48
Pg. 18 de 48
16/05/05
Responsable: Melisa Fredes [email protected]
Transacciones
SE38: Transaccin que ejecuta el editor de programas. SE10: Transaccin de la ordenes de transporte. SE11: Transaccin de seleccin de Datos (Diccionario de Datos). SE37: Transaccin que muestra todos los modulos de funcin. (Para buscar una funcin se debe introducir z* + F4 y seleccionarla de la lista de funciones.) SE80: Transaccin que me brinda una vista de mi programa y sus objetos asociados.
Mdulos de Programa
En ABAP existen modulos de programacin que simplifican la declaracin, seleccin e impresin de datos. Para la inclusin de modulos se utiliza: Para proceder a la creacin del include se realiza doble click sobre el nombre del programa. El include TOP contiene la toda definicin de los datos (declaracin de variables que se van a utilizar). El include F1 contiene toda la logica del programa.
En el programa principal se establecen las llamadas a los diferentes include de la siguiente manera: Para la creacin de f_aero (Form = Subrutina) se realiza doble click sobre esta palabra y se prodede a la creacin de la subrutina dentro del include F1. All se colocar toda la lgica de subrutina. En el programa principal se reconocen eventos, donde por cada bloque de eventos el programa realiza una accin. Asi el programa principal queda divido en modulos que son ejecutados mediante los eventos. Mdulos del Programa Principal: Programa Principal Includes Pantalla Seleccin Procesamiento de Datos Impresiones Algunos ejemplos de eventos son:
PERFORM f_aero. la
Pg. 19 de 48
INCLUDE _TOP
*----------------------------------------------------------------------* * INCLUDE ZEA08_A05_006_EJ_ACP_TOP * *----------------------------------------------------------------------* ****************************************** *PANTALLA DE SELECCION ****************************************** PARAMETER p_carrid(2) type c OBLIGATORY. DATA: d_carrid(2) type c. d_carrid = p_carrid. TABLES: sbook, sflight. SELECT-OPTIONS: s_connid FOR sflight-connid,s_fldate FOR sflight-fldate. ****************************************** *TABLAS INTERNAS ****************************************** DATA: BEGIN OF it_sflight OCCURS 0, carrid LIKE sflight-carrid, connid LIKE sflight-connid, fldate LIKE sflight-fldate, price LIKE sflight-price, END OF it_sflight. DATA: BEGIN OF it_sbook OCCURS 0,
Pg. 20 de 48
INCLUDE _F1
*----------------------------------------------------------------------* * INCLUDE ZEA08_A05_006_EJ_ACP_F1 * *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form f_aerolinea *&---------------------------------------------------------------------* form f_aerolinea. SELECT carrid connid fldate price FROM sflight INTO TABLE it_sflight WHERE carrid = d_carrid AND connid IN s_connid AND fldate IN s_fldate. IF SY-SUBRC = 0. SELECT carrid connid fldate bookid customid custtype smoker FROM sbook INTO TABLE it_sbook FOR ALL ENTRIES IN it_sflight WHERE carrid = it_sflight-carrid AND connid = it_sflight-connid AND fldate = it_sflight-fldate. ELSEIF SY-SUBRC = 4. WRITE: 'Error en la seleccion de datos de la base de datos SFLIGHT'. ELSE. WRITE: 'Error el acceso a la base de datos SFLIGHT'. ENDIF. endform. " f_aerolinea *&---------------------------------------------------------------------* *& Form f_append *&---------------------------------------------------------------------* form f_append. IF SY-SUBRC = 0. LOOP AT it_sflight. LOOP AT it_sbook WHERE connid = it_sflight-connid AND carrid = it_sflight-carrid AND fldate = it_sflight-fldate. it_reporte-carrid = it_sflight-carrid. it_reporte-connid = it_sflight-connid. it_reporte-fldate = it_sflight-fldate. it_reporte-price = it_sflight-price. it_reporte-bookid = it_sbook-bookid. it_reporte-customid = it_sbook-customid. it_reporte-custtype = it_sbook-custtype. it_reporte-smoker = it_sbook-smoker. APPEND it_reporte. CLEAR it_reporte. CLEAR it_sbook. ENDLOOP. CLEAR it_sflight.
Pg. 21 de 48
Evitar Hardcodeo
Para evitar el hardcordeo se colocan las variables a implimir en los WRITE, de la siguiente manera: WRITE text-001. Para luego definir el valor del text-001 por medio del dobre click sobre su nombre. A su vez este valor de text-001 se puede traducir a diferentes idiomas mediante la opcin de menu GO TO / TRANSLATION.
Concatenar Strings
Para concatenar strings se utiliza la sentencia CONCATENATE. Ejemplo: v_salida(255) type c. CONCATENATE text-001 it_cuenta-saldo text-002 INTO v_salida SEPARATED BY SPACE. *SEPARATED BY .. *SEPARATED BY :.
17/05/05
Responsable: Ana Paula Barbieri [email protected] Mariano Paola
Diccionario de Datos
El diccionario ABAP contiene las definiciones de campo almacenadas en el sistema SAP estndar. Mediante la verificacin en el nivel de aplicacin R/3 se garantiza la consistencia de los datos, antes de que stos se transfieran a la base de datos. Para ir al diccionario de Datos vamos con la Trx. SE11, Que es una trx? Pg. 22 de 48
Ej: Dominio
Pg. 23 de 48
Especificaciones Tcnicas de una tabla Se encuentra en el men PASAR A o en la barra el botn Clase de dato: Indica el tipo de dato que contendr la tabla. Ellos pueden ser: 1. Datos Maestros: la informacin no vara en el tiempo. Ej: clientes, Proveedores, etc. 2. Datos Transaccionales: los datos cambian en el tiempo. Ej: asientos contables, Mov. de stock, etc. 3. Datos organizacionales: son datos tipo parmetros. Se modifican una sola vez y nada ms. Ej: tipo de proveedor. 4. Datos del Sistema: son los datos propios del sistema, ya estn creados. Categora del tamao: especifica la cantidad de registros que va a tener la tabla.
Entrega y Actualizacin de una tabla Dicha solapa se encuentra cuando se crea la tabla, el cual tiene 2 opciones: Clase de Entrega y Browser datos/Actual. La clase de entrega indica el tipo de tabla que es. Y el Browser datos/Actual.vist puede aceptar los siguientes valores: Visualizacin/Actualizacin no permitida La actualizacin y visualizacin para esta tabla/vista no son posibles en la transaccin SE16. La transaccin SE54 deniega la generacin de un dilogo de actualizacin, de manera que ya no es posible llamar automticamente las transacciones SM30/SM34 para esta tabla/vista. Visualizacin/Actualizacin permitida con restricciones La transaccin SE16 permite la visualizacin para esta tabla/vista pero no la actualizacin. La generacin de un dilogo de actualizacin para esta tabla/vista es posible mediante la transaccin SE54. La transaccin SM30 deniega la actualizacin y la visualizacin para esta Visualizacin/Actualizacin permitida La transaccin SE16 permite la actualizacin y visualizacin para La transaccin SE54 permite la generacin de un dilogo de actualizacin para esta tabla/vista. La transaccin SM30 permite la visualizacin y actualizacin para esta esta
Pg. 24 de 48
Si el campo tiene que tener valores predefinidos, para ello se deber ir a la solapa mbito Val. Y completar con los valores correspondientes. ndices Para la creacin de ndices se deber hacer un clic en el botn y se deber completar la identificacin del ndice, que debe empezar con z, luego la Descripcin Breve y el/los campos que van hacer ndices. Relacin de tablas Posicionarse en el campo que genera la relacin con la otra tabla y hacer un clic en el cuadradito que esta antes del campo, de esta forma se va a pintar el rengln. Luego presionar el icono . Ah se deber completar la tabla a relacionar y el campo Para poder ingresar los datos a una tabla o realizar una modificacin se deber crear una vista de la misma. Importante: Cuando se realizan cambios en la tabla hay que ir a la Trx. SE14 para que refleje las modificaciones Comandos para ser utilizados en los programas Insert: Permite ingresar registros nuevos en la tabla Sintaxis: 1. INSERT INTO dbtab VALUES wa. INSERT INTO (dbtabname) VALUES wa. INSERT dbtab FROM wa. INSERT (dbtabname) FROM wa. 2. INSERT dbtab FROM TABLE itab INSERT (dbtabname) FROM TABLE itab 3. INSERT dbtab. oder INSERT *dbtab. Ejemplo: DATA: wa TYPE scustom. wa-id = '12400177'. wa-nombre = 'Pedro'. wa-codigo = '69542'. wa-city = 'Heidelberg'. wa-custtype = 'P'. wa-discount = '003'. wa-telephone = '0788-4889'. INSERT INTO scustom VALUES wa.
Pg. 25 de 48
Modify: Permite modificar registros. Sintaxis: 1. MODIFY dbtab FROM wa. MODIFY (dbtabname) FROM wa. 2. MODIFY dbtab FROM TABLE itab. MODIFY (dbtabname) FROM TABLE itab. 3. MODIFY dbtab. MODIFY *dbtab. 4. MODIFY dbtab VERSION vers. MODIFY *dbtab VERSION vers. Ejemplo: DATA: wa TYPE scustom. wa-id = '12400177'. wa-name = 'Robinson'. wa-postcode = '69542'. wa-city = 'Heidelberg'. wa-custtype = 'P'. wa-discount = '003'. wa-telephone = '06201/44889'. MODIFY scustom FROM wa. Delete: Permite borrar registros. Sintaxis: 1. DELETE FROM dbtab. DELETE FROM (dbtabname). 2. DELETE dbtab FROM wa. DELETE (dbtabname) FROM wa. 3. DELETE dbtab FROM TABLE itab. DELETE (dbtabname) FROM TABLE itab. 4. DELETE dbtab. DELETE *dbtab. 5. DELETE dbtab VERSION vers. DELETE *dbtab VERSION vers.
Pg. 26 de 48
Long
30 20 40
Dominio: Znro es numrico de 4 posiciones Znombre es un char de 20 y los valores que tiene son: Lucas, Natalia, Federico, Carla. Cualquier cambio que se realice sobre una tabla se tiene que actualizar desde la SE14
Vista de Actualizacin: Permite el ingreso de datos a la tabla. - Vista de Actualizacin (Para crear vistas de actualizacin, SE80) Grupo de Funcin - Crear Funcin (Para crear grupo, SE80)
RESUMEN Partimos de la SE11 donde se crea la tabla, debe estar activo el DOMINIO y el ELEMENTO DE DATO, por ltimo se debe activa la TABLA. Si modifico la tabla me dirijo a la SE14 para actualizarla. Para crear la vista de actualizacin, a traves de la SE11, dentro de UTILIDADES/Generador de actualizacin vista, se agrega el grupo de funcin (que debe ser igual al nombre de la tabla), se setea la propiedad nmero de imagen y se crea la vista de actualizacin. Por medio de SM30 actualizo la tabla y puedo introducir registros dentro de la tabla por medio de Entradas Nuevas.
Estructuras de datos: Se crean mediante la transaccin SE11, seleccionando la opcin TIPO DE DATOS/ESTRUCTURA. Estas estructuras se utilizan en las tablas internas. Para incluir la estructura en el programa, la misma se debe incluir por medio de un include, para luego poder utilizar los campos de la misma. INCLUDE STRUCTURE (nombreestructura).
Si se tiene la variable V_DESC = CASA. Y se quiere obtener la letra S se coloca. V_R = V_DESC+2 (1). Significa que me salteo dos letras y tomo una letra en la posicion que me encuentro. Pg. 27 de 48
18/05/05
Responsable: Ana Paula Barbieri [email protected] Mariano Paola Diccionario de Datos (Continuacin) - Ayuda para bsqueda
Dentro de la transaccin SE11 la ayuda para busqueda se encuentra en Ayuda para Busqueda, se ingresa AANLI y luego Visualizar. En la definicin de ayuda para busqueda, en el metodo de seleccion se pueden colocar tablas o vistas y luego se completan los campos de ayuda. La ayuda para busqueda se utiliza en los Parameters de la siguiente forma: PARAMETERS: p_bukrs LIKE t001-bukrs MATCHCODE OBJECT (nombre de la ayuda para busqueda = AANLI).
Corte de Control
En la declaracin de la tabla interna el campo por medio del que se va a hacer el campo de control debe declararse primero. SORT t_tabla BY (campo corte) LOOP t_tabla AT NEW (campo corte) ----ENDAT. ----AT END OF (campo corte) ----ENDAT. ENDLOOP. El AT NEW se utiliza al principio (primera ocurrencia del campo por el que se hace el corte) y el AT END OF funciona en la ltima ocurrencia del campo de corte de control. AT NEW cada vez que hay un cambio en el campo entra en el ciclo. AT END se encarga de verificar que el contenido del bloque que le sigue al campo sea diferente al que se esta evaluando, en ese campo entra a la sentencia. Reglas: En el AT NEW/END de un campo se puede usar el valor de ese campo y cualquiera que este a la izquierda. Entra en el AT NEW/END de un campo si cambio ese campo o alguno que se encuentre a su izquierda. Los campos que se situan a la izquierda son jerarquicamente mas importantes que el campo por el cual se establece el AT NEW/END.
REPORT ZEA08_A05_008_ATNEWATEND. *********************************** INCLUDE ZEA08_A05_008_ATNEWATEND_TOP. INCLUDE ZEA08_A05_008_ATNEWATEND_F1. *********************************** START-OF-SELECTION. it_fac-fact = 1. it_fac-cli = 'a'. it_fac-imp = 10. APPEND it_fac. it_fac-fact = 2. it_fac-cli = 'a'.
Pg. 28 de 48
Existen a su vez el AT FIRST y el AT LAST que tiene el mismo funcionamiento que las sentencias vistas.
Pg. 29 de 48
19/05/05
Pg. 30 de 48
Reportes
Creacin de CheckBox y RadioButton
Los checkbox/radiobutton pertenecen a la pantalla de seleccin y se definen por medio de un PARAMETER. Ejemplo: PARAMETER: p_carrid, p_check1 AS CHECKBOX DEFAULT X, p_radio1 RADIOBUTTON GROUP rad, p_radio2 RADIOBUTTON GROUP rad, El DEFAULT X indica que el elemento aparezca marcado en la pantalla de seleccin. El Radiobutton 1 aparece marcado por defecto debido a su utilizacin.
Para trazar lineas horizontales sin la variable del sistema incluida en una sentencia WRITE se coloca ULINE.
Tablas
INNER JOIN
Seleccin de elementos de dos tablas por medio de un campo comun. Para hacer la seleccin se utilizan alias. Ejemplo: SELECT sb~connid sb~carrid sf~price FROM sbook AS sb INNER JOIN sflight AS sf ON sb~connid = sf~connid AND sb~carrid = sf~carrid INTO TABLE it_tabla1 WHERE sb~connid = p_connid AND sf~price > 1000.
Responsable: Eduardo.
20/05/05
Responsable: Mariano
Eventos
INITIALIZATION: Se activa cuando se ejecuta el progama, se encarga de asignar valores a variables. AT SELECTION-SCREEN: Permite validar los datos ingresados en la pantalla de seleccin. STAR-OF-SELECTION: Da inicio a la lgica del programa END-OF-SELECTION: Finaliza la lgica del programa y se encarga de enviar archivos al UNIX. No se debe mostrar consultas o resultados obtenidos. TOP-OF-PAGE: Al efectuar un WRITE, coloca un encabezado a la pantalla. END-OF-PAGE: Evento que se ejecuta al final de la pgina. AT LINE-SELECTION: Evento que se activa al hacer doble click sobre un elemento de la pantalla de reportes. Se utiliza para la activacin de otra pantalla por medio de la seleccin de un elemento. Para que funcione el activar otra pantalla, en el LOOP de la primera tabla que se muestra(primer reporte) se debe agregar HIDE: it_tabla. De esta manera el hide mantiene los datos de la lnea seleccionada para ejecutar una accin con ellos. Se puede colocar luego de AT LINE-SELECTION. WINDOWS x y. Y de esta manera los valores x e y determinaran los lmites de la nueva ventana que se activa.
Pg. 32 de 48
Tablas - Consultas
SELECT SINGLE: Cuando se realiza una consulta con la seguridad que se va a extraer de una tabla un unico dato se utiliza el SELECT SINGLE. SELECT SINGLE * FROM sflight WHERE id = X.
SELECT / SELECT END SELECT: Cuando se realiza una consulta que extraiga varios datos de una tabla se utiliza SELECT / SELECT END SELECT. SELECT id nro value INTO CORRESPONDING FIELDS OF TABLE t_tabla FROM sflight WHERE id = X. SELECT ENDSELECT.
INNER JOIN/ FOR ALL ENTRIES IN: Cuando se desea realizar una junta entre dos tablas por un campo en comn se utiliza FOR ALL ENTRIES IN emulando un INNER JOIN. SELECT id nro value INTO CORRESPONDING FIELDS OF TABLE t_tabla FROM sflight WHERE id = X. SELECT X INTO TABLE t_tabla FROM scarr FOR ALL ENTRIES IN campo = t_tabla-campo WHERE nto = 5.
SELECT X INTO TABLE t_tabla FROM scarr INNERJOIN sflight ON scarr~id = sfligh~id WHERE scarr~id = o.
COUNT/SUM/AVG: Las sentencias que se ejecutan en el SELECT son COUNT (contar), SUM (sumar), AVG (promedio). SELECT COUNT( * ) INTO v_total FROM scarr WHERE id = o. SELECT SUM( valor ) INTO v_sum FROM scarr. SELECT AVG( valor ) INTO v_prom FROM scarr.
DESCRIBE TABLE LINES: Cuenta las lneas de una tabla interna (cantidad de registros), de las siguiente manera:. DESCRIBE TABLE t_table LINES v_cantlineas. Pg. 33 de 48
INSERT / DELETE / UPDATE: Permiten la insercin, borrado y actualizacin de registros de las tablas. INSERT t_tabla INTO scarr. DELETE w_scarr FROM scarr. UPDATE TABLE SCARR WHERE id = w_carr_id.
Select-Options
El select-options tiene las opciones: SING, OPTION, LOW y HIGHT. La opcion SING puede contener I o E, si tuviera una I y luego se efectuara una consultas sobre ese select-options se tomaran todos los datos ingresados, si tuviera una E no se podra tomar todos los datos. El OPTION puede ser BT (betheen) que significa que se toman los datos intermedios a los colocados, EQ (equal) que significa que se toman los valores iguales a los ingresados, NE (not equal). Otras opciones son NO EXTENSION que elimina el campo hight del select-options y la opcion NO INTERVALS no permite la introduccin de intervalos. El select-options es un RANGES, este ranges funciona como una tabla interna, por lo tanto se puede hacer un LOOP AT sobre el. SELECT-OPTIONS s_campo FOR scarr. RANGES: r_campo FOR scarr. r_campo[] = s_campo[]. LOOP AT r_campo. r_campo-low = 8, MODIFY r_campo. ENDLOOP.
Forms
Se pueden pasar valores por valor o referencia a las subrutinas Forms. PERFORM f_nombre TABLES i_tabla. FORM f_nombre TABLES i_tabla1 STRUCTURE scarr. ENDFORM. Permite pasar tablas internas a la subrutina.
PERFORM f_nombre USING v_uno. FORM f_nombre USING p_valor LIKE scarr-id. . ENDFORM. Permite pasar valores de entrada a la subrutina.
PERFORM f_nombre CHANGING v_uno. FORM f_nombre CHANGING p_valor LIKE scarr-id. ENDFORM. Permite la salida de valores de la subrutina.
23/05/05
Responsable: Eduardo
Pg. 34 de 48
Copiar Tablas
Dirigirse a la transaccion SM30 y colocar el nombre de la tabla a copiar. Se accede a la tabla y por medio de CTRL+Y el mouse permite la seleccin de datos para luego por medio de CTRL+C copiarlos a una nueva tabla.
24/05/05
Responsable: Lorena Tomas
Luego de realizar el open se puede evaluar SY-SUBRC con los siguientes valore: SY-SUBRC = 0 Abierto correctamente SY-SUBRC = 6 / 8 Error
Ejemplos: En la variable mensaje el OPEN devuelve un mensaje. El nombre del fichero puede ser una variable que contenga la ruta del fichero entre comillas simples.
DATA: nombre(60) value archivo.txt. mensaje(60). OPEN DATASET nombre FOR INPUT MESSAGE mensaje. IF SY-SUBRC <> 0. WRITE: SY-SUBRC:, SY-SUBRC, /, Mensaje del Sistema:, mensaje. ENDIF.
Pg. 35 de 48
Escribir un Archivo del Servidor: TRANSFER variable TO nombre_fichero. Ejemplo: TYPES: BEGIN OF st_clientes, nombre(12) type c, apellido(12) type c, direccion(50) type c, END OF st_clientes. DATA: cliente type st_cliente, archivo(20) VALUE /TPM/clientes.txt. cliente-nombre = Juan. cliente-apellido = Perez, OPEN DATASET archivo FOR INPUT. TRANSFER cliente TO archivo. CLOSE DATASET archivo.
Pg. 36 de 48
Si se desea que el usuario ingrese la ruta del archivo se puede utilizar: PARAMETER: p_ruta LIKE RLGRAP_filename. Ejemplos: ******************************************** REPORT zea08_014_archivos . PARAMETER ruta LIKE rlgrap-filename. CALL FUNCTION 'WS_DOWNLOAD' EXPORTING filename = ruta filetype = 'ASC' TABLES data_tab = it_mitabla. ******************************************** REPORT zea08_014_archivos . PARAMETER ruta LIKE rlgrap-filename.
DATA: BEGIN OF it_mitabla OCCURS 0, nombre(20) TYPE c, ape(20) TYPE c, edad(3) TYPE c, END OF it_mitabla. it_mitabla-nombre = 'Bruno'. it_mitabla-ape = 'Lanzilotta'. it_mitabla-edad = '21'. APPEND it_mitabla. it_mitabla-nombre = 'Alejandro'. it_mitabla-ape = 'Lattuca'. it_mitabla-edad = '25'. APPEND it_mitabla. it_mitabla-nombre = 'Michula'. it_mitabla-ape = 'Taringa'. it_mitabla-edad = '65'. APPEND it_mitabla. it_mitabla-nombre = 'Papa'. it_mitabla-ape = 'Noel'. it_mitabla-edad = '156'. APPEND it_mitabla.
DATA: BEGIN OF it_mitabla2 OCCURS 0, nombre(20) TYPE c, ape(20) TYPE c, edad(3) TYPE c, END OF it_mitabla2. CALL FUNCTION 'WS_UPLOAD' EXPORTING filename = ruta filetype = 'ASC' TABLES data_tab = it_mitabla2. LOOP AT it_mitabla2. WRITE it_mitabla2-nombre. WRITE it_mitabla2-ape. WRITE it_mitabla2-edad. WRITE /. ENDLOOP. ********************************************
Pg. 37 de 48
Batch-Inputs
La actualizacin de la base de datos a traves de las transacciones del sistema. Carga inicial de datos del sistema SAP Preparar interfases permanentes entre el sistema no SAP y un sistema SAP Ventajas: Sin intervencin No se requiere intervencin manual durante la transferencia de datos (archivos). Integridad de Datos Un Bach-Input introduce los datos al sistema SAP de la misma forma en que lo hara un usuario a traves de transacciones. Hay dos formas de realizar un Bach-Input, por medio de una transaccin SM35 que permite realizar un juego de datos o por medio de un CALL Transaction.
Estructura utilizada por tablas internas para todos los mtodos de Batch-Inputs: CAMPO PROGRAM DYNPRO DYNBEGIN FNAM FVAL TIPO Char Numc Char Char Char LONGITUD 8 4 1 35 80 SIGNIFICADO Nombre del MODULPOOL de la transaccin Nombre DYMPRO transaccin Inicio de datos de una DYMPRO Nombre del campo Valor del campo
Ejemplo de definicin de Tabla: DATA: BEGIN OF tabla_bdc OCURRS 0, INCLUDE BDCDATA, END OF tabla_bdc.
26/05/05
Responsable: Mariano
Batch-Inputs (Continuacin)
Para realizar un Batch-Inputs se debe cargar dentro de una tabla interna llamada BDC toda la informacin de los pasos a seguir por el programa. La tabla BDC tiene los siguientes campos: PROGRAM Z_crear_cliente DYNPRO 0100 DYNBEGIN X FNAM Z_cliente_cod Z_cliente_nro BDCOKCODE PROGRAM: Es el nombre del programa DYNPRO: Es el nombre de la pantalla DYNBEGIN: Se selecciona la primera vez que se inicia el batch-input por medio de una X. FNAM: Representa el nombre de los campos que se completarn por medio del batch-input. FVAL: Representa el valor del campo indicado en FNAM BDCOKCODE: Representa una accin a seguir: /0 = Enter, /11 = Grabar, =SAVE. Estructura del Programa para cargar ms de un registro por medio de Batch-Inputs: Levantar los datos de un archivo a una tabla interna (llamada i_cliente) Cargar la tabla BDC Llamar a CALL TRANSACTION Pg. 38 de 48 FVAL 10 8 /11 o =SAVE
FORM que carga la tabla BDC: FORM cargar_tabla TABLES i_bdctabla STRUCTURE BDCDATA USING dynbegin fnam fval. CLEAR i_bdctabla. IF dynbegin = X. i_bdctabla-dynbegin = X. i_bdctabla-program = fnam. Nombre del Programa i_bdctabla-dynpro = fval. Nro Dynpro ELSE. i_bdctabla-fnam = fnam. Nombre Campo o Boton i_bdctabla-fval = fval. Valor Campo o Valor ENDIF. APPEND i_bdctabla. ENDFORM. Debo pasar por valor los parmetros para cargar la tabla BDCDATA. La tabla interna se define previamente como BDCDATA en el programa principal. En los parametros fnam y fval se pasa el nombre del programa y la dynpro la primera vez que se llame al PERFOMR, por lo cual no se necesitan mas parmetros para su ingreso.
Definicin de i_bdctabla en el programa principal: DATA: BEGIN OF i_bdctabla OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA: END OF i_bdctabla.
Llamada al FORM en el programa principal: PERFORM cargar_tabla TABLES i_bdctabla USING X Z_crear_cliente 0100. LOOP AT it_cliente. PERFORM cargar_tabla TABLES i_bdctabla USIGN Z_cliente_cod i_cliente-cod. PERFORM cargar_tabla TABLES i_bdctabla USIGN Z_cliente_nro i_cliente-nro. PERFORM cargar_tabla TABLES i_bdctabla USIGN BDC_OKCODE = NEXT. ENDLOOP. PERFORM cargar_tabla TABLES i_bdctabla USIGN BDC_OKCODE = SAVE. Llamada al CALL TRANSACTION en el programa principal: CALL TRANSACTION zcliente USING i_bdctabla MODE N. No visible al usuario. A. Visible al usurario. E. Visualiza solo los errores. Registro de Transacciones: Dirigirse a la SM35 (Transaccin la grabadora), boton GRABACION, boton GRABACION NUEVA, completar el nombre de grabacin y el nombre de la transaccin (SM30), a continuacin colocar la tabla a actualizar en la SM30 (ZZZ_SCARR) y ACTUALIZAR; luego aparece el editor para registrar transacciones con lo cual uno se va guiando para escribir el Batch-Input.
Pg. 39 de 48
Una vez que estan grabados los pasos del batch-input, en la SM35 se puede seleccionar dicha grabacin, precionar PROGRAMA, ingresar un nombre de programa nuevo teniendo en cuenta la opcion TOMAR DE LA GRABACIN y grabarlo y aparecer el cdigo fuente del BATCH-INPUT grabado.
report ZLORENA no standard page heading line-size 255. include bdcrecx1. start-of-selection. perform open_group. perform bdc_dynpro using 'SAPMSVMA' '0100'. perform bdc_field using 'BDC_CURSOR' 'VIEWNAME'. perform bdc_field using 'BDC_OKCODE' '=UPD'. perform bdc_field using 'VIEWNAME' 'ZZZ_SCARR'. perform bdc_field using 'VIMDYNFLDS-LTD_DTA_NO' 'X'. perform bdc_dynpro using 'SAPLSPO1' '0300'. perform bdc_field using 'BDC_OKCODE' '=NO'. perform bdc_dynpro using 'SAPMSVMA' '0100'. perform bdc_field using 'BDC_OKCODE' '/EBACK'. perform bdc_field using 'BDC_CURSOR' 'VIEWNAME'. perform bdc_transaction using 'SM30'. perform close_group.
Pg. 40 de 48
Otra forma de llamar al Batch-Input: CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = GROUP USER = SY-UNAME HOLDDATE = DATE KEEP = X. CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = 'XD02' TABLES DYNPROTAB = BDC_TAB. CALL FUNCTION 'BDC_CLOSE_GROUP'. Para visualizar los datos del Programa y la DYMPRO se debe ir a la transaccin SM30, luego menu SISTEMA, opcion STATUS. Ejercitacin:
REPORT ZEA08_A05_013_BATCHINPUT. INCLUDE ZEA08_A05_013_BATCHINPUT_TOP. INCLUDE ZEA08_A05_013_BATCHINPUT_F1. START-OF-SELECTION. PERFORM f_ws_upload. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPMSVMA' 100. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'VIEWNAME' 'ZZZ_SCARR_MLC'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BDC_OKCODE' '=UPD'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '1'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'BDC_OKCODE' '=NEWL'. LOOP AT it_archivo. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING 'X' 'SAPLZZZ_SCARR_MLC' '2'. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-CARRID' it_archivo-carrid. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-CARRNAME' it_archivo-carrname. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-CURRCODE' it_archivo-currcode. PERFORM f_cargartabla_bdc TABLES it_bdctabla USING '' 'ZZZ_SCARR_MLC-URL' it_archivo-url. PERFORM f_cargartabla_bdc TABLES it_bdctabla
Pg. 41 de 48
Pg. 42 de 48
27/05/05
Responsable: Fernando Calderon
Batch-Inputs (Continuacin)
CALL TRANSACTION vs. JUEGO DE DATOS
El Batch Inputs es una tecnica para similar un usuario ejecutando una transaccin, se mapea la actividad del usuario por medio de una tabla llamada BDCDATOS que posee 4 campos: Program, Dynpro, Dynbegin, Fnan, Fval. La diferencia radica en la forma en que se ejecutan esa serie de pasos que se encuentran en la tabla, por medio de una llamada a Call Transaction se ejecuta inmediatamente la transaccion con la tabla de datos que se le envia por parmetros. Por medio del juego de datos yo necesito hacer un Open-Group, Insert y Close-Group para generar un paquete pero no para ejecutar una transaccin. Por medio del insert no se ejecuta la transaccin sino que se carga el juego de datos y se arma un paquete al cerrar por medio del close group. Luego dentro de la transaccin SM35 se guardan todos los juegos de datos que son paquetes que se encuentran en diferente estados. Si el estado es nuevo quiere decir que el paquete nunca fue ejecutado, se debe seleccionar y precionar EJECUTAR junto con el modo de ejecucin (visible para el usuario = A, no visible al usuario = N, o solo errores = E) y tildando los check box de LOG AMPLIADO, MODO EXPERTO, y TAM. ESTANDAR DYMPRO. Por medio de un juego de datos tengo la ventaja de que puedo reprocesar dicha informacin todas las veces que sea necesario, ya que la informacin se encuentra centralizada y el reproceso lo ejecuta automaticamente SAP. La ejecucin por medio de Call Transaction tiene la ventaja de ejecucin en el mismo instante con lo que se logra ver si el Batch-Inputs funciona bien o no. La ventaja de cada mtodo se convierte en la desventaja del metodo opuesto. Se puede crear un juego de datos y luego ejecutarlos por medio de una llamada a un programa. Un programa puede invocarse desde otro programa por medio de la sentencia SUBMIT. SUBMIT nombre-programa USING juego de datos AND RETURN.
Se integran las soluciones y el Batch-Inputs se ejecuta con Call Transaction para luego, con los errores que se hallan producido, se genera un juego de datos para que en una instancia posterior se corrijan.
GRABADORA
Para el ingreso directo a la grabadora se utiliza la transaccin SHDB, sino se puede ingresar por medio de la SM35, opcin GRABACIN. La grabadora permite conocer el mapeo y la secuencia de pantalla, asi como tambin la generacin de codigo. Dicho cdigo no es del todo confiable, siempre debe revisarse antes de ejecutar.
Pg. 43 de 48
30/05/05
Responsable: Andres Maldonado
Reportes ALV
Existen tres tipos de reportes ALV: ALV grillla, ALV en lista y ALV jerarquico. Estos reportes reemplazan al comando WRITE. Ejemplo ALV creando el catalogo por codigo:
REPORT ZEA08_A05_015_EJEMPLO_ALV . * Se trata de un pequeo ejemplo de listado ALV para aquellos que * nunca han creado uno. * Propsito: * --------* Voy mostrar un listado de posiciones de pedidos de compras * Pasos esenciales (Buscar el simbolo '') * ---------------* 1. Definicin estructuras y tablas necesarias * 2. Definimos la tabla con los datos de salida * 3. Toma de datos * 4. Definicin estructura y formato de salida * 5. Mostrar listado *<-- Paso 1. Definicion estructuras y tablas necesarias * Type Pool donde vienen definidas todas las estructuras y tablas TYPE-POOLS: slis. * Catlogo de campos: contiene la descripcin de los campos de salida DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, * Especificaciones de la disposicin de la lista: descripcin de la * estructura de salida gs_layout TYPE slis_layout_alv, * Nombre del programa g_repid LIKE sy-repid. *<-- Paso 2. Definimos la tabla con los datos de salida TYPES: BEGIN OF st_output. INCLUDE STRUCTURE sflight. TYPES: semaforo(1). TYPES: END OF st_output. DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE. INITIALIZATION. g_repid = sy-repid. START-OF-SELECTION. *<-- Paso 3. Toma de datos PERFORM toma_datos. *<-- Paso 4. Estructura y formato de salida PERFORM init_fieldcat. PERFORM init_layout. *<-- Paso 5. Mostrar listado PERFORM listado. *&&-----------------------------------------------------------------&&* * SUBRUTINAS DEL PROGRAMA * *&&-----------------------------------------------------------------&&* *---------------------------------------------------------------------* * FORM INIT_FIELDCAT * *---------------------------------------------------------------------* FORM init_fieldcat. * Mediante esta tabla vamos a definir los campos que queremos mostrar * en el listado de salida.
Pg. 44 de 48
Pg. 45 de 48
Pg. 46 de 48
Pg. 47 de 48
Nociones de Performance
Transacciones para medir la Performance
Transaccin ST05: Permite la visualizacin de la traza de las consultas con SELECT, accesos a la base de datos. Lo que permite la visualizacin de entradas repetidas a la base de datos, tiempo excedido de consultas y resultados de las mismas. Transaccin SE30: Permite analizar el codigo ABAP, por ejemplo cuanto tiempo demora la ejecucin de un Perform, se utiliza para analizar la lgica de un programa.
01/06/05
Responsable: Fernando Calderon
Repaso General.
Variante: Foto de la pantalla de seleccin que se utiliza para grabar la pantalla de seleccin. Variante de Visualizacin: Foto de la configuracin de un reporte ALV.
Pg. 48 de 48