Vous êtes sur la page 1sur 20

MODULOS DE SAP

Finanzas (FI) FI Contabilidad AA Activos Fijos AP Deudores AR Acreedores GL Contabilidad General LC Consolidacin SL Contabilidad Especial CO Costes ABC Control de Costes Basado en Actividades OM Costes Operativos PA Anlisis de Rentabilidad PC Costes de Productos EC Controling Corporativo EIS Sistema de Informacin MC Consolidacin PLA Contabilidad de Centros de Beneficios IM Inversiones IM Inversiones de Capital FA Medidas de Recursos Inmovilizados Tangibles TR Tesorera CM Caja FM Presupuestos TM Tesorera MRM Riesgos Recursos Humanos (HR) PA Administracin de personal APP Candidatos BEN Beneficios EMP Empleados INW Incentivos PAY Nmina TIM Gestin de Tiempos TRV Gestin de Viajes PD Modulo de desarrollo OM Organizacin PD Desarrollo de Personal RPL Planificacin y Reserva de Salas SCM Seminarios y Convenciones WFP Planificacin del Trabajo Logstica (LO) LO Logstica ECH Cambios de Ingeniera EHS Medio Ambiente, Salud y Seguridad LIS Informacin Logstica MD Datos Maestros PR Previsiones VC Configuracin de Variantes

Materiales CBP Planificacin Basada en Consumo EDI Intercambio Electrnico de datos IM Inventario IS Informacin IV Facturas POR Compras WM Almacn PM Mantenimiento de planta EQM Equipos y Objetos Tcnicos IS Informacin de planta PRM Mantenimiento Preventivo PRO Proyectos de Mantenimiento SMA Servicios WOL rdenes de Mantenimiento PP Produccin ATO Ensamblaje BD Datos Bsicos CRP Planificacin de Capacidad IS Informacin de Produccin KAB Kanbam / Justintime MP Planificacin Maestra MRP Planificacin de Necesidades de Material PDC Recoleccin de Datos de Planta PI Planificacin de Produccin para Industrias por Procesos REM Fabricacin Repetitiva SFC rdenes de Produccin SOP Ventas y Operaciones PS Proyectos APP Presupuestos BD Datos Bsicos EXE Ejecucin / Integracin IS Informacin de Proyectos OPS Estructuras Operativas PLN Planificacin QM Calidad CA Certificados de Calidad IM Inspecciones PT Herramientas de Planificacin QC Control de Calidad QN Notificaciones SD Ventas y distribucin GF Funciones Generales BIL Facturacin CAS Soporte a Ventas EDI Intercambio de Datos FTT Comercio Exterior SIS Informacin de Ventas MD Datos Maestros SHP Envos

MM

SLS TR

Ventas Transporte

SAP R/3
En el proceso de elaboracin de un pedido todos los documentos generados se guardan en VBRK, VBRP, VBAK y VBAP. En la barra de transacciones poner /o para abrir una nueva ventana de SAP. Las transacciones de pedido son VA01 (crear), VA02 (modificar) y VA03 (visualizar). El mandante sirve para diferenciar accesos. Es como si fueran carpetas dentro de la misma mquina. La transaccin SE11 se usa para crear, modificar y visualizar las tablas de diccionario. La transaccin SE16 sirve para ver los datos de una tabla. Tambin podemos verlos desde la SE11 si pulsamos sobre Contenido. Si, en tiempo de ejecucin, pulsamos F1 sobre un parmetro aparecer una pequea ayuda sobre lo que hace. Si en esa ventana pinchamos sobre el botn matillo saldrn los datos tcnicos del parmetro. Cuando en la pantalla de seleccin (en tiempo de ejecucin) pulsamos en Grabar, nos lleva a la pantalla de variantes, que sirve para cargar valores a los parmetros por defecto; es como si fuera una foto de la pantalla de seleccin. Las variantes se usan para corregir errores y se crean a nivel de usuario y solo este puede verlas. Una vez creada una variante, en la pantalla de seleccin de ese programa y para ese usuario, aparecer siempre. La transaccin SE93 sirve para crear nuestras propias transacciones. Si especificamos Transaccin Report indicaremos un programa. Si indicamos Transaccin de parmetros podremos llamar a otras transacciones. En la pestaa Valores de propuesta, en transaccin especificamos la transaccin a que queremos llamar, marcando Omitir imagen inicial entramos de la forma que nosotros especifiquemos. En Nombre del campo de dynpro elegir todos los valores, botones y propiedades de la transaccin. En ViewName poner la tabla a visualizar y si ponemos X en Update el botn de actualizar aparecer marcado. La transaccin SE91 se utiliza para crear o modificar los mensajes. La transaccin SM37 muestra un listado de jobs (trabajos de fondo programados para ejecutarse en un momento determinado). La transaccin FD01 es para crear clientes. La transaccin MM01 sirve para crear materiales. La transaccin MM02 se usa para modificar los materiales existentes. La transaccin MM03 se utiliza para visualizar los materiales del sistema.

La transaccin SPRO nos nuestra las especificaciones de SAP. La transaccin ST05 nos muestra el TRACESQL, y sirve para grabar las consultas que hace el estndar de SAP desde una transaccin para, por ejemplo, ver que campos, tablas o funciones utiliza. La transaccin AL11 nos sirve para ver todos los ficheros del servidor. La funcin TH_POPUP se utiliza para mandar mensajes internos a cualquier usuario del sistema SAP. Para que un programa Z se convierta en un job, desde el cdigo ir al men Sistema Servicios Jobs Definicin de jobs. Desde el editor de cdigo si pulsamos sobre Patrn podemos elegir la generacin de cierto cdigo, como por ejemplo funciones. El botn Referencia de utilizacin sirve para visualizar todos los programas, clases, tablas, etc., que usan o llaman esa tabla, programa, funcin, etc. Para comentar un bloque de cdigo, seleccionamos el cdigo y pulsamos Ctrl+<; para descomentarlo pulsaremos Ctrl+Shift+<. Pulsando Ctrl+Y podemos seleccionar texto de cualquier parte de la ventana de SAP para copiar y pegarlo en otro lado. Con /n en la barra de transacciones podremos cambiar de transaccin en la misma ventana de SAP. Los mens Sistema y Ayuda estn en todos los sistemas ABAP y son siempre iguales. El resto de mens pueden variar dependiendo de la mquina o la transaccin. Con F3 vamos a la pantalla anterior, salvo si estamos en la principal que entonces saldremos de SAP.

