martes, 16 de abril de 2013

DYNPRO


ALV Objetos - Procesar PAI dynpro al ejecutar botón ALV
Al ejecutar algún botón estándard o Z de nuestro ALV puede ser que nos interese que proceso PAI del actual DYNPRO. Para esto es necesario informar el campo I_APPL_EVENTS = 'X' en la creación del objeto ALV.

 
CREATE OBJECT obj_alv_ges_adm
      EXPORTING
        i_parent      = obj_container_ges_adm
        i_appl_events = 'X'.

En caso contrario el programa ejecuta la función de ALV y NO continua con el PAI.
Dynpro - Ejemplos TextEdit

SAPTEXTEDIT_DEMO_1
SAPTEXTEDIT_DEMO_1_OLD
SAPTEXTEDIT_DEMO_2_OLD
SAPTEXTEDIT_DEMO_3
SAPTEXTEDIT_DEMO_3_OLD
SAPTEXTEDIT_DEMO_DRAGDROP
SAPTEXTEDIT_TEST_1
SAPTEXTEDIT_TEST_1_OLD
SAPTEXTEDIT_TEST_1_OLDF01
SAPTEXTEDIT_TEST_1_OLDI01
SAPTEXTEDIT_TEST_1_OLDO01
Dynpro - Tabstrip
Para trabajar con Tabstrip se debe realizar las siguientes paso (ejemplo DEMO_DYNPRO_TABSTRIP_SERVER):


1) Crear dynpro de control 0100 y los otros dynpros para subscreen 0110, 0120 y 0130.

2) Dentro del dynpro de control crear:
     - Control de Fichas (MYTABSTRIP). También definir variable globlal: CONTROLS mytabstrip TYPE TABSTRIP.
     - Tantos pulsadores como pestañas, a cada pulsador se le asigna un nombre (PUSH1) y un código (PUSH1).
     - Un Área Subscreen con un nombre (SUB).

3) En el PBO se hace la llamada para mostrar el tabstrip CALL SUBSCREEN SUB INCLUDING SY-REPID NUMBER. Antes de llamar al dynpro de control se informa que pestaña está activa:
mytabstrip-activetab = 'PUSH2'.
number = '0120'.

4) En el PAI se hace llamada CALL SUBSCREEN SUB y después dentro de Module USER_COMMAND capturar evento e informar la pestaña y el subscreen:
mytabstrip-activetab = save_ok.
CASE save_ok.
  WHEN 'PUSH1'.
    number = '0110'.
  WHEN 'PUSH2'.
    number = '0120'.
 
WHEN 'PUSH3'.
    number = '0130'.
ENDCASE.
Dynpro - Subscreens
Las subscreens son útiles para mostrar diferente información dependiendo criterios. Para trabajar con varios con subscreens en dynpros se realizan los siguientes pasos (ejemplo DEMO_DYNPRO_SUBSCREENS):

1) Crear dynpro Inicial 0100 (tipo normal).

2) Añadir dos subscreens al dynpro 0100 (Área subscreen con id 'AREA1' y subscreen con 'AREA2') y varios botones que permitirán mostrar un dynpro u otro. A cada botón se le asignará un código para posteriomente capturarlo en el Module USER_COMMAND (punto 6).


3) Crear varios dynpros (tipo subscreen): 0110, 0120, 0130, 0140.

4) En el PBO realizar la llamada por cada subscreen :
CALL SUBSCREEN AREA1 INCLUDING nombre_programa nombre_subscreen.
CALL SUBSCREEN AREA2 INCLUDING nombre_programa nombre_subscreen.
Tanto en el nombre_programa como nombre_subscreen se pueden utilizar variable :
data: call_prog   TYPE sycprog.
data: call_subscr TYPE sydynnr.
Normalmente siempre es el mismo programa por lo que se utiliza sy-repid mientras que el subscreen cambia.

5) En el PAI realizar la llamada por cada subscreen:
CALL SUBSCREEN AREA1.
CALL SUBSCREEN AREA2.

6) En el PAI realizar llamada al un MODULE USER_COMMAND. En este module se informa la variable nombre_subscreen que será que posteriormente se cargará en el PBO.
Creación textos SAP
Utilizar transacción SE75. Primero crear objeto y luego crear id_texto. Se genera orden de customizing. Posteriormente READ_TEXT y SAVE_TEXT.
DYNPRO - ocultar botones
Al trabajar con dynpro si queremos ocultar botones:

