Mostrando entradas con la etiqueta maintenance. Mostrar todas las entradas
Mostrando entradas con la etiqueta maintenance. Mostrar todas las entradas

jueves, 29 de septiembre de 2016

Pasos para hacer una búsqueda global en Webdynpro

Introducción

SAP ABAP da opción a una búsqueda global en la mayoría de sus componentes. Pero cuando llegamos a ABAP Webdynpro no hay dicha opción de búsqueda global. Entonces cuando se requiere buscar una parte de código o una variable específica el desarrollador tiene que ir manualmente por cada componente o método de la vista o ventana y buscalos. Buscar por cada uno de los componentes/vista/ventana es una tarea tediosa y un proceso que consume mucho tiempo.

Tutorial

Los pasos a seguir se detallan a continuación:
  • Ve a la transacción SE24 e introduce la clase CL_WDY_WB_NAMING_SERVICE y ejecuta. Esta es una clase estándar de SAP que se usa para para buscar la clase asociada al componente webdynpro. Ahora en la ventana del Class Builder ejecuta TEST(F8).
  • En la ventana test de la clase selecciona el botón correspondiente al método GET_CLASSNAME_FOR_COMPONENT.
     
  • En la siguiente ventana introduce el nombre de la webdynpro de la que deseas hacer la búsqueda global. La webdynpro FPM_REQUEST_DIALOG se usa como ejemplo y ejecuta.
  • El resultado de este método buscará la clase creada por SAP para el componente webdynpro (el nombre de la clase para este componente se ha generado como /1BCWDY/L2U4HZFJ4MQYUW5YG4OB).
  • Ahora usa esta clase en la SE24 y visualízala. Esta clase es un repositorio de todo el código añadido en la webdynpro. Pulsa el botón e búsqueda global.
  • Supongamos que tenemos que buscar dónde se usa el dato de la interfaz "lr_window" en la webdynpro. En la ventana de búsqueda introducimos el valor "lr_window" y ejecutamos.
  • Se muestran todas las coincidencias encontradas de "lr_window".
  • Doble click en cualquiera de las líneas donde se marca "lr_window" y nos llevará al componente/vista/método de la webydnpro donde la clave de búsqueda se usa en el código.

Restringir autorización a la transacción FB01 por clase de documento


Para restringir la transacción FB01 por clase de documento (el campo señalado en la captura de arriba). Primero tenemos que crear un grupo de autorizaciones.

- Transacción SE54: crear / modificar


- Añadimos una nueva entrada con nuestro nuevo grupo de autorización:

- Transacción OBA7: seleccionamos haciendo doble click la clase de documento que queremos meter en el grupo de autorización

- Indicamos en grupo de autorizaciones el nuevo grupo:

- Transacción PFCG: dentro del rol donde se encuentra el objeto F_BKPF_BLA, añadimos nuestro grupo de autorizaciones


Recuerda que si una clase de documento no tiene grupo de autorizaciones esta podrá verla cualquier usuario independientemente de lo que haya en el objeto de autorización.







miércoles, 24 de agosto de 2016

Cómo implementar eventos en la actualización de una tabla

Implementar eventos en la actualización de una tabla es muy útil mientras creamos nuevas entradas en una tabla. Se pueden ejecutar muchas validaciones y checks mientras creamos o guardamos entradas en una tabla.

Contenido de la tabla:

Consideremos un escenario, donde una tabla de customizing se tiene que actualizar con la fecha y hora de creación / modificación.

Paso 1: Crear una tabla ZTAB con los siguientes campos:


Campo Tipo Descripción
MANDT MANDT Cliente
PAIS LAND1 Clave del país
CREATEDATE CREATEDATE Fecha creación / modificación
CREATETIME CREATETIME Hora creación / modificación

Paso 2: Generar imagen de actualización para la tabla:

Utilidades> Generador actualiz. tab.

Grupo de autorización: &NC&
Grupo de funciones: ZTAB (o cualquiera disponible)
Tipo de actualización: 2 niveles
Nº Imagen actualiz : pantalla general 8005 
                                  pantalla simple 8006

Crear.

Paso 3: Crear evento en la actualización:

Entorno> Modificación> Eventos> Entradas nuevas.
Lista de eventos disponibles:


Selecciona 05 para el evento al "Al crear una nueva entrada".
Este evento saltará al crear una nueva entrada en la SM30 o usando TCODE.
Nombre del FORM: AT_NEWENTRY
Doble click en el editor.

FORM at_newentry.
    ztab-pais = ‘India’.
    ztab-createdate = sy-datum.
    ztab-createtime = sy-uzeit.
ENDFORM.

Crear otro evento: 02 "Tras grabar lo datos en la base de datos".

FORM after_save.
  ztab-mandt = extract+0(3).
  ztab-ZCOUNTRY = extract+3(3)..
  ztab-ZCREATEDATE = sy-datum.
  ztab-ZCREATETIME = sy-uzeit.

  MODIFY ztab.
ENDFORM. 

Paso 4: Crear código de transacción

Ir a la tx. SE93
Código de transacción: ZTAB
Texto: Evento actualización de tabla test
Transacción: SM30, saltar primera screen
Valores por defecto:
VIEWNAME: ZTAB
UPDATE: X

Después de esto cuando ejecutes la transacción ZTAB, y crees una nueva entrada, actualizará la fecha y la hora del sistema en la tabla ZTAB.
Por otra parte si alguna de las entradas se modifican, se actualizará con las nuevas entradas.

SDN Contribution