QUERYS
Hay que dar 5 pasos: 1.- Usuarios 2.- Grupos de usuarios 3.- Informacin 4.- Fuente de datos 5.- Query El QuickViewer es una herramienta para hacer consultas. Se abre desde Herramientas Workbench ABAP Utilidades QuickViewer. Su transaccin es SQVI.

Asignamos la Query a un Infoset y a un grupo de usuarios. Pinchar en Lista Bsica. Seleccionamos los campos de filtro (campos de seleccin) y despus los campos a visualizar (campos de lista). Guardar y verificar. El campo variante dejarlo vaco. Desde la pantalla de seleccin Men el cdigo fuente de la consulta. Sistema Status y desde Report nos mostrar

Con /h en la barra de transacciones activaremos el modo debug, ejecutaremos con F8 y despus F5 para ir paso a paso. Las transacciones para hacer querys son: SQ01 para crear la Query, SQ02 para crear el Infoset y SQ03 para crear grupos de usuarios.

INFOSET
Son las consultas (query) a medida. En fuente de datos seleccionar Unin de tablas (si son varias tablas) o Lectura directa (si es solo una tabla) Crear nuevo grupo de campos y pulsar Detalles. Pestaa Detalle creamos nuestros campos. Seleccionamos el tipo, longitud, etc. En la pestaa Coding introduciremos el cdigo y guardamos. Selecciona los campos en visualizacin y guardamos. Verificamos y activamos el Infoset. Asignamos a un grupo de usuarios. Seleccionamos la query creada y con el asistente que sale dando a siguiente seleccionamos los campos que queremos mostrar. Pulsamos lista bsica. Asignar siempre las Query y los infoset a un grupo de usuarios. Campo local Crear Para crear campos de una Query vamos al men Tratar Campo de clculo, donde le ponemos el tipo de campo y una formula. Pinchando sobre calculo complejo podemos crear frmulas complejas, con ms de una condicin.

CREAR USUARIOS
En la transaccin SU01, se elige un usuario ya creado y se copia el perfil. Luego se procede a las modificaciones.

ENTORNOS DE SAP
Desarrollo. Para programar y crear programas. Apenas tiene datos. Test o Integracin. No se puede programar. Para la fase de pruebas. Existen datos casi reales. Produccin o Productivo. Fase de produccin. No se puede programar. Hay datos reales. Es el entorno de trabajo del cliente.

LENGUAJE ABAP, SE38


Cuando no se indica el mandante en el programa las modificaciones se toman en cuenta para todos los usuarios.

Todos los programas que empiecen por Z o por Y son a medida, es decir, programas no estndar. SAP no da soporte tcnico sobre ellos. La tecla F4 sobre un campo (MatchCode) sirve para abrir el cuadro de bsqueda. En la SE38 es donde crearemos los programas ABAP Cdigo fuente Visualizar el cdigo fuente Variantes Visualizar variantes Atributos Visualizar los atributos del programa; nombre, programador, da, tipo de programa, estado, etc. Si el programa no est activo esta opcin no funcionar Documentacin Visualizar la documentacin Elementos de datos Visualizar el cdigo y el texto de las tablas, etc. Poniendo MESSAGE ID xx Donde xx es un nmero, se especifica el mensaje a mostrar en caso de error. Para poner un literal antepondremos el smbolo & en lugar de xx. Las tablas internas son las que nosotros creamos y se ejecutan solo mientras se ejecuta el programa. Las tablas de diccionario son las que estn integradas en SAP, tambin las Z que nosotros creamos. En Utilidades Opciones aparezca el cdigo fuente. Pretty Printer podemos establecer como queremos que

Todas las instrucciones en ABAP terminan con punto (.). Los parmetros son variables que esperan que se le faciliten datos. Se declaran con PARAMETERS: nombre1, nombre 2 El nombre del parmetro no puede ser mayor de 8 caracteres. Las variables se definen con DATA: nombre1, nombre2. La instruccin CONCATENATE une el texto de variables. CONCATENATE var1 var2 INTO var3. Si especificamos SEPARATED BY SPACE separaremos sus valores con espacios dentro de var3. La instruccin TABLES se usa para definir las tablas de diccionario que se usarn en el programa. Debe ponerse al principio del cdigo. Si no especificamos el tipo en la declaracin de las variables el tipo por defecto es CHAR de un solo carcter. Si queremos que sea de ms longitud la declararemos: DATA: var1(n). Para especificar el tipo de variable se pone TYPE tipo a continuacin del nombre de la variable. Para definir una variable como fecha usaremos DATA: fecha LIKE SY-DATUM. El valor de esta variable ser la misma que la del sistema SAP. La forma de llamar a los campos es: tablacampo. Ejemplo: tabla SYcampo DATUM.