LOOP AT SCREEN
IF screen-name EQ 'Nombre_campo_ocultar'.
screen-output = 1.
screen-input = 0.
screen-invisible = 1.
modify screen.
ENDIF.
ENDLOOP.

Esta parte de código de pone en el PBO si el programa es de tipo PROGRAM o en el evento AT SELECTION-SCREEN OUTPUT si el programa es de tipo REPORT.
DYNPRO - pantallas
Para volver a la pantalla inicial:
- LEAVE TO SCREEN 0.
- SET SCREEN 0. "Puntero
LEAVE SCREEN.

Para terminar programa :
- LEAVE PROGRAM.

CALL SCREEN -> va guardando ciclo. Se llega a un tope.
DYNPRO - Textos
La primera idea que nos viene a la cabeza cuando queremos guardar texto es crear un campo de char255 en una tabla Z. Pero no se mantendría el formato (negrita, cursiva, salta de línea). Para resolver este problema se pueden utilizar los textos de sap.

Los diferentes id de textos se guardan en la tabla TTXID.

1) Configurar Texto nuevo Tx. SE75.

Si vamos a la sm30 hay un botón donde para buscar pasos en el Customizing que trabajen con esta tabla. Debemos buscar una descripción parecida a 'Definir ID de texto'. Aquí crearemos nuestros objetos y clases nuevas. Previamente hay que buscar un tipo de objeto al que queremos añadir los nuevos ID's.

2) Inicializar variables
IF NOT cc_org IS INITIAL.
CALL METHOD cc_org->free.
ENDIF.

IF NOT txtedit_nota IS INITIAL.
CALL METHOD txtedit_nota->free.
ENDIF.

3) Recuperar Texto.

Programa Control =>
DATA: cc_nota TYPE REF TO cl_gui_custom_container.
DATA: txtedit_nota TYPE REF TO cl_gui_textedit.
************************************************************************************
PBO
************************************************************************************
* Crear CUSTOM-CONTROL
IF cc_nota IS INITIAL.

CREATE OBJECT cc_nota
EXPORTING
container_name = 'CC_TEXTO' "Nombre del custom control del Dynpro
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
others = 6.

ENDIF.

* Asignarle edición de texto
IF txtedit_nota IS INITIAL.

CREATE OBJECT txtedit_nota
EXPORTING
wordwrap_mode = 2
wordwrap_position = 72
parent = cc_nota
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
gui_type_not_supported = 5
others = 6.

* Quitar botones
CALL METHOD txtedit_nota->set_toolbar_mode.
CALL METHOD txtedit_nota->set_statusbar_mode.
PERFORM llenar_texto.
ENDIF.

* Visualizar/Modificar
IF action EQ 'DISP'.
CALL METHOD txtedit_nota->set_readonly_mode
EXPORTING
readonly_mode = '1'.
ELSE.
CALL METHOD txtedit_nota->set_readonly_mode
EXPORTING
readonly_mode = '0'.
ENDIF.

****************************************************************************
Rutina=> PERFORM llenar_texto.
****************************************************************************
DATA: w_header TYPE thead,
t_tline TYPE TABLE OF tline,
w_tline TYPE tline,
t_texto TYPE TABLE OF char255.

w_header-tdobject = 'FORMMAT'.
w_header-tdname = zwf_mat_alta_dg-formnumber.
w_header-tdspras = sy-langu.

CALL FUNCTION 'READ_TEXT'
EXPORTING
id = w_header-tdid "Tipo de texto
language = w_header-tdspras "Idioma
name = w_header-tdname "Id del texto
object = w_header-tdobject "Nombre del objeto
TABLES
lines = t_tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.

*Copiar texto con formato a sólo texto
LOOP AT t_tline INTO w_tline.
APPEND w_tline-tdline TO t_texto.
ENDLOOP.

* Guardar texto en objeto
CALL METHOD txtedit_nota->set_text_as_r3table
EXPORTING
table = t_texto
EXCEPTIONS
error_dp = 1
error_dp_create = 2
OTHERS = 3.

3) Guardar texto.
DATA: w_header TYPE thead,
t_tline TYPE TABLE OF tline,
w_tline TYPE tline,
t_texto TYPE TABLE OF char255,
w_texto TYPE char255.

CLEAR w_header.
w_header-tdobject = 'FORMMAT'.
w_header-tdname = zwf_mat_alta_dg-formnumber.
w_header-tdspras = sy-langu.
w_header-tdid = 'DG'. " texto datos generales

