Académique Documents
Professionnel Documents
Culture Documents
16 BATCH INPUTS..............................................xviii
16.1 Introduccin.............................................................................xviii
16.2 Batch input ................................................................................xix
16.2.1 Generar Juego de datos..................................................................xix
16.2.2 Abrir el juego de datos...................................................................xxiii
16.2.3 Llenar la tabla BDCDATA...............................................................xxiii
16.2.4 Llamar a la transaccin..................................................................xxv
16.2.5 Cerrar juego de datos...................................................................xxvi
16.2.6 Call transaction............................................................................ xxvi
18 TECNICAS DE REPORTING..............................xxxii
18.1 Introduccin al reporting interactivo.............................................xxxii
18.1.1. ALVs Orientados a Objetos..........................................................xxxv
18.1.2. Listados Interactivos.......................................................................xl
19 PROGRAMACION DE DIALOGO...........................xlii
19.1 Introduccion............................................................................xlii
19.2 Logica de proceso..................................................................xliii
19.2.1
Screen painter........................................................................xlvi
Creacion de un STATUS..........................................................xlix
19.4.2
Barra de men............................................................................ l
19.4.3
Barra de pulsadores...................................................................li
19.4.4
Teclas de funcin.......................................................................lii
19.4.5
Codigos de Funcion.....................................................................liv
19.4.1.1
Tipos de funcin...................................................................liv
SAP R/3 consiste en una serie de reas de aplicacin las cuales estudiaremos
ms adelante.
Los niveles o componentes del SAP R/3 y la funcin que realizan estn
representados dentro de la elipse.
S
A
P
APLICACIONES R/3
NIVEL FUNCIONAL
SISTEMA BASICO
FI
- Gestin financiera
CO - Controlling o Contabilidad de costes
EC
- Controlling Corporativo
IM
- Gestin de inversiones
TR -Tesorera)
Logstica
LO - Logstica general
SD - Ventas y Distribucion
MM - Gestin de Materiales
PP - Planeamiento de la Produccion
PM - Mantenimiento
QM - Control de calidad
PS - Sistema de control de proyectos
WM - Gestin de almacenes
Recursos Humanos
PA - Administracion de Personal
PD - Desarrollo y planificacin personal
IS - Solucin vertical para industrias
2. Sistema bsico, es el encargado de la interfaz entre el sistema operativo y
las aplicaciones R/3 incluyendo componentes tales como el entorno de
La presentacin y el
Integracin de Aplicaciones
Todas las aplicaciones R/3 estn integradas y relacionadas con capacidad de
hacerlo en tiempo real, es decir, la informacin se actualiza constantemente.
Qu significa esto? Cualquier cambio que se realice por ejemplo en una base
de datos se reflejar inmediatamente en todos los componentes de SAP:
screen painter, menu painter, diccionario de datos, etc.
Entorno de desarrollo
Para
La
herramienta
/ Se utiliza para
componente
Programacin
Diccionario ABAP
Definir,
mantener
almacenar el diccionario
de datos del sistema R/3.
Contiene todos los objetos
del diccionario, tales como
tablas,
relaciones,
documentacin, etc.
Editor ABAP
Crear
programas
mantener
ABAP
los
para
Screen Painter
interfaces
Navegacin
Object Browser
jerrquico
para
relaciones
objetos
de
desarrollo.
Data Browser
Debugging
Trace SQL
Seguir
rastrear
los
accesos y llamadas a la
base de datos desde los
programas y transacciones
del sistema
Anlisis Tiempo Ejecucin
Analizar el rendimiento de
las llamadas al sistema.
Debugger en lnea
Detener un programa y
analizar el resultado de la
ejecucin
de
cada
mensajes
que
se
producen
durante
la
ejecucin
de
los
programas.
Organizacin
desarrollo
Controlar
seguir
el
en
equipo
gestionar
y
las
desarrollo
entre
Se define como una unidad independiente dentro del sistema R/3, desde el
punto de vista fiscal, legal y organizativo. Por ejemplo un mandante se puede
decir que representa a una empresa dentro de una corporacin. Tcnicamente
se puede decir que un mandante se comporta dentro de SAP como una base
de datos lgica independiente, es decir, los datos de una tabla en un mandante
no pueden ser modificados ni visualizados desde otro mandante.
mandante
determinadas tarea.
tiene
especificadas
autorizaciones
para
realizar
Modularizacin
Una unidad de modularizacin es una parte de un programa encapsulada con
una funcionalidad determinada. La modularizacin hace ms fcil mantener
los programas
Por modularizacin dentro de los programas ABAP, entendemos el hecho de
facilitar su lectura y mejorar su estructura. Modularizar programas facilita el
mantenimiento y la actualizacin de los mismos a comparacin de los que no
estn debidamente modularizados. A este nivel, modularizacin es sinnimo de
estructuracin.
Principio de Modularizacin
No modularizado
PROGRAM
..
Block de Sentencias
..
Modularizado
PROGRAM
..
CALL UNIDAD DE MODULARIZACION
..
CALL UNIDAD DE MODULARIZACION
..
CALL UNIDAD DE MODULARIZACION
..
Block de Sentencias
..
CALL UNIDAD DE MODULARIZACION
Block de Sentencias
Block de Sentencias
..
2) MODULARIZACION G LOBAL
Definir mdulos de funcin. stos son almacenados dentro de la biblioteca
de funciones, en donde son asignados a un grupo de funcin.
El sistema R/3 proporciona diversos mdulos de funcin predefinidos, los
cuales pueden ser llamados desde cualquier programa ABAP.
Adems estos mdulos de funcin pueden ser creados por el propio
programador.
A diferencia de las subrutinas, los mdulos de funcin cuentan con una
interface, siendo capaz de esta forma de estandarizar el paso de
parmetros.
16 BATCH INPUTS
16.1 Introduccin
Cuando se instala una aplicacin en productivo es necesario dar de alta toda la
informacin indispensable para que la empresa pueda funcionar (proceso de
migracin de datos o conversin).
Por ejemplo, antes de poder generar facturas reales ser necesario introducir
todos los clientes activos y todos los productos que se encuentran a la venta.
Para realizar la carga de productos que estn a la venta se debera ejecutar
manualmente la transaccin Alta de materiales tantas veces como productos
sean precisos y la misma operacin mediante Alta de clientes para todos los
clientes. En el caso de que la empresa tenga muchos productos y muchos
clientes, la carga inicial ser muy costosa.
Generalmente todos estos datos maestros (clientes, materiales, proveedores,...
) ya se encuentran almacenados en el antiguo sistema informtico. Por lo tanto
lo ideal ser disponer de un mecanismo que permitiese trasladar los datos de
un sistema a otro de forma eficaz.
A la hora de la migracin de datos de un sistema externo a SAP, existen dos
posibilidades:
1
En cambio, mediante la tcnica de los Batch Input de SAP se realizan todas las
verificaciones automticamente, con un coste en diseo y desarrollo mnimos.
En este captulo se explica cmo utilizar la tcnica de los Batch Input.
Estos tres pasos suelen estar almacenados en FORMS para que su uso sea
mas sencillo.
Transaccin. SHDB.
No siempre los juegos de datos son para ser utilizados desde los programas,
pueden ser lanzados directamente. Para ello acceder a la transaccin SM35.
Aparecera una lista con todos los juegos de datos creados en el sistema.
Para lanzar el proceso de batch input hay que marcar el juego de datos y
pulsar en ejecutar.
Una vez ejecutado el proceso podemos ver el resultado y analizar los errores
en la misma transaccion SM35 mediante el log de errores .
Una sesin de Batch Input puede encontrarse en uno de los siguientes
estados:
= SY-MANDT
Group
= p_juego
User
= SY-UNAME
Keep
= X
EXCEPTIONS
ENDFORM.
Ejemplo:
Transaccin: FSSI
Programa: SAPMF02H
Dynpro : 0102
Ejemplo:
IF p_dynbegin = X.
i_bdcdata-program = SAPMF02H.
i_bdcdata-dynpro - DYNPRO = 0102.
i_bdcdata-dynbegin = X.
ELSE.
i_bdcdata-fnam
= RF02H-SAKNR
i_bdcdata-fval
= VAR_CTA.
ENDIF.
APPEND i_bdcdata
Ejemplo:
CLEAR i_bdcdata.
i_bdcdata-fnam
= BDC_OKCODE.
i_bdcdata-fval
= /13.
F13= Grabar
APPEND i_bdcdata.
Ejemplo:
CLEAR i_bdcdata..
i_bdcdata-fnam
i_bdcdata-fval
= BDC_CURSOR.
= RF02H-BUKRS
APPEND i_bdcdata.
[USING itab] -> Tabla interna para datos de otras pantallas en formato BI
[OPTIONS FROM opt]
[MODE mode]
La opcin MODE sirve para indicar que el call transaction se realicen visible o
en invisible. Si se indica el modo A ser visible y si se indica el modo N se
ejecutara en invisible y si es una E solo se mostraran los errores.
17 PROGRAMAS DE CARGA
DIRECTA
El manejo de ficheros en SAP es distinto para ficheros que se encuentran en el
PC que para ficheros que se encuentran en el servidor.
Filename:
Filetype:
Data_tab:
indicndole
los
siguientes
Filename:
Filetype:
Data_tab:
.
Ejemplo: Lectura de un fichero
DATA: BEGIN OF REC,
LIFNR LIKE LFA1-LIFNR,
BAHNS LIKE LFA1-BAHNS,
END OF REC.
OPEN DATASET /usr/test.
DO
READ DATASET /usr/test INTO REC.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
WRITE: / REC-LIFNR, REC-BAHNS.
ENDDO
CLOSE DATASET /usr/test.
Notas:
1. Se puede leer de hasta 4 ficheros simultaneamente.
2. Si SY-SUBRC = 0
Fichero ledo correctamente.
3. SY-SUBRC = 4
Fin de fichero encontrado.
18 TECNICAS DE REPORTING
18.1 Introduccin al reporting interactivo.
En el Reporting Interactivo se aprovecha la tecnologa SAP para ofrecer
informes que van detallando la informacin bajo la interaccin del usuario, es
decir, se realizan listados generales que se visualizan por pantalla y mediante
teclas de funcin o seleccionando teclas de pantalla, se desarrolla aquella
informacin que va siendo solicitada por el usuario.
Un ejemplo de listado interactivo podra ser una lista de clientes, que permita
visualizar sus datos de direccin, datos bancarios, partidas... etc. en pantallas
diferentes, que van apareciendo a medida que vaya siendo seleccionado un
cliente y/o se solicita una funcin.
1.
2.
Hay tres tipos de Alvs en funcin de su presentacin y para cada tipo de alv
utilizaremos una clase predefinida en sap:
-
Lista Simple.
-> cl_salv_table
Lista Jerarquica secuencial. -> cl_salv_hierseq_table
Lista forma de arbol.
-> cl_salv_tree
de
columnas,
aadir
columnas,
totalizaciones,
extraer
la
Para que una lista pueda mostrarse por el ALV GRID control necesitamos
definir unos componentes bsicos:
DATOS: los datos estarn almacenados en una tabla interna esta tabla
la pasaremos como parmetro de entrada al ALV GRID.
La tabla interna debe de ser plana.
Paso 1. Nos creamos un report con una dynpro por ejemplo 100.
Paso 2. en el Layout de la dynpro dibujamos un contendor.
CONTAINER1.
Paso 3. Populamos tabla interna con los datos a mostrar por el ALV
y llamo a la dynpro donde mostrare los datos .
18 REPORTING INTERACTIVO
go_container IS INITIAL.
CREATE
OBJECT go_container
EXPORTING
container_name
= 'CONTAINER1'
EXCEPTIONS
cntl_error
= 1
cntl_system_error
= 2
create_error
= 3
lifetime_error
= 4
lifetime_dynpro_dynpro_link = 5
OTHERS
ENDIF.
OBJECT go_alvgrid
EXPORTING
= 6.
iparent
go_container
EXCEPTIONS
error_cntl_create = 1
OTHERS
error_cntl_init
= 2
error_cntl_link
= 3
error_dp_create
= 4
= 5.
ls_fieldcat.
ls_fieldcat-fieldname
= 'MANDT'.
ls_fieldcat-no_out = 'X'.
APPEND
ls_fieldcat TO lt_fieldcat.
clear
ls_fieldcat.
ls_fieldcat-fieldname
= 'CURRENCY'.
ls_fieldcat-col_pos = 2.
ls_fieldcat-scrtext_l = 'moneda'.
APPEND
ls_fieldcat TO lt_fieldcat.
ls_layout-smalltitle = 'X'.
ls_layout-no_rowmark = ' '.
ls_layout-cwidth_opt = 'X'.
ls_layout-zebra
ls_layout-sel_mode
= 'X'.
= 'D'.
AT PFn
1)
LA
Report ZLISTADO_CSC
19 PROGRAMACION DE DIALOGO
19.1 Introduccion
Las Dynpro (tambin conocidas como una pantalla) estn formadas por la
pantalla y la lgica de proceso de la pantalla.
Las dynpros normales se crean utilizando la herramienta Screen Painter,
Tenemos tres tipos distintas de Dynpros :
Normal
Subscreen
Screen 2
19.2.1
19.3Creacion de DYNPRO .
Podemos crear pantallas desde la transaccin SE51, donde indicamos el
programa y el numero
19.3.1
Screen painter.
Es la herramienta de sap que permite dibujar pantallas mas
amigables que las pantallas de seleccin
Nos permite disear la apariencia de la pantalla, diseando el layout
nos permite crear cada elemento de la pantalla y definir sus atributos
y definir sus eventos.
Podemos acceder a ella pinchando sobre el layout de la DYNPRO.
Screen painter
Atributos de un elemento
Podemos dibujar en la pantalla cualquier elemento de la lista haciendo Click
sobre el y situndolo sobre la zona que queremos dibujar y darle el tamao
desado.
Hay que indicar el campo en la parte superior y pulsar el boton traer del
diccionara o traer del programa, sera necesario que el programa este activado.
19.4Menu Painter
El Men Painter es una herramienta de SAP para personalizar los menus de
las transacciones y los botones en cada pantalla. Se accede desde la
transaccin SE41 o bien haciendo docle click el el module PBO STATUS de
una dynpro.
Nota: Al conjunto de botones y menus se le denomina STATUS.
19.4.1
Creacion de un STATUS
El primer paso para crear un status es indicar el nombre que debe existir
previamente, y el numero de pantalla y pulsar al botn crear.
19.4.2
Barra de men
En la columna cdigo hay que indicar un cdigo para la entrada y el texto que
tiene que aparecer en pantalla. Por ejemplo BUSC Buscar.
El siguiente paso es asignar una tecla de funcin al botn haciendo doble click
sobre el cdigo.
Hay codigos que suele ser comunes en el resto de transacciones SAp como
son F8 para ejecutar, F2 o F5 para crear, F6 para modificar y F7 para visualizar.
Es conveniente utilizarlos para las mismas acciones, si el programa creado las
contempla.
19.4.3
Barra de pulsadores.
19.4.4
Teclas de funcin.
* Declaraciones en el TOP
DATA: gv_okcode
TYPE sy-ucomm,
PAI
MODULE
user_command INPUT.
gv_save_okcode.
CLEAR
gv_save_okcode = gv_okcode.
gv_okcode.
CLEAR
CASE
gv_save_okcode.
*
...
ENDCASE.
ENDMODULE.
19.4.5
Codigos de Funcion
Todos los cdigos de funcin que se pulse y que tengan como resultado alguna
accin en el programa ( por ejemplo: BUSCA) se indicara en el campo
de la ventana de propiedades de campo.
Ejemplo:
* Esto estara metido dentro del module status_0100 output
del PBO
ty_excluir.
codigo type sy-ucomm.
TIPO
LONG
DESCRIPCION
Name
132
Group1
Nombre grupo 1
Group 2
Nombre grupo 2
Group 3
Nombre grupo 3
Group 4
Nombre grupo 4
Required
Campo obligatorio
Input
Campo de entrada
Output
Campo de salida
intensified
Campo resaltado
iInvisible
Campo oculto
19.6.1
Ejemplos:
CHAIN.
FIELD: gv_campo MODULE validar_campo.
" llama a validar en cuanto se cambia la entrada el valor de entra
de datos
El nombre
Una vez que esta definido el marco hay que definir las pantallas que contiene
cada pestaa, es decir a que subscreens van a hacer referencia. Para ello con
el botn
Por otra parte hay que crear cada una de las pantallas que se mostraran en las
pestaas.Estas pantallas ser de tipo subscreen, lo cual hay que indicarlo en la
pestaa de atributos, donde se indica el tipo de dynpro, marcar el radio button
subscreen.
En el user command de la pantalla con el marco, hay que indicar que pestaa
se va a activar en cada momento usando el campo ACTIVETAB del tabstrip.
Ejemplo: declaramos en function del codigo de la pestaa cual esta activa. PAI
MODULE user_command INPUT.
CASE gv_okcode.
WHEN 'CLIENT'.
pestanas-activetab = 'CLIENT'.
WHEN 'MAT'.
pestanas-activetab = 'MAT'.
ENDCASE.
ENDMODULE.
Hay que tener en cuenta que el status solamente se podr indicar en la pantalla
padre, la que tiene las llamadas a la subscreens.
Al crear la transaccin para este programa, se debe crear para la pantalla que
tiene el marco de las pestaas.
19.6.3
Table controls
La table control son tablas que sirven para mostrar en una dynpro la
informacin recogida por una tabla interna del programa.
y escoger
19.6.4
Secuencias de Pantallas.
Para llamar a una pantalla desde un programa, se pueden usar las siguiente
sentencias:
SET SCREEN <n dynpro>
CALL SCREEN <n dynpro>
CALL SCREEN <n dynpro> STARTING AT <x1><y1> ENDING AT
<x2><y2>.
LEAVE SCREEN <n dynpro>.
Para abandoner una pantalla se usa la sentencia LEAVE SCREEN. Si lo que se
quiere es abandonar el programa se indicara LEAVE PROGRAM.