SYSUBRC puede contener los valores 0 4. 0 significa que la operacin anterior ha sido correcta, se ha realizado sin errores. 4 significa que algo ha fallado. SYTABIX contiene el nmero de lnea o registro sobre el que se est trabajando actualmente. SYINDEX contiene el nmero de repeticiones de un bucle, el nmero actual de repeticin del bucle. SYDBCNT contiene la cantidad de registros afectados por la ltima operacin procesada. Para debugear un programa pondremos /h en la barra de transacciones y lo ejecutaremos; entraremos inmediatamente en el modo debug. El formato de SYDATUM es aaaa/mm/dd. Si queremos ver el ao solamente pondremos SYDATUM(4). Si lo que queremos es ver solo el da SYDATUM+6(2). SYVLINE sirve para pintar una lnea vertical de tamao 1. SYULINE sirve para pintar una lnea horizontal del ancho de la pantalla. Si especificamos un nmero dibujaremos una lnea con el nmero de caracteres indicado. En las tablas, la cabecera muestra el registro en el que estamos. Todos los datos se cargan en la cabecera, que contiene solo un registro, y es sobre la cabecera de la tabla sobre la que trabajamos. Una estructura es como una tabla pero de solo un registro, es solo cabecera. Copia la cabecera La instruccin MOVECORRESPONDING tabla TO estructura de la tabla a la estructura, pero solo aquellos campos que se llamen igual. Las tablas internas se definen con DATA: BEGIN OF nombre OCCURS n, . END OF nombre. Con el OCCURS n definimos la memoria que queremos que tenga la tabla, el nmero de registros que almacenar. Si ponemos OCCURS 0, se va reservando memoria a medida que se llena la tabla. Si queremos que nuestra tabla interna tenga todos los campos de una tabla de diccionario pondremos INCLUDE STRUCTURE nombre_tabla. Ejemplo: DATA: BEGIN OF nombre OCCURS 0, INCLUDE STRUCTURE mara. Campo1 LIKE sydatum, Campo2 LIKE ekpoebeln. END OF nombre.

Maestro de materiales Campo fecha Campo documento de compras

Las estructuras se definen con DATA: BEGIN OF nombre . END OF nombre. Para rellenar una tabla interna con los datos de la cabecera de otra tabla igualaremos los campos y a continuacin pondremos la instruccin APPEND TO tabla. Es aconsejable que despus de un APPEND se ponga un CLEAR tablacampo. SYINDEX Nmero de registro. Indica la posicin en la que nos encontramos. Solo en tiempo de ejecucin. Se usa en bucles y se sirve para ver en que SYTABIX vuelta del ciclo nos encontramos.

Con MOVECORRESPONDING tabla1 TO tabla 2 copiaremos solo todos los campos de la tabla1 a tabla2 que sean iguales. Otra forma de copiar datos sera tabla2[] = tabla1[], pero deben tener la misma estructura. Para leer un registro de una tabla usaremos READTABLE. Debe ir bajo una condicin especificada con WHERE. Ejemplo: READTABLE tabla WHERE condicin. Pondr en la cabecera de la tabla el primer registro que cumpla esa condicin. Con READTABLE tabla INDEX n leeremos el registro n de la tabla. Ese nmero puede ser un entero, una variable, sytabix, etc. El WHERE lo podemos especificar tambin en los bucles LOOP. Para buscar datos dentro de las tablas podemos hacerlo con LOOP y una condicin o con la siguiente instruccin SQL: SELECT * FROM tabla WHERE condicin . END SELECT. Si ponemos a continuacin de las condiciones UP TO var ROWS solo buscaremos en las var filas especificadas. Para llenar una tabla interna con esa bsqueda utilizaremos: SELECT * FROM tabla INTO TABLE tabla_interna WHERE condicin . END SELECT. Con esto machacamos todos los datos que contuviera la tabla interna; si queremos que los datos se mantengan utilizaremos: SELECT * FROM tabla APPENDING TABLE tabla_interna WHERE condicin. Si queremos seleccionar un registro para bloquearlo de posibles modificaciones utilizaremos la instruccin: SELECT SINGLE FOR UPDATE * FROM tabla. Mediante INSERT tabla FROM TABLE tabla_interna. introducimos datos desde una tabla interna a una de diccionario. Con la instruccin UPDATE tabla. actualizamos el registro de la cabecera de la tabla. Si queremos actualizar varios registros a la vez usaremos: UPDATE tabla SET campo = valor WHERE condicin. Con la instruccin UPDATE tabla FROM TABLE tabla_interna actualizamos desde una tabla interna. Si no estamos seguros de si el registro existe o no utilizaremos la instruccin MODIFY puesto que si el registro existe lo modifica y si no existe lo crea. Para borrar datos de una tabla usaremos la instruccin DELETE. El equivalente a READTABLE es SELECT SINGLE * FROM tabla. IF condicin . ELSEIF condicin . ELSE . ENDIF. Con IF SYSUBRC <> 4 comprobaremos que todo ha ido bien. IF 2 BETWEEN 1 AND 3 sirve para establecer rangos. IF var1 IS INITIAL comprobaremos si la variable contiene los datos por defecto IF NOT var1 IS INITIAL comprobaremos si la variable no contiene los datos por defecto. Dentro de un IF podemos poner varias condiciones, que deben ir encerradas entre comillas.

SYFDPOS contiene el nmero de elementos que contiene una cadena con respecto a otra, comparadas con la instruccin CO. CASE var1 . WHEN . WHEN OTHERS . END CASE se usa en lugar del IF siempre que se conocen las opciones. Es el Select . End Select de VB. Con LOOP AT tabla nos movemos por la tabla. Si ponemos LOOP AT tabla INTO tabla_interna copiamos el contenido. Es equivalente a MOVECORRESPONDING. Los SELECTOPTIONS son parmetros pero con rango. Se usa como filtro para los SELECT. Sintaxis: SELECTOPTIONS nombre FOR tipo (tablacampo). Si no queremos pedir los datos al usuario pondramos RANGES a continuacin. Los datos que contienen los SELECTOPTIONS son: SIGN I o E, incluye o exclude OPTION EQ o BT. EQ si se introduce solo 1 valor, BT si se introducen los 2. LOW Rango inferior HIGH Rango superior Las variables, tablas, rangos, etc., deben declararse antes de usarlos. Las pantallas de seleccin se crean con la instruccin SELECTIONSCREEN BEGIN OF BLOCK nombre WITH FRAME TITLE titulo. Sirven para agrupar parmetros en las pantallas de entrada de datos. Con MODIF ID nombre obligamos a un grupo se SELECTOPTIONS a tomar ese nombre para modificarlos juntos. Con DEFAULT le pasamos un valor por defecto a una variable o parmetro. Con DEFAULT X activamos un CHECKBOX o RADIOBUTTON. La seccin AT SELECTIONSCREEN OUTPUT, que va siempre a continuacin de la seccin INITIALIZATION pondremos el cdigo para que un parmetro no se pueda modificar. Con la opcin SCREENINPUT haremos que un parmetro no se pueda modificar. Los botones de comando se crean en los SELECTIONSCREEN. Sintaxis: SELECTIONSCREEN PUSHBUTTON n_margen_izquierdo(n_tamao) nombre USERCOMMAND etiqueta. Los valores del botn se recogen en la tabla de sistema sscrfields, y en el campo ucomm de esa tabla se almacena el clic. La instruccin SUBMIT nombreprograma se utiliza para ejecutar otro programa del entorno SAP. Si aadimos AND RETURN, despus de la ejecucin de ese programa el control volver al nuestro. Ejemplo: SUBMIT nombre_programa WITH variables o parmetros VIA SELECTIONSCREEN AND RETURN. Con el VIA SELECTION SCREEN conseguimos que aparezca la pantalla de seleccin del programa llamado. Para llamar a otro programa pasndole parmetros debemos tener esta estructura: SUBMIT programa2 param1 WITH param1 = P1 var1 var1 = P2 deben ser del mismo VIA SELECTIONSCREEN tipo que P1 y P2 AND RETURN

