MODULOS DE SAP

Finanzas (FI) FI Contabilidad AA Activos Fijos AP Deudores AR Acreedores GL Contabilidad General LC Consolidación SL Contabilidad Especial CO Costes ABC Control de Costes Basado en Actividades OM Costes Operativos PA Análisis de Rentabilidad PC Costes de Productos EC Controling Corporativo EIS Sistema de Información MC Consolidación PLA Contabilidad de Centros de Beneficios IM Inversiones IM Inversiones de Capital FA Medidas de Recursos Inmovilizados Tangibles TR Tesorería CM Caja FM Presupuestos TM Tesorería MRM Riesgos Recursos Humanos (HR) PA Administración de personal APP Candidatos BEN Beneficios EMP Empleados INW Incentivos PAY Nómina TIM Gestión de Tiempos TRV Gestión de Viajes PD Modulo de desarrollo OM Organización PD Desarrollo de Personal RPL Planificación y Reserva de Salas SCM Seminarios y Convenciones WFP Planificación del Trabajo Logística (LO) LO Logística ECH Cambios de Ingeniería EHS Medio Ambiente, Salud y Seguridad LIS Información Logística MD Datos Maestros PR Previsiones VC Configuración de Variantes

Materiales CBP Planificación Basada en Consumo EDI Intercambio Electrónico de datos IM Inventario IS Información IV Facturas POR Compras WM Almacén PM Mantenimiento de planta EQM Equipos y Objetos Técnicos IS Información de planta PRM Mantenimiento Preventivo PRO Proyectos de Mantenimiento SMA Servicios WOL Órdenes de Mantenimiento PP Producción ATO Ensamblaje BD Datos Básicos CRP Planificación de Capacidad IS Información de Producción KAB Kanbam / Just–in–time MP Planificación Maestra MRP Planificación de Necesidades de Material PDC Recolección de Datos de Planta PI Planificación de Producción para Industrias por Procesos REM Fabricación Repetitiva SFC Órdenes de Producción SOP Ventas y Operaciones PS Proyectos APP Presupuestos BD Datos Básicos EXE Ejecución / Integración IS Información de Proyectos OPS Estructuras Operativas PLN Planificación QM Calidad CA Certificados de Calidad IM Inspecciones PT Herramientas de Planificación QC Control de Calidad QN Notificaciones SD Ventas y distribución GF Funciones Generales BIL Facturación CAS Soporte a Ventas EDI Intercambio de Datos FTT Comercio Exterior SIS Información de Ventas MD Datos Maestros SHP Envíos

MM

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

Para comentar un bloque de código. clases..Información 4.Fuente de datos 5. etc. Su transacción es SQVI. seleccionamos el código y pulsamos Ctrl+<. y sirve para grabar las consultas que hace el estándar de SAP desde una transacción para. ver que campos. Con /n en la barra de transacciones podremos cambiar de transacción en la misma ventana de SAP.Query El QuickViewer es una herramienta para hacer consultas. desde el código ir al menú Sistema Servicios Jobs Definición de jobs. tablas o funciones utiliza.La transacción SPRO nos nuestra las especificaciones de SAP. Se abre desde Herramientas Workbench ABAP Utilidades QuickViewer. como por ejemplo funciones. etc.. Desde el editor de código si pulsamos sobre Patrón podemos elegir la generación de cierto código. La transacción AL11 nos sirve para ver todos los ficheros del servidor. programa. función. por ejemplo.. salvo si estamos en la principal que entonces saldremos de SAP. tablas. Para que un programa Z se convierta en un job. QUERYS Hay que dar 5 pasos: 1. Los menús “Sistema” y “Ayuda” están en todos los sistemas ABAP y son siempre iguales. Pulsando Ctrl+Y podemos seleccionar texto de cualquier parte de la ventana de SAP para copiar y pegarlo en otro lado.. La función TH_POPUP se utiliza para mandar mensajes internos a cualquier usuario del sistema SAP.Grupos de usuarios 3.. que usan o llaman esa tabla. ..Usuarios 2. El resto de menús pueden variar dependiendo de la máquina o la transacción. Con F3 vamos a la pantalla anterior. para descomentarlo pulsaremos Ctrl+Shift+<. La transacción ST05 nos muestra el TRACE–SQL. El botón Referencia de utilización sirve para visualizar todos los programas.

