Mostraremos paso a paso como crear una ampliación de extractor.
- Se amplía el extractor Genérico ZTKNVP_ATTR agregando el campo ZKOKTD (Grupo de ctas.deudor)
- Este extractor obtiene todos los campos de la tabla KNVP. El nuevo campo agregado en la
ampliación será cargado con información del campo KTOKD (Grupo de ctas.deudor) de la tabla
KNA1.
- Para cubrir esta funcionalidad se crea el programa ZBWIN_ZTKNVP_ATTR. Siguiendo la
nomenclatura ZBWIN_ + <nombre extractor>.
- A Traves de la TX CMOD para el proyecto ZBW00001
- Se asigna la ampliación:
- En los Componentes se selecciona con doble click EXIT_SAPLRSAP_001 ya que en este caso son
datos Maestros.
- OJO!!!!! Si no existe ZXRSAU02 y queremos crearla hay que hacer un truco. Apretar
2 veces tecla ENTER sobre el nombre de la exit. Si no, no me deja editar!!
Esto es un BUG de SAP!!!
BI Business Intelligence 1
- extractorampliado4.jpg
- Aquí se ha creado el include ZXRSAU02 (Ojo, varian un par de variables según es para la clase 1 o
para la clase 2 por las variables globales. En este caso I_T_DATA para ZXRSAU02 es C_T_DATA
para ZXRSAU01. Esto se ve aquí en la sección de tablas: extractorampliado5.jpg
Código:
- Codigo de la clase ZXRSAU02 *&---------------------------------------------------------------------* *& Include ZXRSAU02 *&---------------------------------------------------------------------* * DATA: * CONCATENATE * PERFORM TABLES I_T_SELECT I_T_FIELDS I_T_DATA C_T_MESSAGES IF FOUND. - La lógica del include ejecuta todos los reportes que comiencen con el nombre 'ZBWIN_' + <nombre extractor> - *&---------------------------------------------------------------------* *& Include ZXRSAU02 *&---------------------------------------------------------------------* * Variable local para cada include/programa por cada DataSource BI Business Intelligence 2 DATA: L_PROG_NAME LIKE TRDIR-NAME. * ZBWIN_ es el prefijo por defecto para el programa del extractor CONCATENATE 'ZBWIN_' I_DATASOURCE INTO L_PROG_NAME. * Ejecución del programa del extractor si existe PERFORM EXECUTE_USER_EXIT IN PROGRAM (L_PROG_NAME) TABLES I_T_SELECT I_T_FIELDS C_T_DATA C_T_MESSAGES IF FOUND. - Ahora solo nos queda crear el reporte que cargue los datos en e Nuevo campo con la logica. - REPORT ZBWIN_ZTKNVP_ATTR. TYPE-POOLS: SBIWA. *&---------------------------------------------------------------------* *& Form EXECUTE_USER_EXIT *&---------------------------------------------------------------------* * *----------------------------------------------------------------------* * -->P_I_T_SELECT text * -->P_I_T_FIELDS text * -->P_C_T_DATA text * -->P_C_T_MESSAGES text *----------------------------------------------------------------------* FORM EXECUTE_USER_EXIT TABLES I_T_SELECT TYPE SBIWA_T_SELECT I_T_FIELDS TYPE SBIWA_T_FIELDS C_T_DATA STRUCTURE ZOXESD0114 " Datasource structure C_T_MESSAGES STRUCTURE BALMI. TYPES: BEGIN OF ST_KNA1, MANDT TYPE KNA1-MANDT, KUNNR TYPE KNA1-KUNNR, KTOKD TYPE KNA1-KTOKD, END OF ST_KNA1. FIELD-SYMBOLS: <FS_ZTKNVP_ATTR> TYPE ZOXESD0114, <FS_KNA1> TYPE ST_KNA1. DATA: IT_KNA1 TYPE STANDARD TABLE OF ST_KNA1, IT_ZTKNVP_ATTR_AUX TYPE STANDARD TABLE OF ZOXESD0114, L_TABIX TYPE SY-TABIX. IT_ZTKNVP_ATTR_AUX = C_T_DATA[]. SELECT MANDT KUNNR KTOKD FROM KNA1 INTO TABLE IT_KNA1 FOR ALL ENTRIES IN IT_ZTKNVP_ATTR_AUX WHERE KUNNR = IT_ZTKNVP_ATTR_AUX-KUNNR. IF SY-SUBRC IS INITIAL. BI Business Intelligence 3 SORT IT_KNA1 BY KUNNR KTOKD. ENDIF. LOOP AT C_T_DATA ASSIGNING <FS_ZTKNVP_ATTR>. L_TABIX = SY-TABIX. READ TABLE IT_KNA1 ASSIGNING <FS_KNA1> WITH KEY MANDT = <FS_ZTKNVP_ATTR>-MANDT KUNNR = <FS_ZTKNVP_ATTR>-KUNNR BINARY SEARCH. IF SY-SUBRC IS INITIAL. <FS_ZTKNVP_ATTR>-ZKOKTD = <FS_KNA1>-KTOKD. MODIFY C_T_DATA FROM <FS_ZTKNVP_ATTR> INDEX L_TABIX. ENDIF. ENDLOOP. ENDFORM. " EXECUTE_USER_EXIT
- Resultado del extractor en la RSA3: extractorampliado6.jpg
Autor: Luis Lloveras
Linkedin: https://www.linkedin.com/in/luislloveras