La instruccin CALL TRANSACTION transaccin se utiliza para llamar a una transaccin (que se ejecutar en la misma ventana de SAP). Cuando el usuario pulse F3, el control volver a nuestro programa. La instruccin CALL FUNCTION nombre se utiliza para llamar a una funcin. La instruccin MESSAGE xNNN (clase) WITH && o var1. Sirve para imprimir mensajes de error. La x puede ser W (warning, continua la ejecucin), E (Error, finaliza la ejecucin), I (ventana informativa emergente), A (Cancelacin) o S (Continuacin). NNN indican el nmero del mensaje. Clase indica la tabla o archivos con los mensajes. La instruccin FORMAT COLOR cdigo utilizada dentro de un WRITE se utiliza para escribir con el color especificado. Tras su utilizacin debe cerrarse con FORMAT COLOR OFF. Ejemplo: FORMAT COLOR blue . FORMAT COLOR OFF. Tambin existen las instrucciones FORMAT INTENSIFIED ON/OFF, FORMAT INVERSE ON/OFF, FORMAT INPUT ON/OFF y FORMAT RESET. Las llamadas a procedimientos se hacen con la instruccin PERFORM nombre. Los procedimientos se crean con FORM nombre . END FORM. Para pasar parmetros utilizamos la sintaxis: PERFORM nombre USING var1, var2. El FORM debe estar declarado como FORM nombre USING pvar1, pvar2. Si queremos que los datos de var1 y var2 se modifiquen en lugar de utilizar USING para reverenciarlos usaremos CHANGING var1, var2. (El FORM utilizar USING)Si lo que queremos pasar son tablas internas debemos usar TABLES tabla_interna STRUCTURE tabla_diccionario (El FORM tambin utilizara TABLES). Para borrar una tabla utilizaremos el siguiente bloque de cdigo: SELECT * FROM tabla_diccionario INTO tabla_interna DELETE tabla_diccionario FROM TABLE tabla_interna La instruccin SORT tabla BY campo1, campo2 la utilizaremos para ordenar una tabla interna por esos campos. En las tablas internas que estn ordenadas ponemos utilizar las siguientes instrucciones dentro de un bucle LOOP: AT FIRST . END AT. Sirve como tratamiento de ruptura de datos para el primer registro de la tabla. AT NEW campo . END AT. Sirve como tratamiento de ruptura de datos para cada nuevo valor del campo. Desde el campo especificado hacia la derecha de la tabla, todos los campos contendrn el valor *. Si queremos realizar operaciones con esos datos debemos pasarlos antes a una estructura con el MOVECORRESPONDING. AT END campo . END AT. Sirve como tratamiento de ruptura de datos para cada fin del campo. Desde el campo especificado hacia la derecha de la tabla, todos los campos contendrn el valor *. Si queremos realizar operaciones con esos datos debemos pasarlos antes a una estructura con el MOVECORRESPONDING. AT LAST . END AT. Sirve como tratamiento de ruptura de datos para el ltimo registro de la tabla. ON CHANGE campo . END ON. Sirve como tratamiento de ruptura de datos para cada registro que cambie anterior al especificado.

La instruccin COLLECT suma o aade. Si encuentra un registro en la tabla interna cuyos campos char son iguales, los campos de tipo de datos package, float o integer los sumar. Si no encuentra ningn registro con campos char iguales aadir un campo nuevo. La instruccin COMMIT WORK AND WAIT se utiliza para forzar a nuestro programa a que espere hasta que se termine de actualizar la base de datos. La instruccin CLEAR tabla limpia la cabecera. La instruccin REFRESH tabla_interna borra todos los datos de la tabla interna. La instruccin FREE tabla_interna libera la memoria que ocupaba la tabla. Para hacer esta operacin la tabla debe estar antes vaca. La instruccin UPLOAD sirve para subir datos desde el cliente a SAP o viceversa. La instruccin DOWNLOAD sirve para bajar datos desde SAP al cliente. Cuando insertamos una funcin en nuestro cdigo salen comentadas las variables que son opcionales. Con la lnea AT SELECTIONSCREEN ON VALUE REQUEST FOR var1, convertimos la variable en un parmetro. En esta seccin pondremos el cdigo a ejecutar en el caso de que el usuario pulse F4 sobre el parmetro. Traduccin traducimos a otro idioma todos los En un report, en el men Pasar a elementos de texto. Tambin cualquier cosa que no se un literal. Se aconseja siempre utilizar elementos de texto en lugar de literales para facilitar esta accin. Dentro de un report, en el men Utilidades Ms Utilidades Anlisis en tiempo de ejecucin, podemos ver el rendimiento de nuestro programa. Tambin se llega aqu mediante la transaccin SE30. Se hace una grabacin de la ejecucin del programa y despus en Evaluar pulsamos F5 para ver todos los procesos y el tiempo que consumen. Si pulsamos en Tips & Trices podremos comparar cdigo, ya sea estndar o nuestro y ver cual es ms rpido. Con la instruccin TYPES se utiliza para declarar nuestros propios tipos de datos. La instruccin DIV nos devuelve la divisin de dos nmeros. La instruccin MOD nos devuelve el resto de la divisin. La instruccin STRLEN nos devuelve la longitud de una cadena. La instruccin SHIFT se utiliza para desplazar el contenido de una cadena de caracteres. La sintaxis es: SHIFT var o campo BY espacios_a_desplazar PLACES o CIRCULAR RIGHT (para desplazar a la derecha). La instruccin REMPLACE cambia el contenido de una cadena. Sintaxis: REMPLACE cadena_a_sustituir WITH cadena_nueva INTO var1.

