Академический Документы
Профессиональный Документы
Культура Документы
SAP
AO 2006/7
Pgina 2 de 63
INDICE
I. Introduccin_________________________________________________________________________________________________6
Definicin de Select-options.........................................................................................................18
VIII. Campos del sistema (SYST)_________________________________________________________________________________19
IX. SQL ABAP________________________________________________________________________________________________21
Open SQL......................................................................................................................................21
SQL Nativo....................................................................................................................................21
Sentencias "Open SQL"..............................................................................................................21
X. Bases de datos lgicas________________________________________________________________________________________24
XI.Salida estndar de datos______________________________________________________________________________________25
Listas sencillas...............................................................................................................................25
Listas complejas............................................................................................................................25
XII. Procesamiento de tablas internas_____________________________________________________________________________26
Eventos principales.......................................................................................................................31
Eventos que se procesan en la salida de datos...........................................................................31
Eventos que se procesan despus de la salida principal de un programa...............................32
Abandono de bloques de proceso................................................................................................32
XV. Programas interactivos______________________________________________________________________________________33
XVI. Modularizacin de un programa_____________________________________________________________________________37
XXII.Field Exits_______________________________________________________________________________________________51
XXIV.Field Symbols____________________________________________________________________________________________53
Pgina 5 de 63
I. Introduccin
Las aplicaciones R/3 estn escritas en el lenguaje de programacin ABAP (Advanced Business Application
Programming).
Los programas ABAP se comunican con la base de datos y con la interfaz grfica de usuario (SAPgui).
Pgina 6 de 63
El lenguaje ABAP no tiene restricciones de formato. Las palabras deben separarse al menos por un espacio
(el fin de lnea se considera como un espacio).
Ej:
PROGRAM
TEST.
WRITE 'esto es una sentencia'.
Es igual a
PROGRAM TEST. WRITE 'Esto es una sentencia'.
Y a su vez es igual a
PROGRAM
TEST.
WRITE
Esto es una sentencia.
Caso especial: literales de texto
El fragmento de cdigo:
PROGRAM
WRITE
es
una setencia'.
TEST.
'Esto
Inserta espacios entre cada lnea del literal. En este caso se debe resolver de la siguiente manera:
PROGRAM TEST.
WRITE 'Esto' &
' es ' &
'una sentencia'.
Estructura bsica de las sentencias
Concatenacin de sentencias
El lenguaje ABAP permite concatenar sentencias consecutivas que tienen la misma keyword, usando : (dos
puntos)
Ej:
WRITE:
SPFLI-CITYFROM,
SPFLI-CITYTO,
SPFLI-AIRPTO.
Declaracin de datos
Pgina 7 de 63
Tipos de datos :
Son descripciones
No ocupan memoria en tiempo de ejecucin
Describen propiedades tcnicas que luego sern asociadas a un programa.
Tipos de datos predefinidos
Objetos de datos
Unidades fsicas que ocupan espacio en memoria y un programa puede utilizar en tiempo de ejecucin.
Cada objeto de dato tiene asociado un tipo de dato.
Ej: Variables, constantes
Pgina 8 de 63
DATA
DATA
DATA
CONSTANTS
Ej:
CONSTANTS pi(3) TYPE P DECIMALS 2 VALUE 3,14.
RANGES : Tablas internas con la estructura de los SELECT-OPTIONS.
Ej:
RANGES belnr FOR bkpf-belnr.
Pgina 9 de 63
variables de tipo I
Pgina 10 de 63
Otras sentencias:
ABS: Valor absoluto
Ej:
N = ABS( M ).
CEIL: Valor entero superior.
Ej:
N = CEIL( M ).
FLOOR: Valor entero inferior.
Ej:
N = FLOOR( M ).
TRUNC: Parte entera de un nmero.
Ej:
N = TRUNC( M ).
FRAC: Parte decimal de un nmero.
Ej:
N = FRAC( M ).
STRLEN: Devuelve la longitud de un string.
Ej:
N = STRLEN( M ).
Entre campos de estructuras, se pueden llevar a cabo operaciones aritmticas usando las siguientes
sentencias:
ADD-CORRESPONDING
SUBTRACT-CORRESPONDING
MULTIPLY-CORRESPONDING
DIVIDE-CORRESPONDING
Pgina 11 de 63
Ej:
DATA: BEGIN OF a,
uno TYPE I VALUE '5',
dos TYPE I VALUE '6',
END OF a.
DATA: BEGIN OF b,
dos TYPE I VALUE '3',
tres TYPE I VALUE '9',
END OF b.
ADD-CORRESPONDING a TO b.
WRITE: B-DOS, B-TRES.
El resultado en pantalla sera:
9 9
3) Sentencias de manejo de strings
Pueden encontrar programas que necesiten modificar la salida de una variable, para estos casos, las
sentencias siguientes son las mas utilizadas:
CONCATENATE - SPLIT SHIFT - CONDENSE -OVERLAY -REPLACE -SEARCH
Pgina 12 de 63
DESCRIPCIN
Rango de valores
Valor inicial
Valor perteneciente a un criterio
de seleccin
Pgina 13 de 63
1)
IF c1 = c2.
...
ELSE.
...
ENDIF.
2)
IF c1 > c2.
...
ELSEIF c1 < c2.
...
ELSE.
...
ENDIF.
WHEN 'B' OR C.
WHEN OTHERS.
ENDCASE.
DO: Bucle incondicional.
Ej:
1)
DO.
WRITE SY-INDEX.
IF SY-INDEX = 3.
EXIT.
ENDIF.
ENDDO.
2)
DO 3 TIMES.
WRITE SY-INDEX.
ENDDO.
Pgina 14 de 63
La tablas internas proveen una forma de almacenar datos en memoria lnea por lnea. Cada lnea
tiene la misma estructura.
Los datos almacenados en tablas internas solamente existirn durante el tiempo de ejecucin del
programa.
El nmero de registros de una tabla interna no es fijo, el sistema incrementa el tamao de la misma
en tiempo de ejecucin (a medida que se van agregando datos).
Las tablas internas estn compuestas por Header line y Table lines. La header line es el rea de
trabajo, cuando se leen datos de una tabla interna estos quedan almacenados en la header line. Los
datos solamente pueden leerse (o modificarse) en el header line, y de ah recin transferirse a la
tabla interna.
El header line es opcional, por lo tanto si quiere leerse una lnea de una tabla interna definida sin
header line debe guardarse el resultado en otra rea de trabajo (con INTO).
El header line y la tabla interna (table lines) tienen el mismo nombre. El sistema sabe en cada
sentencia si nos referimos al rea de trabajo o a la tabla interna (segn el tipo de sentencia).
Tabla interna
rea de trabajo
Pgina 15 de 63
V.Elementos de Texto
Los elementos de texto permiten guardar textos en el programa sin necesidad de especificarlos en el cdigo
fuente mediante hard-coding.
Los elementos de texto de un programa se mantienen desde el editor ABAP (SE38): Pasar a -> elementos
de texto.
VI. Diccionario ABAP
A travs de la transaccin del diccionario de datos (SE11) se pueden mantener todos los objetos de base de
datos relacionados directamente con el entorno de programacin:
Tablas.
Estructuras: Se definen en forma similar a las tablas pero fsicamente es slo una definicin, no se
pueden almacenar datos en ellas.
Vistas de tablas.
Elementos de datos: Un elemento de datos es un tipo elemental que describe los atributos de tipo
(tipo de datos, longitud de campo y, en caso necesario, cantidad de decimales) y contiene
informacin relevante para dynpros (textos explicativos o Ayuda para campos).
Dominios: Los dominios definen formatos de campos. Un dominio describe los atributos tcnicos de
un campo, tales como el tipo de datos o la cantidad de posiciones del campo, la tabla de verificacin
de posibles valores valores, longitud de salida y rutina de conversin.
Ayudas para bsqueda (Matchcode).
Objetos de bloqueo: Las bases de datos soportadas por SAP realizan bloqueos fsicos en la
actualizacin de la informacin. Los objetos de bloqueo permiten realizar bloqueos lgicos en lo
programas.
Pgina 16 de 63
Pgina 17 de 63
LONGITUD
1
OPTION
LOW
La
del
referenciado
La
del
referenciado
HIGH
campo
VALORES POSIBLES
I: Inclusin
E: Exclusin
EQ: Igual a
NE: No igual a
GE: Mayor o igual que
GT: Mayor que
LE: Menor o igual que
LT: Menor que
CP: Contiene patrn (usa caracteres especiales + y *).
NP: No contiene el patrn (usa caracteres especiales + y *).
BT: Entre los valores (usa el campo HIGH).
NB: No est entre los valores(usa el campo HIGH).
Segn el campo de referencia
campo
Pgina 18 de 63
TIPO
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
INT4
CHAR
INT1
LANG
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
INT4
CHAR
CLNT
NUMC
CHAR
CHAR
CHAR
CHAR
CHAR
LONGITUD
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
1
3
1
1
1
1
1
4
4
1
10
20
3
1
1
1
1
1
4
DESCRIPCIN
Loops, ejecucin de loop actual
Creacin lista, pgina actual
Tablas internas, ndice de lneas actual
Tablas internas, cantidad de lneas actual
Tablas internas, valor del parmetro OCCURS
Accesos base datos, cantidad de lneas de tabla ledas
Strings, offset en string (lugar de hallazgo)
Creacin de listas, columna actual en la creacin de la lista
Creacin listas, longitud pgina de la lista
Creacin listas, lnea actual
Creacin listas, ancho lnea de la lista
Imprimir listas, columnas de la sentencia SET MARGIN
Imprimir listas, lneas de la sentencia SET MARGIN
Tablas internas, tamao de la lnea
Tratamiento listas, lnea de lista seleccionada
Cdigo retorno, cdigo retorno tras sentencia
Imgenes pantalla, posicin del cursor horizontal (columna)
Imgenes pantalla, posicin del cursor vertical (fila)
Tratamiento listas, ndice del listado actual
Tratamiento listas, nivel del listado desde el cual se activ el evento actual
Dynpros, ndice de lnea de tabla actual (en LOOP)
Imgenes pantalla, cantidad lneas
Imgenes pantalla, cantidad columnas
Dynpros, cantidad de lneas visibles en STEP LOOP de dynpro
Fecha y hora, dif.tiempo con "Hra estndar Greenwich" en segundos
Fecha y hora, indic.horario verano activo
Fecha y hora, da de la semana en calendario fbrica
Sistema R/3, idioma actual
Sistema R/3, cantidad de modos externos
Ejecucin en proceso de fondo (X)?
Batch input, programa ejecutado en batch input (X)?
Programa ABAP, modo de llamada del programa activo
Programa ABAP, Nmero del dynpro actual
Programa ABAP, grupo de imgenes del dynpro actual
Creacin listas, indicador para cabecera estndar de pgina
Tratamiento de listas, nmero de pgina actual
Programa ABAP, base de datos lgica usada
Sistema R/3, N mandante desde entrada al sistema
Parmetro impr., tmpo.permanencia en SPOOL
Parmetro impr., salida inmediata
Parmetro impr., borrar tras salida
Parmetro impr., portada de seleccin
Parmetro impr., nueva orden SPOOL
Parmetro impr., disp.salida
Pgina 19 de 63
PLIST
PRDSN
CALLR
RTITL
PRREC
PRTXT
PRABT
PAART
PRCOP
DBSYS
SYSID
OPSYS
PFKEY
SAPRL
TCODE
UCOMM
SPONO
DATUM
SLSET
UZEIT
REPID
UNAME
LSTAT
ABCDE
MSGLI
TITLE
LISEL
ULINE
CPROG
LDBPG
TVAR0
TVAR1
TVAR2
TVAR3
TVAR4
TVAR5
TVAR6
TVAR7
TVAR8
TVAR9
MSGID
MSGTY
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
NUMC
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
NUMC
DATS
CHAR
TIMS
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
CHAR
12
6
8
70
12
68
12
16
3
10
8
10
20
4
20
70
10
8
14
6
40
12
16
26
60
70
255
255
40
40
20
20
20
20
20
20
20
20
20
20
20
1
Pgina 20 de 63
Pgina 21 de 63
END OF tabla.
SELECT name1 kunnr INTO CORRESPONDING FIELDS OF TABLE tabla
FROM kna1 WHERE land1 = 'AR'.
*En lugar de INTO, en este caso se puede usar APPENDING
* Se pueden usar funciones de agregacin
SELECT MAX(dmbtr) INTO resultado FROM BSIS.
SELECT SUM(DISTINCT dmbtr) INTO RESULTADO FROM BSIS.
* Funciones de agregacin disponibles: MAX, MIN, AVG, SUM y COUNT
* Lectura especificando campos de saida y ORDER BY...
SELECT name1 kunnr INTO ( nombre , codigo )
FROM kna1 WHERE land1 = 'AR'
ORDER BY name1 DESCENDING.
* Lectura con especificacin de tabla dinmica
DATA tabla(10) TYPE C.
tabla = 'BKPF'.
SELECT SINGLE * FROM (tabla)...
* Chequeo de valores con SELECT-OPTIONS
SELECT-OPTIONS s_kunnr FOR kna1-kunnr.
SELECT * FROM kna1 WHERE kunnr IN s_kunnr.
* Lectura de dos tablas a travs de INNER JOIN
SELECT A~KUNNR A~NAME1 B~BUKRS B~ALTKN
INTO
CORRESPONDING FIELDS OF TABLE ITAB
FROM
( KNA1 AS A
INNER JOIN KNB1 AS B ON A~KUNNR = B~KUNNR )
WHERE A~KUNNR BETWEEN 1 AND 25000 AND
B-ALTKN BETWEEN 1 AND 25000.
IMPORTANTE: En la clusula WHERE pueden utilizarse todos los valores lgicos de comparacin (los
aplicables a todos los objetos de datos).
INSERT: Inserta un registro en tabla de base de datos. El formato bsico es:
INSERT INTO <target> VALUES <wa> .
El contenido de la variable o estructura wa es insertado en la tabla target. La variable o estructura wa debe
contener la misma longitud que la tabla del diccionario. Es conveniente definir wa like target.
Otras formas de lograr lo mismo son:
INSERT <target> FROM <wa >.
INSERT <dbtab>. Cuando se ha completado con informacin la cabecera de la tabla.
Para insertar varias lneas:
INSERT <target> FROM TABLE <itab> [ACCEPTING DUPLICATE KEYS] .
Ej:
TABLES kna1.
kna1-kunnr = '0001561003'.
kna1-name1 = 'Cliente Test'.
INSERT kna1.
Pgina 22 de 63
UPDATE: Modifica el contenido de uno o ms registros de la base de datos. El formato bsico es:
UPDATE <target> SET <set1> <set 2> ... [WHERE <cond>].
Tambin puede usarse de la forma:
UPDATE <target> FROM <wa> .
UPDATE <dbtab>.
UPDATE <target> FROM TABLE <itab> .
Ej:
UPDATE kna1 SET spras = 'S' TELTX = ' '
WHERE kunnr > '0001560000'.
DELETE: Elimina registros de la base de datos. El formato bsico es:
DELETE FROM <target> WHERE <cond>.
Tambin se puede usar de la forma:
DELETE <dbtab>. Cuando se ha completado con informacin la cabecera de la tabla.
O para borrar mltiples lneas:
DELETE <target> FROM TABLE <itab> .
Ej:
TABLES kna1.
kna1-kunnr = '0001561003'.
DELETE kna1.
En todos los casos:
SY-SUBRC = 0 indica que se seleccion al menos un registro. Otro valor indica que la lectura/modificacin
no tuvo xito.
SY-DBCNT contiene la cantidad de registros seleccionados.
Pgina 23 de 63
Tabla A
Tabla B
Tabla C
1) Se accede al 1 registro de A.
2) Se accede al primer registro de B relacionado con el registro ledo de A.
3) Se accede a todos los registros de C relacionados con el registro de B.
4) Despus se accede al siguiente registro de B (siempre relacionado con el de A).
5) Se accede a todos los de C relacionados a este registro de B.
6) Una vez que se procesaron todos los registros de B relacionados al primer registro de A, se lee el
siguiente registro de A.
Pgina 24 de 63
Pgina 25 de 63
Descripcin
Borra todas las lneas de la tabla interna (las table lines). No borra la cabecera.
Borra el header line (la cabecera).
Libera la memoria usada por la tabla interna.
REFRESH itab.
CLEAR itab.
FREE itab.
Descripcin
Aade registros al final de la tabla interna. Es la que se recomienda por razones de
rendimiento.
Aade o modifica registros de la tabla interna en funcin de la clave estndar de la tabla.
Si la clave estandar ya existe en la tabla, modifica el registro acumulando los campos
numricos. Si no existe, es equivalente a APPEND.
Insertar un registro en una posicin determinada de la tabla interna.
Descripcin
Tambin puede ser utilizada para copiar el contenido de tablas internas.
Copia el contenido de una tabla interna sobre otra, sobreescribiendo la tabla destino.
Tambin puede ser utilizada para copiar el contenido de tablas internas.
Ej:
* Copiar algunas entradas de una tabla interna en otra, agregndolas al final de la tabla
* destino
APPEND LINES OF itab1 FROM 1 TO 5 TO itab2.
* Copiar las entradas de una tabla interna en otra, insertndolas en una posicin de la
*tabla destino.
INSERT LINES OF itab1 INTO itab2 INDEX 2.
* Copiar una tabla interna en otra, sobreescribiendo la tabla destino.
* Si las tablas internas tienen header line, el mismo y las table lines tienen el mismo
* nombre, por esto para referenciar las table lines se usa [].
Pgina 26 de 63
Descripcin
Lectura de registros de tablas internas, recorriendo registro a registro.
Lectura de un registro particular de una tabla interna usando un ndice o una clave.
Eventos internos e la sentencia LOOP que se activan cuando se cumplen ciertas
condiciones.
Suma los campos numricos de los registros de una tabla interna (dentro de un
loop).
Pgina 27 de 63
La adicin INTO (LOOP AT itab INTO wa) permite recorrer la guardando el contenido de cada registro en un
rea de trabajo (WA).
Procesamiento de niveles de control en tablas internas
El procesamiento de niveles de control se permite dentro de un LOOP de una tabla interna. Esto significa
que pueden agruparse secuencias de entradas de la tabla interna segn el contenido de ciertos campos.
Los niveles de control se forman ordenando la tabla interna primero por su primer columna, luego por la
segunda, etc.
Cada cambio de color en una columna activa un evento AT dentro del LOOP de la tabla.
El siguiente ejemplo muestra los diferentes eventos AT que se activan al recorrer la tabla:
LOOP AT itab.
AT FIRST.
"Esto se ejecuta cuando se ley el primer registro
ENDAT.
AT NEW col.
"Esto se ejecuta cuando se ley un nuevo valor en COL
ENDAT.
"Lo que no est dentro de ningn AT se ejecuta para todos los registros
AT END OF col.
"Esto se ejecuta cuando se lee el ltimo registro en COL antes de un "cambio de valor.
ENDAT.
AT LAST.
"Esto se ejecuta cuando se lee el ltimo registro de la tabla int.
ENDAT.
ENDLOOP.
Dentro de un AT..ENDAT, el header line de la tabla interna solamente se carga con el valor de la lnea
actual para los registros que estn a la izquierda del campo clave del grupo que se est evaluando. Los
campos a la izquierda del mismo se llenan con '*'.
Uso de SUM para calcular totales y subtotales en un evento AT.
Dentro de un evento AT, puede usarse la sentencia SUM para calcular los totales de los campos numricos
de la tabla interna. Los registros que se van a totalizar dependen del evento en el que se incluya el SUM.
Ej:
LOOP AT itab.
AT END OF col1.
SUM.
ENDAT.
...
AT LAST.
SUM.
ENDAT.
ENDLOOP.
Pgina 28 de 63
Descripcin
Modifica el contenido de un registro de la tabla interna.
Modifica el contenido de un registro de la tabla interna.
Borra un registro de la tabla interna.
En todos los casos, SY-SUBRC es 0 si la tabla interna pudo ser borrada/modificada. En caso contrario es
<> 0.
Ordenamiento de registros de una tabla interna
Se usa la sentencia SORT.
SORT <itab> [by f1 .. fn]. Ordena la tabla interna.
SORT
SORT
* Se
SORT
itab.
"Ordena por la clave estndar de ITAB en forma ascendente.
itab BY col1 col2.
"Ordena por COL1 y COL2 en forma ascendente.
puede especificar si el criterio es ascendente o descendente:
itab BY col2 ASCENDING col3 DESCENDING.
Pgina 29 de 63
XIII.Mensajes
Los mensajes se gestionan desde la transaccin SE91. Los mensajes se agrupan por clases de mensaje
(MESSAGE ID). La misma agrupa mensajes que tengan la misma unidad funcional.
La clase de mensaje se define luego en los programas ABAP mediante la sentencia REPORT (clusula
MESSAGE-ID).
Recordar que los mensajes se invocan con la sentencia MESSAGE.
Nro. Mensaje
Texto mensaje
Variables de mensaje
No necesita texto explicativo
Si se quiere asociar un texto explicativo a un mensaje, se hace posicionandose en el mismo y con el botn
.
Pgina 30 de 63
EVENTO
Se procesa antes de que aparezca la pantalla de seleccin.
Se procesa mientras la pantalla de seleccin est activa.
Se procesa despus de la pantalla de seleccin.
Punto de control entre un report y una base de datos lgica. Se
ejecuta cuando se leyeron registros de una tabla de la BD lgica.
Se activa luego de procesar todos los eventos GET (cuando ya se
han ledo todos los registros de la BD lgica).
Ejemplos:
INITIALIZATION.
AT SELECTION-SCREEN.
* Si hay error habilitar solamente el parmetro indicado para cargar datos
AT SELECTION-SCREEN ON parm.
* Para chequear los valores cargados en un select-options
AT SELECTION-SCREEN ON END OF s_bukrs.
* Si hay error habilitar solamente los campos radiobutton del grupo RAD1 para
cargar datos
AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad1.
* Si hay error habilitar solamente los campos que pertenecen al bloque indicado
AT SELECTION-SCREEN ON BLOCK bloque-sel.
START-OF-SELECTION.
GET kna1.
* Obtener solamente determinados campos de la BD Lgica
GET kna1 FIELDS kunnr.
* Procesar el nodo de BD Lgica cuando ya se procesaron sus subordinados
GET kna1 LATE.
END-OF-SELECTION.
Pgina 31 de 63
El programa imprime solamente el nro. del primer cliente (no imprime 'Fin del programa').
CHECK <exp_log>: El evento contina procesndose si se cumple la expresin lgica <exp_log>.
En caso contrario finaliza la ejecucin del evento pero no el programa, sino que se contina con el siguiente
registro recuperado de la BD lgica.
Ej:
...
GET bkpf.
CHECK bkpf-budat BETWEEN 20020301 AND 20020305.
REJECT: Finaliza la ejecucin del evento para el registro de la BD lgica que se est tratando, pasando al
siguiente registro.
Ej:
...
GET kna1.
IF kna1-kunnr ge 0001002000.
REJECT.
ENDIF.
Pgina 32 de 63
REPORT ZTEST.
WRITE Listado principal.
AT LINE-SELECTION.
WRITE: Listado secundario, Nivel:, SY-LSIND.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN FUN1.
...
WHEN FUN2.
...
ENDCASE.
AT PF5.
AT PF12.
WRITE Puls F12.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE SY-LSIND.
Pgina 33 de 63
WHEN 1.
WRITE Listado secundario 1.
WHEN 2.
WRITE Listado secundario 2.
ENDCASE.
ULINE.
Las sentencias relacionadas con los programas interactivos son las siguientes:
Sentencia
Descripcin
MESSAGE
Activa un mensaje
SET PF-STATUS
Define el cdigo de status, para que el sistema active la interfaz de usuario
correspondiente (Menu Painter).
SET TITLEBAR
Define el ttulo de pantalla.
SET USER-COMMAND
Activa un comando (por lo tanto activa el evento AT USER-COMMAND).
WINDOW
Define una ventana con formato de pantalla.
HIDE
Retiene el contenido de un campo, cargndolo con el valor de la lnea
seleccionada en cada AT LINE-SELECTION.
GET CURSOR
Obtiene el nombre del campo en el cual se encuentra posicionado el cursor.
SET CURSOR
Posiciona el cursor en un campo determinado de la pantalla.
DESCRIBE LIST
Obtiene los atributos de un listado.
SCROLL LIST
Realiza un desplazamiento del listado.
READ LINE
Lee una lnea del listado.
READ CURRENT LINE
Lee la lnea actual del listado.
MODIFY LINE
Modifica el contenido de una lnea
MODIFY CURRENT LINE
Modifica el contenido de la lnea actual.
MESSAGE: Los mensajes se guardan en la tabla T100 y se mantienen a travs de la transaccin SE91. Hay
6 clases de mensajes:
A (Abend)
E (Error)
I (info)
S (Status)
W (Warning)
X (Exit)
Ej:
SET PF-STATUS: Define el cdigo de status, para que el sistema active la interfaz de usuario
correspondiente. Este cdigo de status debe haberse definido en el Menu Painter.
Ej:
SET PF-STATUS TEST.
* Usar un PF-STATUS excluyendo funciones
SET PF-STATUS TEST EXCLUDING FC1.
SET PF-STATUS TEST EXCLUDING itab.
Pgina 34 de 63
SET USER-COMMAND: Activa un comando (por lo tanto activa tambin el evento AT USER-COMMAND).
Ej:
SET USER-COMMAND COMD.
HIDE field: Cuando se imprime el listado en pantalla, al emplear la sentencia HIDE sobre un campo se
retiene el contenido del campo para cada lnea de salida. Cuando el usuario selecciona una lnea del listado,
field se carga automticamente con el valor que tiene en la lnea seleccionada.
Ej:
GET kna1.
WRITE: kna1-kunnr, kna1-name1.
HIDE: kna1-kunnr, kna1-pstlz.
...
AT LINE-SELECTION.
WRITE: Se seleccion el cliente, kna1-kunnr.
WRITE: El C.P. es:, kna1-pstlz.
GET CURSOR: Obtiene el nombre del campo en el cual se encuentra posicionado el cursor.
Ej:
DATA v_var(20) TYPE C.
...
AT LINE-SELECTION.
GET CURSOR FIELD v_var.
SET CURSOR: Posiciona el cursor en un campo determinado de pantalla.
Ej:
DATA v_var(5) TYPE C VALUE CAMPO.
DATA campo(3) TYPE C.
...
AT LINE-SELECTION.
SET CURSOR FIELD v_var LINE SY-LILLI.
DESCRIBE LIST: Obtiene los atributos de un listado.
Ej:
* Obtener la cantidad de lneas del listado
DESCRIBE LIST NUMBER OF LINES lin.
* Obtener la cantidad de pginas del listado
DESCRIBE LIST NUMBER OF PAGES n.
* Obtener el nro. de pgina de la lnea seleccionada
DESCRIBE LIST LINE lin PAGE pag.
READ LINE: Lee una lnea del listado, quedando el contenido de la misma en SY-LISEL.
Ej:
AT LINE-SELECTION.
READ LINE SY-LILLI.
WRITE SY-LISEL.
MODIFY LINE: Modifica el contenido de una lnea del listado.
Ej:
* Modificar el formato de una lnea
AT LINE-SELECTION.
MODIFY LINE SY-LILLI LINE FORMAT COLOR 6.
Pgina 35 de 63
Pgina 36 de 63
Pgina 37 de 63
* Forma bsica
LEAVE TO TRANSACTION FB02.
* Si quiero completar los datos de la pantalla inicial directamente desde el programa, y
* saltear la primer pantalla de la transaccin invocada.
SET PARAMETER ID BUK FIELD 0100.
SET PARAMETER ID BLN FIELD v_belnr.
SET PARAMETER ID GJR FIELD 2002.
LEAVE TO TRANSACTION FB02 AND SKIP FIRST SCREEN.
La variable del sistema SY-TCODE tiene en cada proceso el cdigo de transaccin actual.
Pgina 38 de 63
Programas
Sentencia
INCLUDE
SUBMIT
LEAVE PROGRAM
Descripcin
Incluye cdigo de otro programa.
Ejecuta un programa.
Abandona el programa actual.
INCLUDE: Generalmente se utiliza para separar la declaracin de datos, el proceso y las subrutinas de un
programa. Supongamos que definimos todos los datos de un programa ZREPORT en un programa (tipo
include) llamado ZDATOS. A su vez creamos otro programa ZRUTINAS (tambin de tipo include) donde
guardamos todas las subrutinas que usa el programa ZREPORT. La estructura de ZREPORT quedara as:
REPORT zreport.
INCLUDE zdatos.
<proceso principal>
INCLUDE zrutinas.
SUBMIT: Ejecuta un programa desde al actual. Si no se especifica lo contrario, el control pasa al programa
submitido (no vuelve al llamador).
* Forma bsica
SUBMIT zreport.
* Si se desea que al terminar de ejecutarse el programa submitido el control
SUBMIT zreport AND RETURN.
* Submitir un reporte cuyo nombre est en una variable V_PROG_NAME
SUBMIT (v_prog_name).
* Submitir un reporte pasndole los parmetros de seleccin
SUBMIT zreport
WITH bukrs = v_bukrs
WITH monat IN s_monat.
LEAVE PROGRAM: Abandona la ejecucin del programa actual.
IF sy-uname <> USR01.
LEAVE PROGRAM.
ENDIF.
Mdulos de funcin
Son subrutinas externas especiales centralizadas en una librera. El sistema provee numerosos mdulos de
funcin predefinidos que pueden ser utilizados por los programas ABAP. Tambin el sistema permite al
cliente crear sus propios mdulos de funcin. La principal diferencia entre un mdulo de funcin y una
subrutina es la interfaz definida para pasar y recibir datos en un mdulo de funcin. Tambin se soporta el
manejo de excepciones.
Sentencia
Descripcin
CALL FUNCTION
Realiza una llamada a un mdulo de funcin
RAISE
Activa una excepcin. Solamente puede ser usada dentro de la definicin de un
mdulo de funcin.
Ej:
* Invocar a una funcin. SY-SUBRC contiene el cdigo de retorno (si termin OK
es 0).
CALL FUNCTION 'STRING_SPLIT'
EXPORTING
DELIMITER = ':'
STRING = var_1
IMPORTING
Pgina 39 de 63
HEAD = var_2
TAIL = var_3
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
* Activar una excepcin desde un mdulo de funcin
FUNCTION Z_DIVIDE.
...
IF DIVISOR = 0.
RAISE DIVISOIN_ZERO.
ENDIF.
...
ENDFUNCTION.
Subrutinas
Las subrutinas son mdulos de programa que pueden ser llamados desde programas ABAP. Mediante las
subrutinas es posible escribir solamente una vez partes de un programa que se ejecutan en forma repetitiva.
Sentencia
Descripcin
FORM .. ENDFORM
Definicin de una subrutina
PERFORM
Llamada a una subrutina
FORM .. ENDFORM: La sintaxis de la definicin de una subrutina es la siguiente:
FORM subrutina USING parm_1 .. parm_n
CHANGING par_1 .. par_n
TABLES itab STRUCTURE estructura_1
itabn STRUCTURE estructura_n.
USING: Se utilizan como parmetros de entrada a la subrutina.
CHANGING: Se utilizan como parmetros de salida de la subrutina.
TABLES: Son tablas internas (pueden ser parmetros de entrada o salida).
Ej:
* Llamado bsico a una subrutina
PERFORM f_rutina USING dato CHANGING retorno.
...
FORM f_rutina USING p_dato
CHANGING p_retorno.
p_retorno = p_dato * 2.
ENDFORM.
* Llamado a subrutinas que estn en otros programas.
PERFORM f_rutina(zrutinas) USING dato CHANGING retono.
* Otra forma de llamar a una subrutina en otro programa
v_rutina = 'F_RUTINA'.
v_programa = 'ZRUTINAS'.
PERFORM (v_rutina) IN PROGRAM (v_programa)
USING dato
CHANGING retorno.
Macroinstrucciones
Una macroinstruccin es la definicin de una sentencia interna en un programa.
Sentencia
Descripcin
DEFINE .. END-OF-DEFINITION
Definicin de una macroinstruccin. La ejecucin de la misma se
realiza con el nombre de sta.
Ej:
* Definir una macroinstruccin que realiza una operacin aritmtica
DATA resultado TYPE I.
...
Pgina 40 de 63
DEFINE operacin.
resultado = &1 &2 &3.
WRITE resultado.
END-OF-DEFINITION.
...
* Invocar a la macroinstruccin
operacion 4 + 3.
operacion 2 ** 7.
Se pueden definir macros globales, que pueden ser utilizadas por todos los programas. Las mismas se
llaman macros RMAC, y se encuentran an la tabla TRMAC.
Salida de procesos
Para abandonar el flujo de alguno de los procesos anteriormente vistos se utilizan las siguientes setencias.
Sentencia
Descripcin
LEAVE
Abandona el proceso iniciado por un CALL TRANSACTION o SUBMIT .. AND RETURN.
El control se devuelve donde se realiz la llamada.
EXIT
Abandona una subrutina o cualquier unidad de modularizacin en forma incondicional.
CHECK
Abandona una subrutina o cualquier unidad de modularizacin en forma condicional.
Pgina 41 de 63
La herramienta de depuracin (debugger) permite ejecutar paso a paso una transaccin o programa
ABAP. Se puede ver el contenido de campos o tablas internas, as como crear puntos de ruptura
dinmicos (watchpoint).
La transaccin de depuracin se puede activar a travs de:
Las sentencias BREAK y BREAK-POINT.
Introduciendo /h en el campo de comandos (OK_CODE) de cualquier programa o transaccin y
pulsando INTRO.
Con break-points externos al programa. Desde el editor ABAP, posicionando el cursor en la lnea en
la que se quiere fijar y a travs de Utilidades -> Breakpoints -> Fijar/borrar (o directamente botn
).
Programa de
Control.
Programa que se est ejecutando
Nmero de lnea del programa
Prxima sentencia que se va a
ejecutar
Break-point fijado
Pgina 42 de 63
Variable a evaluar
Comparador lgico (si no se pone
nada se activa cuando cambia el
valor).
Valor o variable contra el que se
compara
Ejecucin paso a paso en el
debugger
Los siguientes botones permiten hacer el seguimiento paso a paso del programa.
Descripcin
Activa el debugging de un programa para un usuario determinado.
Activa el debugging de un programa.
para todo usuario
Pgina 43 de 63
Descripcin
Exporta datos a la memoria ABAP.
Recupera datos de la memoria ABAP.
Libera la memoria ABAP.
EXPORT TO MEMORY: Guarda datos en clusters de la memoria ABAP. Estos datos pueden ser variables,
estructuras, tablas internas, etc.). Cada EXPORT TO MEMORY sobreescribe la memoria ABAP para el ID
indicado.
IMPORT FROM MEMORY: Importa objetos de datos de un cluster de datos de la memoria ABAP. Si se
pudo encontrar en la memoria ABAP un cluster de datos con el ID especificado, se setea SY-SUBRC = 0.
En caso contrario SY-SUBRC = 4.
E/S en archivos externos
SAP permite trabajar con archivos secuenciales localizados tanto en el servidor de aplicacin como en el
servidor de presentacin.
Servidor de aplicacin
Las sentencias que permiten trabajar con archivos en el servidor de aplicacin son:
Sentencia
Descripcin
OPEN DATASET
Abre un archivo del servidor de aplicacin.
TRANSFER
Transfiere un registro al archivo del servidor de aplicacin.
READ DATASET
Lee un registro del archivo del servidor de aplicacin.
DELETE DATASET
Borra un archivo del servidor de aplicacin.
CLOSE DATASET
Cierra un archivo del servidor de aplicacin.
OPEN DATASET: Las siguientes opciones se utilizan para especificar la forma en que se va a abrir el
archivo:
FOR INPUT: Abre el archivo para lectura
FOR OUTPUT: Abre el archivo para escritura (si tena algn contenido lo sobreescibe). Si el archivo no
existe lo crea.
FOR APPENDING: Abre el archivo para escritura (si tena algn contenido, lo mantiene y agrega lo nuevo al
final). Si el archivo no existe lo crea.
Pgina 44 de 63
IN TEXT MODE: Los contenidos del archivo se estructuran en lneas. Cada READ DATASET o TRANSFER
leen o escriben una lnea del archivo.
IN BINARY MODE: Los contenidos del archivo no se estructuran en lneas.
El resultado de OPEN DATASET puede comprobarse verificando el valor de SY-SUBRC (si es 0 significa
que el archivo se abri correctamente).
Ej:
* Escritura de un archivo de texto
PARAMETERS p_file(80) TYPE C.
DATA registro LIKE bkpf.
...
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE. "abrir el archivo
IF SY-SUBRC = 0.
...
TRANSFER registro TO p_file.
* graba un registro (lnea) en el archivo
...
CLOSE DATASET p_file.
"cerrar el archivo
ENDIF.
* Lectura del archivo de texto
OPEN DATASET p_file FOR INPUT IN
IF SY-SUBRC = 0.
DO.
READ DATASET p_file
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET p_file.
ENDIF.
TEXT MODE.
"abrir el archivo
INTO registro.
"Leer un registro
* Borrar un archivo
DELETE DATASET p_file.
Servidor de presentacin
Para trabajar con archivos de la PC local, el sistema no ofrece sentencias ABAP sino una serie de mdulos
de funcin.
Mdulo de funcin
Descripcin
DOWNLOAD
Crea un archivo en el servidor de presentacin, CON dilogo con el usuario.
WS_DOWNLOAD
Crea un archivo en el servidor de presentacin, SIN dilogo con el usuario.
UPLOAD
Lee un archivo del servidor de presentacin, CON dilogo con el usuario. El
contenido del archivo se guarda en una tabla interna.
WS_UPLOAD
Lee un archivo del servidor de presentacin, SIN dilogo con el usuario. El
contenido del archivo se guarda en una tabla interna.
Pgina 45 de 63
Pgina 46 de 63
Campos especiales (bucles): Para poder especificar un campo en un bucle (por ejemplo en una grilla con
datos) hay que especificar en FNAM el nombre de campo seguido del subndice entre parntesis.
Ej:
CLEAR TABLA.
TABLA-FNAM = Q0391-LGART(04).
TABLA-FVAL = 7B01.
APPEND TABLA.
Posicionamiento del cursor: Para posicionar el cursor en un campo determinado, se genera una entrada en
BDCTAB con FNAM = BDC_CURSOR y FVAL con el nombre de campo donde se desea situar el cursor.
Ej:
CLEAR TABLA.
TABLA-FNAM = BDC_CURSOR.
TABLA-FVAL = BKPF-BLDAT.
APPEND TABLA.
Mtodo Batch Input Clsico
Este mtodo crea sesiones (juegos de datos) de batch input. Para ello se utilizan los siguientes mdulos de
funcin:
MDULO DE FUNCIN
SIGNIFICADO
BDC_OPEN_GROUP
Crear un juego de datos de Batch Input
BDC_INSERT
Insertar una transaccin en el juego de datos de Batch Input. Toda la
informacin correspondiente a la ejecucin de la transaccin estar
contenida en una tabla interna con estructura BDCDATA.
BDC_CLOSE_GROUP
Cerrar un juego de datos de Batch Input.
Ej:
* Crear un juego de datos Batch Input
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT
= SY-MANDT
" Mandante
GROUP
= 'FACTURAS'
" Nombre J.Datos
HOLDDATE
= v_fecha
" Fecha de bloqueo (opcional)
KEEP
= 'X'
" Mantener J.datos procesado (opcional)
USER
= sy-uname
" Usuario propietario de sesin
EXCEPTIONS
CLIENT_INVALID
= 1
DESTINATION_INVALID
= 2
GROUP_INVALID
= 3
GROUP_IS_LOCKED
= 4
HOLDDATE_INVALID
= 5
INTERNAL_ERROR
= 6
QUEUE_ERROR
= 7
RUNNING
= 8
SYSTEM_LOCK_ERROR
= 9
USER_INVALID
= 10
OTHERS
= 11
.
* Ahora hay que llenar la tabla interna.
REFRESH tabla.
* Primer pantalla
clear tabla.
tabla-program = SAPMS38M.
tabla-dynpro = 0100.
tabla-dynbegin = X.
append tabla.
* Campo de la primer pantalla
clear tabla.
tabla-fnam = RF02K-EKORG.
tabla-fval = v_ekorg.
append tabla.
Podra ir un literal
Pgina 47 de 63
Pgina 48 de 63
Grabacin nueva
Crear un programa en base a una
grabacin
Pgina 49 de 63
Una vez creado seleccionar el radiobutton Asignacin ampliaciones cliente y pulsar Modificar.
Haciendo doble click en el nombre del mdulo de funcin, nos lleva al mdulo de funcin que contiene un
Include. Dentro de ese include debemos ingresar el cdigo de nuestra user exit. Luego de esto HAY QUE
ACTIVAR EL PROYECTO para que funcione el EXIT.
Pgina 50 de 63
XXII.Field Exits
Los Field Exits son validaciones particulares que se aplican a un campo de pantalla determinado. A
diferencia de las user exits, puede crearse un field exit que acte sobre cualquier campo de cualquier
transaccin de dilogo, pero acta solamente sobre el valor de ese campo, es decir que en el momento de
ejecutarlo desconoce el valor de el resto de los campos ingresados en la transaccin.
Los field exits se definen sobre ELEMENTOS DE DATOS, y nosotros decimos en que programa/pantalla se
va a activar.
Para crear/modificar/visualizar un field exit, debe ejecutarse el porgrama RSMODPRF.
Al ejecutarlo (sin indicar parmetros de seleccin) vemos la siguiente pantalla:
Para crear un field exit, hay que ejecutar la opcin de men Exit Campo -> Crear.
Cargar el elemento de datos sobre el cual se quiere crear el field exit, y pulsar Continuar. Nos lleva a la
transaccin SE37, donde nos propone el nombre del mdulo de funcin que se va a crear. En dicho mdulo
de funcin se va a codificar el field exit.
Este mdulo de funcin tiene un parmetro INPUT de entrada y un parmetro OUTPUT de salida. Lo
mmimo que debe tener esta funcin es OUTPUT = INPUT, para que el valor ingresado se siga viendo en
pantalla luego de ejecutarse.
Pgina 51 de 63
Una vez creado el field exit, hay que asignarlo al programa/dynpro sobre el cual queremos que se ejecute.
Para esto lo marcamos y pulsamos Asignar prog./dynpro.
En ExitCamp, se pone el nmero de field exit. Esto solamente es necesario si para un mismo elemento de
datos queremos crear field exits diferentes en distintos programas/dynpros.
Para terminar, marcar el field exit y acceder al men Exit Campo -> Activar.
Pgina 52 de 63
XXIV.Field Symbols
Hay veces que en el programa que se est desarrollando se presenta la problemtica de que el nombre de
campo que se tiene que utilizar no se conoce hasta el momento de ejecucin. En estos casos se usan los
FIELD-SYMBOLS.
Un field symbol es un puntero a un campo existente. No tiene reservado espacio fsico, ya que apunta a
otro campo existente, que puede ser cualquier objeto de datos ABAP (variables, estructuras, campos de
estructuras) o cualquier tabla o estructura definida en el diccionario de datos.
Declaracin de field symbols
La forma bsica de declarar un field symbol es:
FIELD-SYMBOLS <campo>.
Field symbol de cualquier tipo
Tambin puede definirse un field symbol de un tipo determinado (con TYPE o LIKE como cualquier
variable):
Ej:
FIELD-SYMBOLS <fecha> TYPE N.
Procesamiento de field symbols
Antes de poder utilizar un field symbol, hay que asignarle un objeto de datos (variable, campo de estructura,
etc.). Este objeto de datos debe ser conocido para el programa en el momento de la asignacin.
Luego de la asignacin el field symbol pasa a apuntar al objeto especificado, de manera que tiene su
mismo valor y cambia cuando cambia el objeto de datos original.
Luego de un ASSIGN, el field symbol hereda el tipo (y por lo tanto las caractersticas) del objeto de datos
que se le asign.
Sentencia
Descripcin
ASSIGN
Asigna un objeto de datos a un field symbol.
UNASSIGN
Desasigna el objeto de datos del field symbol. El field symbol ahora no apunta a nada.
Ej:
*** Asignacin esttica
DATA: fecha LIKE SY-DATUM.
FIELD-SYMBOLS <fs>.
Fecha = SY-DATUM.
ASSIGN fecha TO <fs>.
WRITE <fs>.
Pgina 53 de 63
Pgina 54 de 63
Pgina 55 de 63
Gestin de Versiones
Se utiliza para ver las versiones de los objetos y realizar comparaciones entre
los mandantes.
Ir al men UTILIDADES VERSIONES Gestin de Versiones.
Ejemplo:
Mandante: 210
Trx: SE11
TABLA: ZFN_ODS.
Pgina 56 de 63
Pgina 57 de 63
Si se quiere ver el cdigo o los objetos que fueron modificados, hay que ir a
COMPARACION REMOTE.
Aparecer:
Pgina 58 de 63
Una vez que se ingresa el nombre del mdulo de funcin, se presiona 'Crear' y aparece la siguiente
pantalla:
Se pide (en forma obligatoria) ingresar un grupo de funciones. Cada mdulo de funcin tiene que formar
parte de un grupo de funciones. Puede usarse uno existente o crear uno nuevo (desde la pantalla anterior).
A su vez debe ingresarse en 'Texto Breve' una descripcin del mdulo de funcin que se va a crear.
Luego hacer click en 'Grabar'. Se pide clase de desarrollo y orden de transporte (si la clase de desarrollo no
es '$TMP').
Pgina 59 de 63
En la pantalla de atributos del mdulo de funcin se ven las propiedades del mismo, y puede determinarse
el tipo de mdulo de funcin (normal, de acceso remoto -RFC-, etc.).
Las siguientes pantallas permiten definir la interfase del mdulo de funcin, es decir sus parmetros de
entrada (IMPORT), sus parmetros de salida (EXPORT) y las tablas internas, que pueden ser tanto
parmetros de entrada como de salida (TABLES). Tambin pueden definirse excepciones (EXCEPTIONS)
que son eventos de error que dispara el mdulo de funcin y es capturable por el programa que lo invoc (a
travs de la sentencia RAISE).
Finalmente, la ltima pantalla es la que permite definir el cdigo fuente, el cual se incluye entre las
sentencias FUNCTION y ENDFUNCTION.
El mdulo de funcin debe activarse para poder ser utilizado.
Pgina 60 de 63
Pgina 61 de 63
Notas
Implementable por versin
Las notas pueden o no ser implementables en nuestro sistema, todo depende del nivel de
support package que tenemos.
Para ver eso tenemos que ir a SISTEMA -> STATUS -> VERSION COMPONENTES (click en la
lupa). Ah aparece un listado de todos los que hay en el sistema.
Tomando una nota cualquiera podemos ver que tenemos dos nros de support package:
Uno indica el package en el que viene incluidas las modificaciones de la nota actual. Si el
nuestro es igual o mayor, la nota no es implementable, caso contrario, si.
En la nota, esto se encuentra inmediatamente antes de las instrucciones de correccin.
Links to Support Packages
Software Component
Release
Package Name
________________________________________________________________________
R/3 Standard
470
SAPKH47012
________________________________________________________________________
El otro nro de support package que podemos encontrar es al comienzo de cada instruccin de
correccin e indica hasta que nivel esas correcciones son aplicables:
*&---------------------------------------------------------------------*
*$*$----------------------------------------------------------------$*$*
*$ Instrucc.correccin
0120031469 0000245090
$*
*$ Instr.correc.requeridas 0120061532 0000498981 Nota 0000584049
*$
0120061532 0000545670 Nota 0000615367
$*
*$--------------------------------------------------------------------$*
*$ Validez
:
$*
$*
Pgina 62 de 63
*$ Comp.software
SAP_APPL R/3 Standard
*$ Release 470
Al SAPKH47014
*$*$----------------------------------------------------------------$*$*
*&---------------------------------------------------------------------*
*& Objeto
DYNP SAPLCOMD3100
*& Cabecera obj. FUGR COMD
*&---------------------------------------------------------------------*
$*
$*
Notas requeridas
Es comn que al intentar aplicar una nota, el sistema avise que hay otras notas como
prerrequisito. En este caso hay que bajarlas y aplicarlas antes de aplicar la nuestra.
El sistema se encarga de todo eso. Nuestra preocupacin tiene que ser el revisar las notas y
chequear que no haya que hacer alguna modificacin a mano.
Visualizando la nota podemos ver las notas que requiere que estn aplicadas. Esto lo vemos en
la cabecera de las instrucciones de correccin.
*&---------------------------------------------------------------------*
*$*$----------------------------------------------------------------$*$*
*$ Instrucc.correccin
0120031469 0000245090
$*
*$ Instr.correc.requeridas 0120061532 0000498981 Nota 0000584049
*$
0120061532 0000545670 Nota 0000615367
$*
*$--------------------------------------------------------------------$*
*$ Validez
:
$*
*$ Comp.software
SAP_APPL R/3 Standard
$*
*$ Release 470
Al SAPKH47014
$*
*$*$----------------------------------------------------------------$*$*
*&---------------------------------------------------------------------*
*& Objeto
DYNP SAPLCOMD3100
*& Cabecera obj. FUGR COMD
*&---------------------------------------------------------------------*
$*
Pgina 63 de 63