* Eliminar texto anterior
CALL FUNCTION 'DELETE_TEXT'
EXPORTING
id = w_header-tdid
language = w_header-tdspras
name = w_header-tdname
object = w_header-tdobject
EXCEPTIONS
not_found = 1
OTHERS = 2.

* Recuperar texto de la pantalla
CALL METHOD txtedit_nota->get_text_as_r3table
IMPORTING
table = t_texto.

LOOP AT t_texto INTO w_texto.
w_tline-tdformat = '*'.
w_tline-tdline = w_texto.
APPEND w_tline TO t_tline .
ENDLOOP.

* Guardar texto nuevo
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
header = w_header
TABLES
lines = t_tline
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.

CALL FUNCTION 'COMMIT_TEXT'.

* Para deshabilitar el scroll horitzontal al realizar el CREATE OBJECT informar
        wordwrap_mode              = cl_gui_textedit=>wordwrap_off
Añadir botones en el Status de un Report
En un principio pensaba que para añadir botones a la barra se tenia que trabajar con DYNPROS y currartelo, pero acabo de darme cuenta que hay otra manera más rápida.
Creamos un elemento en nuestro SCREEN : SELECTION-SCREEN FUNCTION KEY 1.
Le debemos de asignar un numero de 1 al 5.

En evento de INITIALIZATION le ponemos un texto o un icono. MOVE 'My text' TO sscrfields-functxt_01.