La instruccin TRANSLATE var TO UPPER CASE cambia todo a maysculas. TRANSLATE var TO LOWER CASE cambia todo a minsculas. TRANSLATE var USING regla_de_caracteres cambia segn lo especificado. La instruccin SEARCH busca una cadena dentro de un campo o tabla. Sintaxis: SEARCH campo o tabla FOR cadena. La instruccin CONDENSE borra todos los espacios en blanco de una cadena dejando uno. Si especificamos NOGAPS los elimina todos. La instruccin SELECT COUNT(*) se utiliza para contar la cantidad de registros de una tabla de diccionario. La sintaxis es: SELECT COUNT(campo o *) INTO var1. Es similar al READ TABLE en una tabla interna. Dentro del debug, el WatchPoint sirve para ver un dato concreto dentro de un bucle. Los botones se crean con la instruccin PFSTATUS nombre o desde la transaccin SE41. Si ponemos EXCLUDING tabla_interna conseguiremos que no salgan ciertos botones, los que estn definidos en esa tabla interna. Si creamos un men para nuestro programa, el men estndar desaparece (salvo el de atrs), por lo tanto si queremos que salga debemos crear nosotros esos mens y meter el cdigo correspondiente. Eso se consigue desde el men Sistema Status Status interfase. La instruccin DEFINE (que est en desuso) es igual que los PERFORM. Se suele poner antes del STARTOFSELECTION. Ejemplo: DEFINE nombre CLEAR &var1, &var2, . REFRESH &var1, &var2, . ENDOFDEFINITION Para usarlo utilizaremos la siguiente sintaxis: nombre tabla_interna. Para abrir un fichero utilizaremos la sentencia OPEN DATASET fichero FOR OUTPUT | INPUT IN BINARY MODE | IN TEXT MODE. El valor de SYSUBRC ser 0 cuando el fichero se abre correctamente y 8 cuando falla. Para cerrar el fichero usaremos la sentencia CLOSE DATASET fichero. Si queremos leer un fichero usaremos READ DATASET fichero INTO estructura. El valor de SYSUBRC ser 0 cuando se ha ledo el fichero correctamente y 4 cuando no encuentra el fin del fichero. Para escribir datos utilizar la sentencia TRANSFER estructura TO fichero. Tanto READ como TRANSFER tienen la clusula LENGTH var que indicar longitud de lo ledo o a escribir.

TABLAS
La transaccin SM30 sirve para introducir y actualizar los datos de una tabla de diccionario. Para crear una tabla usaremos la transaccin SE11, especificaremos el nombre y pulsamos Crear. Elegir la clase de la tabla y activar Permitir actualizacin (para poder modificar los datos desde la SM30) en Atributos. En la pestaa Campos pondremos todos los que consideremos, teniendo en cuenta que los campos clave deben ir todos

seguidos y al principio de la tabla. El campo mandante debe ser el primer campo. Para especificar que un campo es clave pulsaremos Clv. Inic indica que el campo no puede estar en blanco. En tipo de campo podemos buscar campos ya creados para usar en nuestra tabla o crear el nuestro, si elegimos la opcin Elemento datos / Tipo directo. Cuando tengamos todos los campos guardamos la tabla y pinchamos sobre Opciones tcnicas; donde especificaremos la clase de datos y el nmero de registros mximo que puede tener la tabla. A continuacin Activaremos la tabla para que la podamos usar. Si especificamos un campo para almacenar precios, debemos crear un campo moneda. En tipo de campo pulsar F4 y poner WAERS. Debemos referenciar el campo precio al campo moneda en la pestaa Campos moneda / cantidad. Siempre es preferible especificar un campo dentro de nuestra tabla. Debemos generar el actualizador de tablas (transaccin SE55) para poder hacer funcionar la SM30. En grupo de autorizaciones especificaremos quien puede acceder. Por defecto, para que acceda todo el mundo poner &NC&. En grupo de funciones especificaremos la misma tabla. En imgenes de actualizacin indicaremos el modo de visualizacin, siendo un nivel para que todos los campos salgan en la misma pantalla. Para generar el Nmero de imagen, si no lo sabemos, pincharemos sobre Buscar N imgenes y Proponer. Grabaremos siempre en estndar. Los Tipos de datos se crean tambin en la SE11. En caso de no utilizar Dominio, poner Tipo instalado y especificar el tipo de datos. En Denominacin de campo especificar solo el Denominador de campo en todas las opciones (no es necesario poner longitud, lo hace automticamente SAP). Activamos el tipo de datos para poder utilizarlo en las tablas. Los Dominios tambin se crean en la SE11. Son tipos de datos creados por nosotros. Especificamos el tipo de datos, los caracteres, decimales y la longitud de salida. En la pestaa mbito de valores establecer los valores del dominio. Activar para poder usar. Slo se pueden utilizar dentro de un elemento de datos. Para introducir datos manualmente dentro de una tabla vamos a Utilidades de tabla Registrar entradas, dentro de la tabla. Contenido

