jueves, febrero 08, 2007

Modificación de valores de tablas del standard

Muchas veces nos interesa modificar algún registro que tenemos guardado en una tabla standard de SAP. Hay diferentes caminos:

1) Ver el registro en modo visualización. Después activamos el Debugguer y modificamos el valor de la varible 'CODE' con 'EDIT'.

2) Hacer una consulta desde un Report mediante OPEN SQL desde la SE38.

3) Puede darse el caso que el propio editor se38 no permita realizar modificaciones, es este caso podemos utilizar NATIVE SQL.

EXEC_SQL.
consulta/modificación
ENDEXEC.

Para acceder a las tablas de SAP utilizando NATIVE SQL ponemos 'SAPR3.Nombre_tabla'.

Conexión de SAP con el exterior

SAP tiene actualmente el Módulo XI para conectar su software con el exterior. Ya puede ser otro servidor SAP como otra aplicación NO-SAP. Anteriormente había el Business Conector, que había sido creado por otra empresa diferente de SAP. Era gratuito. Pero con el tiempo SAP decidió comercializar su producto XI y dejar el resto.

Modificaciones del standard

Alguna veces es inevitable la necesidad de modificar el standard. En estos casos haremos:

1) Si intentamos modificar un elemento standard (report, include, transacción, etc..) se abre una ventana donde el sistema nos pide un código para poder continuar con la modificación.

2) Debemos conectarnos a la página web service.sap.com con un login y un password (cliente).

3) Navegamos por la pestaña 'Keys & Request' y después por la pestaña 'SSCR Keys register objects'.

4) Al registrar el objeto en la web nos retornará una CLAVE que deberemos poner en la ventana.

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.