Después captamos los captamos con el evento at selection-screen (los valores de sy-ucomm pueden ir de FC01 al FC05.

Comentario: debemos crear un work area para TABLES sscrfields (tienes los atributos).
Añadir parametros de selección en un MODUL-POOL
Cuando se trabaja con un programa del tipo report es muy fácil crearte una pantalla de selección con los comandos PARAMETERS y SELECT-OPTION. ¿Pero que pasa cuando trabajamos con DYNPROS?

Para ello tambien utilizamos comandos PARAMETERS y SELECT-OPTION. y lo asignamos a un nombre.
SELECTION-SCREEN BEGIN OF SCREEN nombre AS WINDOW TITLE text-460.

Después dentro del DYNPRO lo llamamos.
CALL SELECTION-SCREEN nombre STARTING AT 20 5.
Añadir botones estandard a nuestro STATUS
A la hora de crear un STATUS, nos puede interesar reutilizar algunos botones del estandard además de los nuestros propios, para ello deberemos seguir la siguiente ruta una vez que estemos en la TX del menu painter se41.

Detalles->Ajustar Modelo-> List Viewer ABAP
DYNPRO con AT EXIT-COMMAND
En la lógica de los DYNPROS, muchas veces nos puede interesar terminar la ejecución del programa al realizar una acción (como por ejemplo presionar un botón). Imaginad que tenemos un dynpro donde es obligatorio rellenar un campo. En el PAI tenemos una module que hace la comprobación. Probad a presionar el botón de cancelar de vuestro dynpro sin rellenar el campo obligatorio ¿Que pasa? Que a pesar que queremos salir del programa el PAI se ejecuta y se muestra un mensaje diciendo que es obligatorio informar el campo, pero lo que nos interesa a nosotros es salir del programa y no nos importar el valor de ningún campo. Para hacer que al apretar el botón cancele de todas formas se debe hacer dos pasos:

- Crear un module dentro del PAI que salga del programa (dentro del module hacemos LEAVE PROGRAM). En la llamada al module debemos añadir el siguiente texto AT EXIT-COMMAND.

-Asignar al botón un tipo de función 'Comando Exit'. Para esto vamos al status del dynpro y escogemos el tipo E en las características del botón.


Listbox
Para crear un listbox debemos insertar un campo del tipo desplegable 'Listbox' en nuestra DYNPRO. En el PBO ( o evento AT SELECTION-SCREEN OUTPUT), debemos utilizar el módulo de función VRM_SET_VALUES con la tabla que contiene los valores (ID y Texto) que se deberá haber rellenado antes. Tienes que declaro pool de tipos TYPE-POOLS: vrm. Además el campo PARAMETERS debe ser listbox y visible con una longitud ( as LISTBOX VISIBLE LENGTH 6 ).

También tenemos la función VRM_GET_VALUES para recuperar los valores o sino accediendo directamente al parámetro p_funint.


PARAMETERS: p_funint TYPE crmt_partner_fct AS LISTBOX VISIBLE LENGTH 30.
DATA: it_vrm TYPE vrm_values.
DATA: wa_vrm TYPE LINE OF vrm_values.
DATA: gv_name TYPE vrm_id VALUE 'P_FUNINT'.
*************************************************************************
AT SELECTION-SCREEN OUTPUT.
**************************************************************************
SELECT partner_fct AS key description AS text
FROM crmc_partner_ft
INTO CORRESPONDING FIELDS OF TABLE it_vrm
WHERE spras EQ sy-langu.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = gv_name
values = it_vrm.
Ocultar elementos dynpro según RADIOBUTTON
Al estar trabajando con dynpros nos puede interesar mostrar o ocultar algunos campos. En este caso queremos mostrar/esconder los campo dependiendo del valor del un RADIOBUTTON. Para ello primero asignamos todos los elementos que queramos mostrar/esconder a un grupo que después modificaremos recorriendo la tabla con los elemenos LOOP AT SCREEN.

Para que actualizar la pantalla sólo cambiando de radibutton (sin tener que ejecutar ENTER), debemos indicarselo de la siguiente manera:
PARAMETERS: p_rad RADIOBUTTON GROUP grupo_bloque USER-COMMAND grupo_enter.

NOTA: Si todos los elementos de un mismo bloque estan inactivos, no se muestra su recuadro.

EJEMPLOS CÓDIGO ABAP


Sap proporciona, a través de varias transacciones, un autentico repositorio de ejemplos de código, que nos puede sacar de algún apuro en muchas ocasiones, además de “darnos ideas” respecto a opciones que tenemos disponibles con el lenguaje, posibilidades de programacion, opciones de ergonomia o simplemento ejemplos totalmente funcionales que nos pueden dar una nocion de como resolver un determinado requerimiento o problema a la hora de programar en Abap. Las mas interesantes son:
  • Transacción ABAPDOCU: completa documentacion del lenguaje de programación Abap, que incluye ejemplos de código de los elementos más importantes, en forma de arbol estructurado.
  • Transaccion BIBS: ejemplo de configuración de superficies. Es una guia de estilo enfocada a la configuración de los elementos de entrada/salida del lenguaje, de cara a la interaccion con el usuario en las pantallas de selección (principalmente) y los dynpros.
  • Transacción DWDM: centro de presentaciones Enjoy. Galeria de reports con ejemplos orientados a la programación orientada a objetos, dentro del estilo Enjoy principalmente.
  •  Transacción SE83 Reuse Library: transacción muy interesante que combina, agrupado por areas, el acceso a la documentación y la ayuda Online de Sap, con ejemplos de código, dandonos acceso directo a los reports de ejemplo que Sap tiene disponibles en el repositorio.
  • Transacción GUIT: suite de ejemplos que nos muestra un programa de forma secuencial, principalmente orientados a las programación con listas.
  • Transacción GRAL: galeria de ejemplos para trabajar con gráficos en Abap (presentacion de resultados con graficos de barras, de tarta, etc).
  • Transacción SE30 Tip and Tricks: interesante utilidad para analizar tiempos de ejecución de los reports y analizar los consejos de programación que nos ofrece Sap para mejorar el rendimientos de los programas.
Otra utilidad que os puede sacar de algun apuro en la busqueda de ejemplos es el report RPR_ABAP_SOURCE_SCAN. Nos permite buscar sentencias en el codigo fuente de los programas Abap. Por ejemplo, buscamos un ejemplo de uso de determinada sentencia. Igualmente, con la transacción S_ALR_87101287  podemos buscar en un determinado programa si acceder a el con las transacciones de modificación (SE38, SE51, etc).

Finalmente, os dejo como contenido relacionado el interesante tutorial publicado en Saptechnical.com donde nos habla del nuevo editor Abap y las opciones de configuracion de este:

LINKS IMPORTANTES


ABAP
1.      www.guidancetech.com
Algunos ejemplos ABAP. Contiene un listado de programas ABAP desde hace ya varios años. Es interesante desde el punto de vista de Programación y de alguna utilidad interesante.



2.      www.sap-basis-abap.com
Una mezcla de diferentes cosas. Contiene parte de programación ABAP aunque también consejos sobre la parametrización del entorno. Secciones de los diferentes módulos de SAP. No está mal pero es muy estática.



3.      www.dalestech.com
Descarga de tres programas ABAP muy recomendables. Descargas masivas de código, Trace de Trnasportes y Revisor de Código. Son tres programas muy bien hechos e imprescindibles. Muy útiles. Sólo son tres programas pero son muy buenos.



4.      www.abap.es
Sin duda una página de ABAP muy recomendable. En inglés hay muchas pero esta además de estar en castellano está bastante bien. Sin duda recomendable.



5.      Aprendiendo SAP
Un pequeño blog relacionado con SAP y más concretamente con la parte ABAP. Contiene algunos links útiles.



6.      Wiki de SDN (Debugger)
Un wiki muy interesante que nos compara los dos debuggers actuales de SAP además de proporcinar algunos trucos útiles. Es básico saber como funciona el debugger para poder corregir errores de programación.



7.      ABAP/SAP Tips and Tricks
Interesante Blog que contiene pequeños trucos que todos los que hemos pasado por el ABAP a veces hemos tenido que utilizar. Muy interesante y recomendable.

Genera código para creación de ALV

Blog muy interesante de SAP

Ayuda abap, en ingles

           Joaquin Casas Baca Castex Consultor Senior SAP BW/BO (3.x-7.x/XI 3.1)-(2001)
15.  http://www.todoabap.com.ar/introduccion.html

SAP

Se actualiza a menudo. De aspecto poco amigable pero con información útil. Contiene enlaces a información de SAP. Como su nombre sugiere tiene muchos enlaces al Marketplace de SAP.
Claramente corporativa. Es una empresa privada aunque contiene un apartado interesante con algunos reports abap que pueden ser de utilidad.


Sitio en construcción en Febrero de 2009. Con información sobre las áreas de SAP aunque los links a los documentos estan en construcción.

www.sap-img.com
Interesante site con links a información muy útil y variada. Además permite descargar documentos e información interesante.


182www.alvrobot.com.ar
Web que en principio, ya que no la he podido probar aún, genera el código para un report ALV en función de los parámetros definidos.


searchsap.techtarget.com
La verdad... de aspecto poco amigable ya que tiene demasiada información y es fácil perderse aunque buscando se encuantra a veces muy buena información y novedades.


www.sapfans.com
Bueno, uno de los mejores foros de SAP que he encontrado en los últimos años. Han cambiado y mejorado el aspecto de la web. Para dudas técnicas es un sitio estupendo.


www.sapsecurityonline.com
Sitio orientado al conocimiento de la seguridad de entornos SAP, tanto BW como R/3. Muy interesante para conocer una área que queda un poco oscura para el usuario no técnico.


sap4.com
Una de las primeras páginas de SAP en castellano que encontré en su día. Ha cambiado su aspecto. Muy buena y muy bueno su blog. Sin lugar a dudas muy recomendable.


www.basisconsultant.com
De aspecto parecido a un periódico contine mucha información interesante pero hay que buscar y rebuscar un poco. Creado con Joomla como la misma página que estás viendo.


www.sapdb.info
Una página muy recomendable. Realmente contine mucha información y está bastante bien estructurada gracias al menú de la izquierda. Página muy recomendable.




www.erpgenie.com
Sitio muy recomendable con muchos enlaces útiles y Tips & Tricks de ABAP y de SAP. Muy interesante.


seguridadsap.blogspot.com
Página en castellano muy interesante con datos fundamentales para conocer cómo funciona el nuevo concepto de autorizaciones de SAP. Muy recomendable.



www.saptips.com
Sitio que se va actualizando aunque no contiene realmente información muy útil a nivel técnico. Contien artículos y algunos consejos. Ni buena ni mala.


saptechnical.com
Interesante. Contiene muchos detalles técnicos que está bien conocer. Muchos son ya conocidos pero si empiezas en SAP te puede servir para aplicar algunos trucos interesantes.



sapfunctional.com
Orientación teóricamente funcional sobre aspectos de SAP. Aquí la frontera es algo difusa pero al menos no se mezclan temas puros técnicos de ABAP. Parametrizaciones y aspectos generales. Interesante.





Blog sobre Temas SAP
Interesante Link sobre diferentes aspectos de SAP. Es un blog que contiene información bastante interesante. Recomendable.




Seguridadsap
Traslado del antiguo blog "http://seguridadsap.blogspot.com/". Ahora los nuevos artículos van apareciendo en esta nueva web que mantiene la misma filosofía que el blog anterior. Recomendable. Tiene buenos artículos relacionados con la seguridad en SAP y otros más generales.


Michael Management
Página con acceso a documentación principalmente de SAP R/3 aunque hay que registrarse para poder acceder. La mayoría es de pago. Permite el acceso a una máquina SAP pagando una cuota al mes.


SAPGUI 720 Completo
Este enlace nos lleva directo a la zona de descargas de esta universidad donde podemos encontrar el SAPGUI 710 y ahora ya el 720 con los diferentes addon de BW, BI, CRM, etc... Muy útil.







TRANSACCIONES IMPORTANTES


Transacciones muy utilizadas en SAP Desarrollo

SE38
Editor ABAP
SE80
Examinador de objetos
SM35
BatchInput
SE37
Funciones
BAPI
Explorador Bapis
SE93
Transacciones
ST05
Traza de programas
SE18
Consultar BADI (definición)
SE19
Modificar BADI (implementacion)
ST22
Ver dumps
SE24
Class Builder
SM36
Crear JOBs
SM37
Traza de JOBs
SM62
Creacion eventos
SAAB
Gestion de break-points y asserts
SLG0
Crear objetos de LOG
SLG1
Consultar LOGs
SLG2
Borrar LOGs
WE60
Consulta de IDOCs
DWDM
Ejemplos ABAP
SWO3
Explorador de Business Objects
Tabla
s/Estructuras
SE11
Diccionario ABAP
SE16
Visualizar tabla
SE16N
Visualizar tabla
SM30
Vistas de actualización / Mantenimiento
BS22
Status de órdenes
SNRO
Secuencias de numeros
SE10
Transport Organizer
ST22
Errores en tiempo de ejecución abap
STMS
Transport Management System
SU01
Actualización Usuario


 Tablas/Estructuras


SE71
SapScript
NACE
Gestion de mensajes
SE73
Gestion de fuentes
SMART
STYLES Definir el estilo del formulario
SMART
FORMS Crear el formulario
SE63
Traduccion de SmartForms
SE78
Cargar/Gestionar Imágenes (bitmap / para sapscript o smartform)
SO10
Textos estandares - Cargar/Gestionar Imágenes (tiff / solo para sapscript)
SPAD
Gestion de SPOOL(definiciones de impresoras, tamaños de papel...)
 Smartforms

SM04
Eliminar sesiones abiertas
SM12
Liberar bloqueos
SE01
Transporte
STMS
Transporte
SPAD
Impresoras
SP01
Spool de impresiones en general de cualquier usuario
SP02
Spool de impresiones propias o del usuario utilizado
SE03
Buscar objetos en orden de transporte y tareas
SM59
Cambiar de sistema (internamente)
SM36
Crear Jobs
SM62
Crear eventos
SM37
Borrar Jobs
ST05
Trazas
SU01
Configuracion de usuarios
AL11
Navegador sist. ficheros
SXDA
Direct Input
SM69
Ejecución de comandos del S.O.
CACS_
FILE_COPY Subir/Bajar ficheros del servidor
LSMW
Legacy System Migration Workbench(cargas masivas de datos)
BDLR
Biblioteca de programas para cargas de datos
SCC1
Transportar ordenes de un mandante a otro Querys
SQ01
Editor Query

PP: Producción

CO01
Crear orden de producción
CO02
Editar orden de producción
CO03
Visualizar orden de producción
CO11N
Notificar orden de producción
KO88
Liquidar orden de producción
CO13
Anular notificación
 SD: Ventas

VA01
Crear pedido
VA02
Modificar pedido
VA03
Visualizar pedido
VL02N
Modificar entrega
VL03N
Visualizar entrega
VF01
Crear factura
VF02
Modificar factura
VF03
Consultar factura
VA22
Ofertas
 MM: Gestión de materiales

ME23N
Consultar pedidos de compras
ME22N
Modificar pedidos de compras
ME21N
Crear pedidos de compras
MM02
Editar material
MB51
Buscar docs de material
MB03
Consultar doc de material
MB1C
Movimientos de mercancía (poner stock...)
MMSC
Dar de alta un material en un almacén
 FI: finanzas

FB01
Crear asiento contable
FB02
Modificar asiento contable
FB03
Consultar asiento contable
FIBF
Acceso a BTEs
 IDoc/EDI

WE60
Mensajes IDoc
WE21
Puertas IDoc
WE20
Interlocutores EDI
WE02
Listado IDoc con status
WE16
Cargar fichero de texto IDoc
WE19
Reprocesado de IDoc (visible/debugging)
BD87
Reprocesado de IDoc
 Salir
/ex Sale de una transacción sin preguntar