ENTORNOS DE SAP Desarrollo. Para la fase de pruebas. Seleccionamos los campos de filtro (campos de selección) y después los campos a visualizar (campos de lista). Existen datos casi reales. Para programar y crear programas. Asignar siempre las Query y los infoset a un grupo de usuarios. Seleccionamos la query creada y con el asistente que sale dando a siguiente seleccionamos los campos que queremos mostrar. Sistema Status y desde Report nos mostrará Con /h en la barra de transacciones activaremos el modo debug. Fase de producción. Seleccionamos el tipo.Asignamos la Query a un Infoset y a un grupo de usuarios. El campo variante dejarlo vacío. No se puede programar. Apenas tiene datos. ejecutaremos con F8 y después F5 para ir paso a paso. Campo local Crear Para crear campos de una Query vamos al menú Tratar Campo de cálculo. etc. se elige un usuario ya creado y se copia el perfil. Guardar y verificar. En fuente de datos seleccionar Unión de tablas (si son varias tablas) o Lectura directa (si es solo una tabla) Crear nuevo grupo de campos y pulsar Detalles. Producción o Productivo. En la pestaña Coding introduciremos el código y guardamos. longitud. SE38 Cuando no se indica el mandante en el programa las modificaciones se toman en cuenta para todos los usuarios. Selecciona los campos en visualización y guardamos. . Pulsamos “lista básica”. CREAR USUARIOS En la transacción SU01. Test o Integración. Desde la pantalla de selección Menú el código fuente de la consulta. INFOSET Son las consultas (query) a medida. No se puede programar. Luego se procede a las modificaciones. con más de una condición. Es el entorno de trabajo del cliente. SQ02 para crear el Infoset y SQ03 para crear grupos de usuarios. Hay datos reales. Las transacciones para hacer querys son: SQ01 para crear la Query. donde le ponemos el tipo de campo y una formula. Pinchando sobre “calculo complejo” podemos crear fórmulas complejas. LENGUAJE ABAP. Pinchar en Lista Básica. Verificamos y activamos el Infoset. Asignamos a un grupo de usuarios. Pestaña Detalle creamos nuestros campos.

nombre. Si queremos que sea de más longitud la declararemos: DATA: var1(n). programas no estándar. Los parámetros son variables que esperan que se le faciliten datos. SAP no da soporte técnico sobre ellos. Para definir una variable como fecha usaremos DATA: fecha LIKE SY-DATUM. programador. La tecla F4 sobre un campo (MatchCode) sirve para abrir el cuadro de búsqueda. tipo de programa. CONCATENATE var1 var2 INTO var3. El valor de esta variable será la misma que la del sistema SAP. Se declaran con PARAMETERS: nombre1. Pretty Printer podemos establecer como queremos que Todas las instrucciones en ABAP terminan con punto (. La forma de llamar a los campos es: tabla–campo. estado. Si especificamos SEPARATED BY SPACE separaremos sus valores con espacios dentro de var3. también las Z que nosotros creamos. La instrucción CONCATENATE une el texto de variables. día. Para especificar el tipo de variable se pone TYPE tipo a continuación del nombre de la variable. nombre2. Poniendo MESSAGE ID xx Donde xx es un número. nombre 2… El nombre del parámetro no puede ser mayor de 8 caracteres. En la SE38 es donde crearemos los programas ABAP Código fuente Visualizar el código fuente Variantes Visualizar variantes Atributos Visualizar los atributos del programa. Si no especificamos el tipo en la declaración de las variables el tipo por defecto es CHAR de un solo carácter. etc. Ejemplo: tabla SY–campo DATUM. Para poner un literal antepondremos el símbolo & en lugar de xx. Las tablas internas son las que nosotros creamos y se ejecutan solo mientras se ejecuta el programa. es decir. . Las tablas de diccionario son las que están integradas en SAP.).Todos los programas que empiecen por “Z” o por “Y” son a medida. Si el programa no está activo esta opción no funcionará Documentación Visualizar la documentación Elementos de datos Visualizar el código y el texto de las tablas. etc. Las variables se definen con DATA: nombre1. La instrucción TABLES se usa para definir las tablas de diccionario que se usarán en el programa. se especifica el mensaje a mostrar en caso de error. Debe ponerse al principio del código. En Utilidades Opciones aparezca el código fuente.

SY–VLINE sirve para pintar una línea vertical de tamaño 1. SY–INDEX Número de registro. 4 significa que algo ha fallado. entraremos inmediatamente en el modo debug. Una estructura es como una tabla pero de solo un registro. Indica la posición en la que nos encontramos. Campo1 LIKE sy–datum. Si lo que queremos es ver solo el día SY–DATUM+6(2). . SY–DBCNT contiene la cantidad de registros afectados por la última operación procesada.… END OF nombre. Con el OCCURS nº definimos la memoria que queremos que tenga la tabla. y es sobre la cabecera de la tabla sobre la que trabajamos. SY–INDEX contiene el número de repeticiones de un bucle. SY–ULINE sirve para pintar una línea horizontal del ancho de la pantalla. INCLUDE STRUCTURE mara. que contiene solo un registro.SY–SUBRC puede contener los valores 0 ó 4. El formato de SY–DATUM es aaaa/mm/dd. el número de registros que almacenará. se va reservando memoria a medida que se llena la tabla. Si especificamos un número dibujaremos una línea con el número de caracteres indicado. Para debugear un programa pondremos /h en la barra de transacciones y lo ejecutaremos. Campo2 LIKE ekpo–ebeln. Las tablas internas se definen con DATA: BEGIN OF nombre OCCURS n. 0 significa que la operación anterior ha sido correcta. el número actual de repetición del bucle. Si queremos que nuestra tabla interna tenga todos los campos de una tabla de diccionario pondremos INCLUDE STRUCTURE nombre_tabla. se ha realizado sin errores. SY–TABIX contiene el número de línea o registro sobre el que se está trabajando actualmente. pero solo aquellos campos que se llamen igual. Copia la cabecera La instrucción MOVE–CORRESPONDING tabla TO estructura de la tabla a la estructura. END OF nombre. Solo en tiempo de ejecución. Si queremos ver el año solamente pondremos SY–DATUM(4). Es aconsejable que después de un APPEND se ponga un CLEAR tabla–campo. la cabecera muestra el registro en el que estamos. . Si ponemos OCCURS 0. es solo cabecera. Todos los datos se cargan en la cabecera. Para rellenar una tabla interna con los datos de la cabecera de otra tabla igualaremos los campos y a continuación pondremos la instrucción APPEND TO tabla. END OF nombre. ‘ Maestro de materiales ‘ Campo fecha ‘ Campo documento de compras Las estructuras se definen con DATA: BEGIN OF nombre …. Ejemplo: DATA: BEGIN OF nombre OCCURS 0. En las tablas. Se usa en bucles y se sirve para ver en que SY–TABIX vuelta del ciclo nos encontramos.