BATCHINPUT
La transaccin SHDB es la grabadora de datos. La transaccin SM35 tambin nos da acceso a la grabadora de datos y ms opciones para los juegos de datos. Los Batchinput se utilizan para la carga masiva de datos desde archivos a tablas de diccionario. Los BI pueden ser online (se ejecutan la momento) o de fondo (programados para un momento determinado). Los BI de fondo pueden ser visibles (que se vea lo que hace) o invisibles (que no se vean o que no se vean hasta que haya un error). Las tablas internas en un BI deben ser siempre del formato BDCDATA. Ejemplo: tabla_interna LIKE BDCDATA. Los campos deben crearse con LIKE y no con INCLUDE STRUCTURE para que funcionen bien. Los BI tienen 3 pasos: 1.- Pasar los datos de un fichero (txt o Excel) a una tabla interna. El archivo debe tener la misma estructura que la tabla, y los campos vendrn separados por una tabulacin. 2.- Hacer la grabacin del juego de datos 3.- Pasar los datos de la tabla interna a la base de datos.

Abrir la grabadora, ponerle un nombre y la transaccin que queremos grabar. A continuacin debemos realizar nosotros en esa transaccin todos los pasos a realizar por el BI pero solo para un registro. Cuando hayamos terminado pinchamos en guardar y pulsamos F3 hasta que nos salga la pantalla de la grabacin con el cdigo para usar en nuestro programa. Los modos de visualizacin de un BI son A (vemos todos los procesos), N (no vemos nada hasta el final) y E (no vemos nada hasta que ocurra un error). Los procedimientos para pasar la tabla interna a la base de datos son: PERFORM nombre_pantalla USING programa pantalla X (slo si es 1 pantalla PERFORM nombre_campo USING campo_tabla campo_tabla_interna o valor Estos procedimientos los utilizaremos por cada fichero que debamos subir. Para poder salir de un BI ponemos /BEND en el valor del campo. En la funcin WS_UPLOAD en la opcin Filetype podemos poner DAT (archivo de datos tabulados), ASC (archivo ASCII), BIN (archivo binario), DBF (archivo DBASE), IBM (ASCII con codepage) o WK1 (hoja de calculo). Si tenemos que hacer cualquier modificacin (crear campos, borrarlos, etc.) hay que volver a hacer la grabacin y modificar el cdigo fuente. Los juegos de datos son BI preparados para lanzarse en cualquier momento. El LOOP debera ser: LOOP AT tabla_interna AT FIRST PERFORM iniciarJuegoDatos funcin BDC_OPEN_GROUP ENDAT PERFORM tratarDatos Los perform pantalla y campos PERFORM insertarDatos Funcin BDC_INSERT AT LAST PERFORM cerrarJuegoDatos Funcin BDC_CLOSE_GROUP ENDAT END LOOP En la funcin BDC_OPEN_GROUP, Group es el nombre del juego de datos guardado, Keep es para mantener guardado el juego o eliminarlo, User ser SYUNAME. En la funcin BDC_INSERT, Tcode es la transaccin a ejecutar, Dynprotab es la tabla interna (batch2).

FUNCIONES
La transaccin SE37 sirve para crear o modificar funciones. Todas las funciones tienen los siguientes parmetros: EXPORTING var = valor. Variables a exportar desde nuestro programa hacia la funcin. En la funcin entran como Importing. IMPORTING var = valor. Es un parmetro opcional. Variables que importa el programa desde la funcin. En la funcin son los Exporting. TABLES = tabla. Es un parmetro opcional. Tablas a tratar. Deben tener la misma estructura en el programa que en la funcin. Suele ser la misma tabla. EXCEPTIONS var = valor. Es un parmetro opcional. Son las excepciones o errores. En la transaccin SE37 tenemos varias pestaas para cada funcin. En Import nos salen todas las variables que importa y los atributos de esa variable. En Export salen todas las

variables que exporta la funcin. En Exception debemos definir todas las excepciones que pueda tener la funcin. Las instrucciones que van dentro de una funcin no llevan punto (.) al final. Solo se pone el punto (.) al final de la funcin, como ultima instruccin. En la funcin, la excepcin se llama con RAISE nombre_excepcion. Devuelve un cdigo para poder tratarlo; este cdigo esta definido en el programa en el apartado de EXCEPTIONS en la llamada a la funcin. Para usar ese cdigo se hara con IF SY SUBRC = valor_excepcion. Se puede poner como ultima excepcin OTHERS = valor, para poder utilizarlo en el caso de no tener contemplado el error. Los valores de la excepcin pueden ser cualquiera salvo 0. Las funciones ms utilizadas son: POPUP_TO_GET_VALUE Popup para introducir un dato. ALSM_EXCEL_TO_INTERNAL_TABLE Subir un Excel a una tabla interna WS_UPLOAD Subir un txt. Es similar a UPLOAD. Tambin se usa para subir el archivo de SAP al servidor. Est obsoleta en la ltima versin, utilizar GUI_UPLOAD; es igual. WS_DOWNLOAD Descargar de SAP a un txt. Es similar a DOWNLOAD. Tambin se usa para bajar el archivo del servidor a SAP. Est obsoleta en la ltima versin, utilizar GUI_DOWNLOAD; es igual. WS_FILENAME_GET Para que salga un CommonDialog de bsqueda de Windows.

FORMULARIOS (SAPSCRIPT)
Los formularios se crean, modifican o borran en la transaccin SE71. Los formularios se pueden crear con SAPSCRIPT o SMARTFORM. Los formularios se utilizan para imprimir plantillas fijas. En la pestaa Cabecera podremos ver: Datos de gestin. Son los atributos del formulario. Rellenamos Significado y Descripcin, dejando el resto como aparece por defecto. Parametrizacin bsica. Especificamos el formato de pgina. En Pgina inicial elegimos la pgina que deseamos como inicial. En la pestaa Pginas podremos ver las distintas pginas del formulario: En Tratar Crear elemento crearemos nuevas pginas. En Pag. Subsig., especificaremos que pgina seguir a la actual. En la pestaa Ventanas podremos ver las distintas ventanas de la pgina: Debe existir una ventana Main en cada pgina. Las ventanas se crean en Tratar Crear elemento. En cada ventana debemos especificar sus dimensiones. En la pestaa Ventana / Pgina especificaremos que ventanas se asignan a cada pgina. La misma ventana se puede existir en varias pginas. En la pestaa Formato de prrafo especificaremos los formatos de prrafo. Se crean en Tratar Crear elemento. En la pestaa Formato caracteres especificaremos un formato pequeo para ciertas palabras. Para poder usar el formulario debemos activarlo en el men Formulario.

Tenemos que tener en cuenta que a la hora de imprimir los datos en un formulario, primero se ejecuta la ventana main y despus el resto de ventanas. Con el programa estndar RSTXSCRP convertimos un formulario en formato txt codificado para poder transportarlo. Si queremos copiar un formulario vamos al men Utilidades elegimos los datos y parmetros que nos interesen copiar. Copiar de mandante y

En el men Utilidades Activar debugger activamos el modo debug sin entrar en el formulario. Sirve para comprobar que se pasan bien los parmetros. Nos aparecer una ventana y pulsamos sobre OK para comenzar el debug. El botn Cancelar cancelar el debug actual. El botn Finalizar cancela todos los debug. Dentro del debug, /W nos muestra el cdigo de la ventana que se est ejecutando y /E nos muestra el cdigo del elemento que se est ejecutando. Si queremos tener una vista preliminar del formulario iremos al men Utilidades Impresin test. Escogemos la impresora (normalmente la local) y a continuacin en Visualizar. Pulsando F9 o en el men Elementos de texto desde la pestaa Paginas, mostraremos el Form_Painter podremos editor de cdigo del formulario. En el men Opciones configurar como queremos que aparezca. En el cdigo del formulario poniendo ,, (Doble coma) conseguimos un salto de tabulacin. Las variables se usan con esta sintaxis: &var1&. Para borrar lneas del editor hacemos doble clic sobre la lnea a borrar y despus en Borrar. Dentro del editor, en la seccin de prrafo seleccionaremos el formato de prrafo con el que aparecer esa lnea. Los formatos predefinidos son: * Formato por defecto /= Continuacin de la lnea anterior /* Comentario /: Comando Con el comando /: NEWPAGE nombre_pagina generaremos una nueva pgina. Con el comando BOX [XPOS n medida][YPOS n medida][WIDHT n medida][HEIGHT n medida][FRAME n medida][INTENSITY n medida] creamos una caja. Las medidas pueden ser: TW Twin. 1/20 puntos PT Punto. 1/72 pulgada IN Pulgada. 2,54 CM CM Centmetro. 10 MM

CH LN

1 carcter 1 lnea

Para asociar un report a un formulario pondremos esto en el formulario: /: PERFORM nombre IN PROGRAM nombre USING &var1& &var2& CHANGING &var1& &var2&. En el programa tendremos que poner un procedimiento Abrir_formulario, tantos procedimientos Escribir_formulario como datos y un procedimiento Cerrar_formulario. Ejemplo: LOOP AT tabla_interna AT NEW campo READTABLE tabla_interna WHERE tabla_internacampo = tabla_internacampo. WRITE_FORM ELEMENT = elemento WINDOW = ventana ENDAT WRITE_FORM ELEMENT = elemento WINDOW = MAIN ENDLOOP Podemos crear una ventana con un logotipo. Para ello creamos la ventana y ponemos el siguiente cdigo: INCLUDE nombre_logo OBJECT TEXT ID SDVD PARAGRAPH ST. A continuacin debemos poner el tipo de la ventana a GRAPH (no antes, dado que el modo GRAPH no deja escribir cdigo) Gestin Grfico. Los logos se suben desde la transaccin SE71, men Entorno Archivos en servidor doc. GRAPHICS. BMAP, especificamos el logo y el color, para subirlo pulsaremos F5 y elegir la imagen .TIFF a subir.

ALV (ABAP LIST VIEWER)


Sirven para hacer listados por pantalla en formato tablas. Existen dos tipos de ALV, normal y jerrquico. Para ambos utilizar las plantillas. Los programas BALVHD01 y BALVHD02 son ejemplos que proporciona el estndar de SAP de ALV jerrquico. El cdigo que aparece siempre en un ALV es: TYPEPOOLS: SLIS. DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV FIELDCAT_LN LIKE LINE FIELDCAT SORTCAT TYPE SLIS_ SORTCAT_LN LINE SORTCAT EVENCAT TYPE SLIS_ EVENCAT_LN LIKE LINE OF EVENCAT COL_POS TYPE I SPOS TYPE I. Deben existir siempre estos procedimientos: Seleccionar_datos. Procedimiento para meter los datos a la tabla interna.

Crear_catalogo. Debe tener una lnea por cada columna que queremos mostrar. Tiene esta estructura: PERFORM BUILD_FIELDCAT USING: tabla campo longitud L cabecera_a_mostrar Visualizar_datos. Se define el siguiente cdigo y luego hace una llamada a la funcin REUSE_ALV_GRID_DISPLAY.: DATA: prg LIKE syrepid. prg = syrepid. DATA: salida TYPE SLIS_EXIT_BY_USER. En la plantilla, el procedimiento PERFORM ALV_USER_COMMAND se utiliza para que al hacer doble clic sobre un campo del ALV se ejecute otro programa o transaccin. En el When se especifica el campo sobre el que hacer clic y a continuacin se pone la accin a ejecutar. Si queremos desactivar este procedimiento comentar todos los When.

AYUDAS DE BUSQUEDA
Se crean en la transaccin SE11 pinchando sobre Ayuda de bsqueda. Seleccionar simple y rellenar todos los datos de la pestaa Atributos. En mtodo de seleccin especificar la tabla para la que queremos la ayuda e ir seleccionando los campos. Si queremos que se muestre en la ayuda de bsqueda debemos marcarlo como exp. En P.I. especificaremos la posicin en la que aparecer el campo. Si el campo lo hemos marcado como EXP debemos especificar un nmero de posicin. En PosS especificaremos la posicin en la ventana de dialogo. Puede estar vaco o contener el mismo valor que P.I. En V.S. especificamos si el campo se puede modificar o solo visualizar. Para que no se pueda modificar debemos marcar esta opcin. Los tipos de dilogos pueden ser: Dialogo dependiente. Visualizacin de valores inmediata. Salen los valores del campo directamente. Dialogo con limitaciones. Si la ayuda de bsqueda es compuesta, pondremos una descripcin, las ayudas simples que contiene y asignaremos los parmetros a las ayudas simples. Para usar la ayuda de bsqueda en un report usaremos este cdigo: PARAMETERS: nombre LIKE tablacampo MATCHCODE nombre_ayuda.

OBJECT

MODULE POOL
Se crean en la transaccin SE80. Poner Programa y asignarle un nombre. Debemos especificar un TOP (normalmente tendr el mismo nombre que el programa pero terminado en top). El TOP sirve para meter cdigo, principalmente declaraciones de variables, tablas, estructuras, etc. Sobre el nombre el programa pulsar botn derecho y Crear Dynpro. Le pondremos la descripcin de la pantalla, grabaremos, activaremos y pincharemos sobre Dispos. Las pantallas se llamarn 0100, 0200, 0300, . En lista de elementos podemos ver los atributos de los elementos de la pantalla.

A los campos de entrada / salida asignarles el correspondiente campo de la tabla interna. En la seccin Dynpros poner el cdigo de la pantalla. En PROCESS BEFORE OUTPUT especificar el cdigo a ejecutar al cargar la pantalla; en PROCESS AFTER INPUT especificar el resto de cdigo. Si hacemos doble clic sobre el estatus del PBO creamos mens. En SET PF_STATUS ponemos el nombre del men (en maysculas). Al hacer doble clic sobre el nombre creamos el status donde podemos elegir el tipo de men. En Barra de pulsadores definiremos los siguientes submens. Ponemos en esttico y luego en Texto de funcin, nombre de icono y Texto info ponemos la descripcin, el icono y el mensaje que saldr cuando pase el puntero por encima. Elegir el mtodo abreviado. En SET TITLEBAR xxx sirve para ponerle un nombre al men. No se suele poner. En el PBO y en el PAI poner el cdigo del programa. No elegir el TOP. Para poder ejecutar los Module Pool debemos crear una transaccin. Botn derecho Crear transaccin, ponerle como nombre el mismo que el del programa terminado en T y especificar la dynpro principal. La instruccin LEAVE PROGRAM sirve para abandonar el programa.

TABLE CONTROL
Es un componente de un Module Pool. Creamos una dynpro. Pulsamos dispos. y elegimos Table Control. Cogemos un campo de entrada / salida y lo ponemos dentro del Table Control. Como nombre le ponemos el campo de la tabla a la que va asociado y pulsamos Enter y a la pregunta que nos hace le decimos que SI. Aadimos los campos que queramos y despus con el campo de texto ponemos el nombre de las columnas. En el modulo TOP pondremos: CONTROLS: nombre_table_control TYPEWIEW USING SCREEN pantalla. En la pantalla del table control poner despus del Module Status: LOOP AT tabla_interna WITH CONTROL table_control CURSOR table_controlCURRENT_LINE. MODULE Pasar_Datos. ENDLOOP Y despus del Process After Input: LOOP AT tabla_interna MODULE Grabar_Datos. ENDLOOP Despus del Status tendremos que llenar la tabla interna. El contenido del procedimiento Pasar_datos es: MOVECORRESPONDING tabla_interna TO tabla_diccionario. El contenido del procedimiento Grabar_datos es: READTABLE tabla_interna INDEX table_controlCURRENT_LINE. IF SYSUBRC = 0. MOVECORRESPONDING tabla_diccionario TO tabla_interna. MODIFY tabla_interna INDEX table_controlCURRENT_LINE. ENDIF.

USEREXIT
Son programas. Son trozos del estndar que nosotros podemos definir y modificar. Cada dynpro tiene una UserExit. Las UserExit se utilizan para hacer acciones dentro del estndar como por ejemplo pulsar guardar.

ORDENES DE TRANSPORTE
Se ven en las transacciones SE09 Y SE10. Normalmente, los programas, tablas, etc., no se guardan en local. Se meten dentro de una orden de transporte. Para ello al crearlo en el cuadro de dialogo introducir la orden de desarrollo (que nos la proporciona el consultor) y pulsar en Grabar; saldr una nueva ventana pidiendo la orden de transporte (que tambin nos la proporciona el consultor). Las clases de rdenes de transporte son: Customizing. Son las rdenes de transporte que crean los consultores para el customizing de SAP. Workbenck. Son las rdenes de transporte de programacin. Los estados de las rdenes de transporte pueden ser: Modificables. Activas pero con programas modificables. No liberada, no se pueden pasar a la siguiente mquina. Liberadas. Terminadas, ya no se puede volver a activar el programa. Si se quiere modificar se debe pedir una nueva orden de transporte. Las rdenes de transporte deben pasarse en el orden de creacin. Cada orden tiene asignada una tarea. Con F5 podemos ver las rdenes transportadas. Pulsamos en visualizar. Crear rdenes o pulsando F6, elegir Workbench. Proyecto no se rellena. En tareas aadir a las personas para que metan sus programas. Destino se deja vaco. Grabamos. Al principio aparecer como no clasificado, es decir, no hay nada asignado, est vaca. Para liberar una orden de transporte, pulsar F9 y pulsar guardar. Saldra de ventana de documentacin. Antes de liberar una orden hay que verificar la orden. Se hace en el men Orden / Tarea Verificacin completa, elegir todos los pasos. Desde un report, en el men Utilidades Versiones Gestin de versiones, podemos ver el historial de rdenes de transporte del programa. En Comparacin REMOTE comparamos el programa con otra versin en otra mquina. Comparar (F8) sirve para ver las modificaciones de ese programa.

Vous aimerez peut-être aussi