Para leer un registro de una tabla usaremos READTABLE. Si ponemos a continuación de las condiciones UP TO var ROWS solo buscaremos en las var filas especificadas. . Para buscar datos dentro de las tablas podemos hacerlo con LOOP y una condición o con la siguiente instrucción SQL: SELECT * FROM tabla WHERE condición …. Si queremos actualizar varios registros a la vez usaremos: UPDATE tabla SET campo = valor WHERE condición.Con MOVE–CORRESPONDING tabla1 TO tabla 2 copiaremos solo todos los campos de la tabla1 a tabla2 que sean iguales. Dentro de un IF podemos poner varias condiciones. actualizamos el registro de la cabecera de la tabla. El equivalente a READTABLE es SELECT SINGLE * FROM tabla. Mediante INSERT tabla FROM TABLE tabla_interna. Para llenar una tabla interna con esa búsqueda utilizaremos: SELECT * FROM tabla INTO TABLE tabla_interna WHERE condición …. 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 condición. El WHERE lo podemos especificar también en los bucles LOOP. etc. ELSEIF condición …. Debe ir bajo una condición especificada con WHERE. introducimos datos desde una tabla interna a una de diccionario. Con la instrucción UPDATE tabla FROM TABLE tabla_interna actualizamos desde una tabla interna. Con IF SY–SUBRC <> 4 comprobaremos que todo ha ido bien. END SELECT. Con la instrucción UPDATE tabla. Pondrá en la cabecera de la tabla el primer registro que cumpla esa condición. IF condición …. Otra forma de copiar datos sería tabla2[] = tabla1[]. ENDIF. Para borrar datos de una tabla usaremos la instrucción DELETE. Con READTABLE tabla INDEX nº leeremos el registro n de la tabla. que deben ir encerradas entre comillas. sy–tabix. END SELECT. Si no estamos seguros de si el registro existe o no utilizaremos la instrucción MODIFY puesto que si el registro existe lo modifica y si no existe lo crea. una variable. IF 2 BETWEEN 1 AND 3 sirve para establecer rangos. Ejemplo: READTABLE tabla WHERE condición. 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. Ese número puede ser un entero. pero deben tener la misma estructura. Si queremos seleccionar un registro para bloquearlo de posibles modificaciones utilizaremos la instrucción: SELECT SINGLE FOR UPDATE * FROM tabla. ELSE ….

Sintaxis: SELECT–OPTIONS nombre FOR tipo (tabla–campo). Con el VIA SELECTION– SCREEN conseguimos que aparezca la pantalla de selección del programa llamado. Las pantallas de selección se crean con la instrucción SELECTION–SCREEN BEGIN OF BLOCK nombre WITH FRAME TITLE titulo. WHEN OTHERS …. CASE var1 …. Los SELECT–OPTIONS son parámetros pero con rango. Con LOOP AT tabla nos movemos por la tabla. Para llamar a otro programa pasándole parámetros debemos tener esta estructura: SUBMIT programa2 param1 WITH param1 = P1 var1 var1 = P2 deben ser del mismo VIA SELECTION–SCREEN tipo que P1 y P2 AND RETURN . LOW Rango inferior HIGH Rango superior Las variables. Con la opción SCREEN–INPUT haremos que un parámetro no se pueda modificar. tablas. Si ponemos LOOP AT tabla INTO tabla_interna copiamos el contenido. Si no queremos pedir los datos al usuario pondríamos RANGES a continuación. incluye o exclude OPTION EQ o BT. Sirven para agrupar parámetros en las pantallas de entrada de datos. que va siempre a continuación de la sección INITIALIZATION pondremos el código para que un parámetro no se pueda modificar. Sintaxis: SELECTION–SCREEN PUSHBUTTON nº_margen_izquierdo(nº_tamaño) nombre USER–COMMAND etiqueta. Si añadimos AND RETURN. WHEN …. después de la ejecución de ese programa el control volverá al nuestro. Los valores del botón se recogen en la tabla de sistema sscrfields. La instrucción SUBMIT nombreprograma se utiliza para ejecutar otro programa del entorno SAP. comparadas con la instrucción CO.. End Select de VB.SY–FDPOS contiene el número de elementos que contiene una cadena con respecto a otra. EQ si se introduce solo 1 valor. Con DEFAULT ‘X’ activamos un CHECKBOX o RADIOBUTTON. Es el Select …. Con DEFAULT le pasamos un valor por defecto a una variable o parámetro. BT si se introducen los 2. Con MODIF ID nombre obligamos a un grupo se SELECT–OPTIONS a tomar ese nombre para modificarlos juntos. rangos. etc. Ejemplo: SUBMIT nombre_programa WITH variables o parámetros VIA SELECTION–SCREEN AND RETURN. Los botones de comando se crean en los SELECTION–SCREEN. deben declararse antes de usarlos. Los datos que contienen los SELECT–OPTIONS son: SIGN I o E. Es equivalente a MOVE–CORRESPONDING. y en el campo ucomm de esa tabla se almacena el clic. Se usa como filtro para los SELECT. END CASE se usa en lugar del IF siempre que se conocen las opciones. La sección AT SELECTION–SCREEN OUTPUT.

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

float o integer los sumará. En esta sección pondremos el código a ejecutar en el caso de que el usuario pulse F4 sobre el parámetro. Cuando insertamos una función en nuestro código salen comentadas las variables que son opcionales. La instrucción SHIFT se utiliza para desplazar el contenido de una cadena de caracteres. podemos ver el rendimiento de nuestro programa. Se hace una grabación de la ejecución del programa y después en Evaluar pulsamos F5 para ver todos los procesos y el tiempo que consumen. ya sea estándar o nuestro y ver cual es más rápido. Si pulsamos en Tips & Trices podremos comparar código. en el menú Pasar a elementos de texto. Si encuentra un registro en la tabla interna cuyos campos char son iguales. los campos de tipo de datos package. La instrucción DIV nos devuelve la división de dos números. Para hacer esta operación la tabla debe estar antes vacía. . La sintaxis es: SHIFT var o campo BY espacios_a_desplazar PLACES o CIRCULAR RIGHT (para desplazar a la derecha). La instrucción DOWNLOAD sirve para bajar datos desde SAP al cliente. La instrucción FREE tabla_interna libera la memoria que ocupaba la tabla. Dentro de un report. Con la línea AT SELECTION–SCREEN ON VALUE REQUEST FOR var1. Sintaxis: REMPLACE ’cadena_a_sustituir’ WITH ’cadena_nueva’ INTO var1. La instrucción STRLEN nos devuelve la longitud de una cadena. También se llega aquí mediante la transacción SE30. Se aconseja siempre utilizar elementos de texto en lugar de literales para facilitar esta acción.La instrucción COLLECT suma o añade. La instrucción REMPLACE cambia el contenido de una cadena. La instrucción MOD nos devuelve el resto de la división. Con la instrucción TYPES se utiliza para declarar nuestros propios tipos de datos. La instrucción COMMIT WORK AND WAIT se utiliza para forzar a nuestro programa a que espere hasta que se termine de actualizar la base de datos. convertimos la variable en un parámetro. Si no encuentra ningún registro con campos char iguales añadirá un campo nuevo. en el menú Utilidades Más Utilidades Análisis en tiempo de ejecución. Traducción traducimos a otro idioma todos los En un report. La instrucción REFRESH tabla_interna borra todos los datos de la tabla interna. La instrucción UPLOAD sirve para subir datos desde el cliente a SAP o viceversa. La instrucción CLEAR tabla limpia la cabecera. También cualquier cosa que no se un literal.

&var2. REFRESH &var1. el menú estándar desaparece (salvo el de atrás). La instrucción DEFINE (que está en desuso) es igual que los PERFORM. el WatchPoint sirve para ver un dato concreto dentro de un bucle. Se suele poner antes del START–OF–SELECTION. La instrucción CONDENSE borra todos los espacios en blanco de una cadena dejando uno. teniendo en cuenta que los campos clave deben ir todos . Es similar al READ TABLE en una tabla interna. Sintaxis: SEARCH campo o tabla FOR ’cadena’. Dentro del debug. El valor de SY–SUBRC será 0 cuando el fichero se abre correctamente y 8 cuando falla. TRANSLATE var TO LOWER CASE cambia todo a minúsculas. En la pestaña Campos pondremos todos los que consideremos. Si ponemos EXCLUDING tabla_interna conseguiremos que no salgan ciertos botones. TRANSLATE var USING ’regla_de_caracteres’ cambia según lo especificado. Si creamos un menú para nuestro programa. Si especificamos NO–GAPS los elimina todos. …. Los botones se crean con la instrucción PF–STATUS ’nombre’ o desde la transacción SE41. &var2. Elegir la clase de la tabla y activar Permitir actualización (para poder modificar los datos desde la SM30) en Atributos.La instrucción TRANSLATE var TO UPPER CASE cambia todo a mayúsculas. TABLAS La transacción SM30 sirve para introducir y actualizar los datos de una tabla de diccionario. Para abrir un fichero utilizaremos la sentencia OPEN DATASET fichero FOR OUTPUT | INPUT IN BINARY MODE | IN TEXT MODE. Para crear una tabla usaremos la transacción SE11. por lo tanto si queremos que salga debemos crear nosotros esos menús y meter el código correspondiente. La sintaxis es: SELECT COUNT(campo o *) INTO var1. Para escribir datos utilizar la sentencia TRANSFER estructura TO fichero. La instrucción SELECT COUNT(*) se utiliza para contar la cantidad de registros de una tabla de diccionario. La instrucción SEARCH busca una cadena dentro de un campo o tabla. Tanto READ como TRANSFER tienen la cláusula LENGTH var que indicará longitud de lo leído o a escribir. …. especificaremos el nombre y pulsamos Crear. Si queremos leer un fichero usaremos READ DATASET fichero INTO estructura. los que estén definidos en esa tabla interna. END–OF–DEFINITION Para usarlo utilizaremos la siguiente sintaxis: nombre tabla_interna. El valor de SY–SUBRC será 0 cuando se ha leído el fichero correctamente y 4 cuando no encuentra el fin del fichero. Para cerrar el fichero usaremos la sentencia CLOSE DATASET fichero. Ejemplo: DEFINE nombre CLEAR &var1. Eso se consigue desde el menú Sistema Status Status interfase.

Activar para poder usar. y los campos vendrán separados por una tabulación. En caso de no utilizar Dominio. Para especificar que un campo es clave pulsaremos Clv.Pasar los datos de un fichero (txt o Excel) a una tabla interna. Debemos referenciar el campo precio al campo moneda en la pestaña Campos moneda / cantidad. En grupo de funciones especificaremos la misma tabla. Para generar el Número de imagen. En tipo de campo podemos buscar campos ya creados para usar en nuestra tabla o crear el nuestro.. los caracteres. dentro de la tabla. Especificamos el tipo de datos. Inic indica que el campo no puede estar en blanco. 2. lo hace automáticamente SAP). A continuación Activaremos la tabla para que la podamos usar. Por defecto. En tipo de campo pulsar F4 y poner WAERS. Los BI pueden ser online (se ejecutan la momento) o de fondo (programados para un momento determinado). pincharemos sobre Buscar Nº imágenes y Proponer. Siempre es preferible especificar un campo dentro de nuestra tabla. Ejemplo: tabla_interna LIKE BDCDATA. Si especificamos un campo para almacenar precios. debemos crear un campo moneda. Sólo se pueden utilizar dentro de un elemento de datos. Los Batch–input se utilizan para la carga masiva de datos desde archivos a tablas de diccionario.seguidos y al principio de la tabla. En grupo de autorizaciones especificaremos quien puede acceder. siendo un nivel para que todos los campos salgan en la misma pantalla. si no lo sabemos. Las tablas internas en un BI deben ser siempre del formato BDCDATA. Los BI tienen 3 pasos: 1. Debemos generar el actualizador de tablas (transacción SE55) para poder hacer funcionar la SM30. poner Tipo instalado y especificar el tipo de datos. El archivo debe tener la misma estructura que la tabla. El campo mandante debe ser el primer campo. Activamos el tipo de datos para poder utilizarlo en las tablas. si elegimos la opción Elemento datos / Tipo directo. Cuando tengamos todos los campos guardamos la tabla y pinchamos sobre Opciones técnicas. 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). para que acceda todo el mundo poner &NC&. donde especificaremos la clase de datos y el número de registros máximo que puede tener la tabla. En Denominación de campo especificar solo el Denominador de campo en todas las opciones (no es necesario poner longitud. Grabaremos siempre en estándar. Para introducir datos manualmente dentro de una tabla vamos a Utilidades de tabla Registrar entradas. En imágenes de actualización indicaremos el modo de visualización. La transacción SM35 también nos da acceso a la grabadora de datos y más opciones para los juegos de datos.. Los Dominios también se crean en la SE11. decimales y la longitud de salida. .Pasar los datos de la tabla interna a la base de datos. Los Tipos de datos se crean también en la SE11. Contenido BATCH–INPUT La transacción SHDB es la grabadora de datos. Los campos deben crearse con LIKE y no con INCLUDE STRUCTURE para que funcionen bien. En la pestaña Ámbito de valores establecer los valores del dominio..Hacer la grabación del juego de datos 3. Son tipos de datos creados por nosotros.

Para poder salir de un BI ponemos ‘/BEND’ en el valor del campo. FUNCIONES La transacción SE37 sirve para crear o modificar funciones. En Import nos salen todas las variables que importa y los atributos de esa variable. IBM (ASCII con codepage) o WK1 (hoja de calculo). En la transacción SE37 tenemos varias pestañas para cada función. Variables que importa el programa desde la función. Tablas a tratar. User será ‘SY–UNAME’. En la función BDC_INSERT. EXCEPTIONS var = valor. ponerle un nombre y la transacción que queremos grabar.Abrir la grabadora. Es un parámetro opcional. Es un parámetro opcional. Keep es para mantener guardado el juego o eliminarlo. El LOOP debería ser: LOOP AT tabla_interna AT FIRST PERFORM iniciarJuegoDatos función BDC_OPEN_GROUP ENDAT PERFORM tratarDatos Los perform pantalla y campos PERFORM insertarDatos Función BDC_INSERT AT LAST PERFORM cerrarJuegoDatos Función BDC_CLOSE_GROUP ENDAT END LOOP En la función BDC_OPEN_GROUP. Es un parámetro opcional. BIN (archivo binario). Los modos de visualización de un BI son A (vemos todos los procesos).) hay que volver a hacer la grabación y modificar el código fuente. ASC (archivo ASCII). A continuación debemos realizar nosotros en esa transacción todos los pasos a realizar por el BI pero solo para un registro. Los juegos de datos son BI preparados para lanzarse en cualquier momento. TABLES = tabla. Suele ser la misma tabla. Son las excepciones o errores. Variables a exportar desde nuestro programa hacia la función. Dynprotab es la tabla interna (batch2). En la función son los Exporting. En la función entran como Importing. etc. borrarlos. Cuando hayamos terminado pinchamos en guardar y pulsamos F3 hasta que nos salga la pantalla de la grabación con el código para usar en nuestro programa. Todas las funciones tienen los siguientes parámetros: EXPORTING var = valor. Los procedimientos para pasar la tabla interna a la base de datos son: PERFORM nombre_pantalla USING ‘programa’ ‘pantalla’ ‘X (sólo 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. Group es el nombre del juego de datos guardado. IMPORTING var = valor. En Export salen todas las . Si tenemos que hacer cualquier modificación (crear campos. N (no vemos nada hasta el final) y E (no vemos nada hasta que ocurra un error). Deben tener la misma estructura en el programa que en la función. Tcode es la transacción a ejecutar. DBF (archivo DBASE). En la función WS_UPLOAD en la opción Filetype podemos poner DAT (archivo de datos tabulados).

Las ventanas se crean en Tratar Crear elemento. Solo se pone el punto (. Parametrización básica.) al final de la función. Son los atributos del formulario. WS_FILENAME_GET Para que salga un CommonDialog de búsqueda de Windows. es igual. Subsig. En la pestaña Ventana / Página especificaremos que ventanas se asignan a cada página. Los formularios se pueden crear con SAPSCRIPT o SMARTFORM. En Exception debemos definir todas las excepciones que pueda tener la función. FORMULARIOS (SAPSCRIPT) Los formularios se crean. Rellenamos Significado y Descripción. utilizar GUI_UPLOAD. Está obsoleta en la última versión. modifican o borran en la transacción SE71. En la pestaña Ventanas podremos ver las distintas ventanas de la página: Debe existir una ventana “Main” en cada página. utilizar GUI_DOWNLOAD.) al final. También se usa para subir el archivo de SAP al servidor. Los formularios se utilizan para imprimir plantillas fijas. este código esta definido en el programa en el apartado de EXCEPTIONS en la llamada a la función. En la pestaña Páginas podremos ver las distintas páginas del formulario: En Tratar Crear elemento crearemos nuevas páginas. En la pestaña Cabecera podremos ver: Datos de gestión.. ALSM_EXCEL_TO_INTERNAL_TABLE Subir un Excel a una tabla interna WS_UPLOAD Subir un txt. En Pag. Devuelve un código para poder tratarlo. Los valores de la excepción pueden ser cualquiera salvo 0. dejando el resto como aparece por defecto. es igual. Es similar a UPLOAD. . para poder utilizarlo en el caso de no tener contemplado el error. Para poder usar el formulario debemos activarlo en el menú Formulario. Especificamos el formato de página. Las instrucciones que van dentro de una función no llevan punto (. La misma ventana se puede existir en varias páginas. como ultima instrucción. En cada ventana debemos especificar sus dimensiones. especificaremos que página seguirá a la actual. Se puede poner como ultima excepción OTHERS = valor. Para usar ese código se haría con IF SY– SUBRC = valor_excepcion. Las funciones más utilizadas son: POPUP_TO_GET_VALUE Popup para introducir un dato.variables que exporta la función. En la función. También se usa para bajar el archivo del servidor a SAP. la excepción se llama con RAISE nombre_excepcion. En Página inicial elegimos la página que deseamos como inicial. En la pestaña Formato caracteres especificaremos un formato pequeño para ciertas palabras. WS_DOWNLOAD Descargar de SAP a un txt. En la pestaña Formato de párrafo especificaremos los formatos de párrafo. Se crean en Tratar Crear elemento. Es similar a DOWNLOAD. Está obsoleta en la última versión.

Con el programa estándar RSTXSCRP convertimos un formulario en formato txt codificado para poder transportarlo. (Doble coma)” conseguimos un salto de tabulación.Tenemos que tener en cuenta que a la hora de imprimir los datos en un formulario. Las variables se usan con esta sintaxis: ‘&var1&’. 1/20 puntos PT Punto. /W nos muestra el código de la ventana que se está ejecutando y /E nos muestra el código del elemento que se está ejecutando. mostraremos el Form_Painter podremos editor de código del formulario. 10 MM . Escogemos la impresora (normalmente la local) y a continuación en Visualizar. 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. El botón Finalizar cancela todos los debug. En el menú Opciones configurar como queremos que aparezca. Pulsando F9 o en el menú Elementos de texto desde la pestaña Paginas. 2. en la sección de párrafo seleccionaremos el formato de párrafo con el que aparecerá esa línea.54 CM CM Centímetro.. Los formatos predefinidos son: * Formato por defecto /= Continuación de la línea anterior /* Comentario /: Comando Con el comando /: NEW–PAGE nombre_pagina generaremos una nueva página. Copiar de mandante y En el menú Utilidades Activar debugger activamos el modo debug sin entrar en el formulario. 1/72 pulgada IN Pulgada. Las medidas pueden ser: TW Twin. Si queremos tener una vista preliminar del formulario iremos al menú Utilidades Impresión test. Nos aparecerá una ventana y pulsamos sobre OK para comenzar el debug. Si queremos copiar un formulario vamos al menú Utilidades elegimos los datos y parámetros que nos interesen copiar. Para borrar líneas del editor hacemos doble clic sobre la línea a borrar y después en Borrar. Dentro del editor. primero se ejecuta la ventana main y después el resto de ventanas. En el código del formulario poniendo “. El botón Cancelar cancelará el debug actual. Dentro del debug. Sirve para comprobar que se pasan bien los parámetros.

WRITE_FORM ELEMENT = ‘elemento’ WINDOW = ‘ventana’ ENDAT WRITE_FORM ELEMENT = ‘elemento’ WINDOW = ‘MAIN’ ENDLOOP Podemos crear una ventana con un logotipo. .TIFF a subir. 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. tantos procedimientos Escribir_formulario como datos y un procedimiento Cerrar_formulario. Los logos se suben desde la transacción SE71. para subirlo pulsaremos F5 y elegir la imagen . normal y jerárquico. dado que el modo GRAPH no deja escribir código) Gestión Gráfico. El código que aparece siempre en un ALV es: TYPE–POOLS: SLIS. ALV (ABAP LIST VIEWER) Sirven para hacer listados por pantalla en formato tablas. Ejemplo: LOOP AT tabla_interna AT NEW campo READTABLE tabla_interna WHERE tabla_interna–campo = tabla_interna–campo. Existen dos tipos de ALV. Los programas BALVHD01 y BALVHD02 son ejemplos que proporciona el estándar de SAP de ALV jerárquico. menú Entorno Archivos en servidor doc. A continuación debemos poner el tipo de la ventana a GRAPH (no antes. Para ello creamos la ventana y ponemos el siguiente código: INCLUDE ’nombre_logo’ OBJECT TEXT ID SDVD PARAGRAPH ST. especificamos el logo y el color. Para ambos utilizar las plantillas. BMAP.CH LN 1 carácter 1 línea Para asociar un report a un formulario pondremos esto en el formulario: /: PERFORM nombre IN PROGRAM nombre USING &var1& &var2& CHANGING &var1& &var2&. GRAPHICS. En el programa tendremos que poner un procedimiento Abrir_formulario. Procedimiento para meter los datos a la tabla interna. Deben existir siempre estos procedimientos: Seleccionar_datos.

las ayudas simples que contiene y asignaremos los parámetros a las ayudas simples. grabaremos.S. Dialogo con limitaciones. el procedimiento PERFORM ALV_USER_COMMAND se utiliza para que al hacer doble clic sobre un campo del ALV se ejecute otro programa o transacción.: DATA: prg LIKE sy–repid. En el When se especifica el campo sobre el que hacer clic y a continuación se pone la acción a ejecutar. Debemos especificar un TOP (normalmente tendrá el mismo nombre que el programa pero terminado en top). etc. OBJECT MODULE POOL Se crean en la transacción SE80. Tiene esta estructura: PERFORM BUILD_FIELDCAT USING: ’tabla’ ’campo’ ’longitud’ ’L’ ’cabecera_a_mostrar’ Visualizar_datos.I. Salen los valores del campo directamente. principalmente declaraciones de variables. El TOP sirve para meter código. En método de selección especificar la tabla para la que queremos la ayuda e ir seleccionando los campos. Si la ayuda de búsqueda es compuesta. prg = sy–repid.Crear_catalogo. Si el campo lo hemos marcado como EXP debemos especificar un número de posición. DATA: salida TYPE SLIS_EXIT_BY_USER. estructuras. Si queremos desactivar este procedimiento comentar todos los When. Visualización de valores inmediata. Debe tener una línea por cada columna que queremos mostrar. Para que no se pueda modificar debemos marcar esta opción. En P. En PosS especificaremos la posición en la ventana de dialogo.I. tablas. Puede estar vacío o contener el mismo valor que P. Las pantallas se llamarán 0100. . especificamos si el campo se puede modificar o solo visualizar. Le pondremos la descripción de la pantalla. activaremos y pincharemos sobre Dispos. Sobre el nombre el programa pulsar botón derecho y Crear Dynpro. Seleccionar simple y rellenar todos los datos de la pestaña Atributos. En la plantilla. Si queremos que se muestre en la ayuda de búsqueda debemos marcarlo como “exp”. En lista de elementos podemos ver los atributos de los elementos de la pantalla. Los tipos de diálogos pueden ser: Dialogo dependiente. Poner Programa y asignarle un nombre. …. 0300. especificaremos la posición en la que aparecerá el campo. En V. Se define el siguiente código y luego hace una llamada a la función REUSE_ALV_GRID_DISPLAY. Para usar la ayuda de búsqueda en un report usaremos este código: PARAMETERS: nombre LIKE tabla–campo MATCHCODE ‘nombre_ayuda’. 0200. pondremos una descripción. AYUDAS DE BUSQUEDA Se crean en la transacción SE11 pinchando sobre Ayuda de búsqueda.

MODIFY tabla_interna INDEX table_control–CURRENT_LINE. En SET TITLEBAR ‘xxx’ sirve para ponerle un nombre al menú. La instrucción LEAVE PROGRAM sirve para abandonar el programa.A los campos de entrada / salida asignarles el correspondiente campo de la tabla interna. Elegir el método abreviado. el icono y el mensaje que saldrá cuando pase el puntero por encima. . Ponemos en estático y luego en Texto de función. En Barra de pulsadores definiremos los siguientes submenús. Al hacer doble clic sobre el nombre creamos el status donde podemos elegir el tipo de menú. 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. ENDLOOP Después del Status tendremos que llenar la tabla interna. y elegimos Table Control. Botón derecho Crear transacción. MODULE Pasar_Datos. El contenido del procedimiento Pasar_datos es: MOVE–CORRESPONDING tabla_interna TO tabla_diccionario. IF SY–SUBRC = 0. En el PBO y en el PAI poner el código del programa. En la sección Dynpros poner el código de la pantalla. ENDIF. Para poder ejecutar los Module Pool debemos crear una transacción. Añadimos los campos que queramos y después con el campo de texto ponemos el nombre de las columnas. En SET PF_STATUS ponemos el nombre del menú (en mayúsculas). No se suele poner. ponerle como nombre el mismo que el del programa terminado en T y especificar la dynpro principal. TABLE CONTROL Es un componente de un Module Pool. Creamos una dynpro. nombre de icono y Texto info ponemos la descripción. El contenido del procedimiento Grabar_datos es: READTABLE tabla_interna INDEX table_control–CURRENT_LINE. En el modulo TOP pondremos: CONTROLS: nombre_table_control TYPEWIEW USING SCREEN ‘pantalla’. en PROCESS AFTER INPUT especificar el resto de código. En la pantalla del table control poner después del Module Status: LOOP AT tabla_interna WITH CONTROL table_control CURSOR table_control–CURRENT_LINE. En PROCESS BEFORE OUTPUT especificar el código a ejecutar al cargar la pantalla. No elegir el TOP. Si hacemos doble clic sobre el estatus del PBO creamos menús. MOVE–CORRESPONDING tabla_diccionario TO tabla_interna. Pulsamos dispos. Cogemos un campo de entrada / salida y lo ponemos dentro del Table Control. ENDLOOP Y después del Process After Input: LOOP AT tabla_interna MODULE Grabar_Datos.

. ya no se puede volver a activar el programa. Antes de liberar una orden hay que verificar la orden. No liberada. Las clases de órdenes de transporte son: Customizing.. Para ello al crearlo en el cuadro de dialogo introducir la orden de desarrollo (que nos la proporciona el consultor) y pulsar en Grabar. no hay nada asignado. Se meten dentro de una orden de transporte. no se pueden pasar a la siguiente máquina. Son las órdenes de transporte de programación. tablas. Proyecto no se rellena. Al principio aparecerá como “no clasificado”. Si se quiere modificar se debe pedir una nueva orden de transporte. Para liberar una orden de transporte. Son las órdenes de transporte que crean los consultores para el customizing de SAP. Workbenck. Destino se deja vacío. podemos ver el historial de órdenes de transporte del programa. Comparar (F8) sirve para ver las modificaciones de ese programa. no se guardan en local. Crear órdenes o pulsando F6. Normalmente.USER–EXIT Son programas. Son trozos del estándar que nosotros podemos definir y modificar. Los estados de las órdenes de transporte pueden ser: Modificables. elegir Workbench. en el menú Utilidades Versiones Gestión de versiones. etc. Las órdenes de transporte deben pasarse en el orden de creación. Se hace en el menú Orden / Tarea Verificación completa. Grabamos. pulsar F9 y pulsar guardar. es decir. saldrá una nueva ventana pidiendo la orden de transporte (que también nos la proporciona el consultor). En tareas añadir a las personas para que metan sus programas. Las User–Exit se utilizan para hacer acciones dentro del estándar como por ejemplo pulsar guardar. En Comparación REMOTE comparamos el programa con otra versión en otra máquina. los programas. Terminadas. elegir todos los pasos. ORDENES DE TRANSPORTE Se ven en las transacciones SE09 Y SE10. Con F5 podemos ver las órdenes transportadas. Saldría de ventana de documentación. Cada dynpro tiene una User–Exit. Activas pero con programas modificables. Cada orden tiene asignada una tarea. Pulsamos en visualizar. está vacía. Desde un report. Liberadas.

Sign up to vote on this title
UsefulNot useful