BTE sustituir BSEG-SGTXT creado desde MIRO o MIR7
BTE (Business Transaction Event)
Son comparables a una User Exit o a una BADI
Las BTE sobretodo son utilizados en el módulo SAP FI
Las BTE es un módulo de función (implementable) que proporciona una interfaz estándar para SAP.
Caso: Documento contable cuyo documento original es una factura que ha sido creada desde la transacción MIRO.
Objetivo: Para el documento contable sustituir el campo glosa (BSEG-SGTXT) de todas las posiciones por el mismo texto de la primera posición.
Procedimiento: Configuraremos en 5 pasos la BTE.
- Ejecutar la Tx: FIBF para iniciar el proceso de creación de la BTE;
- Encontrar el correcto proceso para actualizar el evento;
- Copiar la función estándar dentro de una nueva función Z o Y;
- Implementar el código fuente para que realice la sustitución a la BSEG-SGTXT;
- Crear un producto para asignar el módulo de función al evento.
Finalmente validaremos tanto para la Tx. MIRO y MIR7
Validación desde MIRO: Ejecutaremos la Tx: MIRO, luego ingresaremos los datos, se generará la factura y el documento contable, donde al visualizar su detalle comprobaremos que se ha sustituido el texto de la glosa en todas las posiciones.
Validación desde MIR7: Ejecutaremos la Tx: MIR7, luego ingresaremos los datos, se generará la factura y el documento preliminar, luego contabilizaremos el documento preliminar, finalmente al visualizar su detalle comprobaremos que se ha sustituido el texto de la glosa en todas las posiciones.
Validación desde MIRO: Ejecutaremos la Tx: MIRO, luego ingresaremos los datos, se generará la factura y el documento contable, donde al visualizar su detalle comprobaremos que se ha sustituido el texto de la glosa en todas las posiciones.
Validación desde MIR7: Ejecutaremos la Tx: MIR7, luego ingresaremos los datos, se generará la factura y el documento preliminar, luego contabilizaremos el documento preliminar, finalmente al visualizar su detalle comprobaremos que se ha sustituido el texto de la glosa en todas las posiciones.
Paso 1:
Ejecutar la Tx: FIBF para iniciar el proceso de creación de la BTE
Paso 2:
Encontrar el correcto proceso para actualizar el evento
Menú Entorno/Sistema info (procesos)
Ejecutamos (F8)
Aquí tenemos que encontrar la correcta interfaz para actualizar el documento, en nuestro caso seleccionaremos el proceso: 00001120 (CONTAB.DOC.: Sustitución de campo cabecera/líneas)
Paso 3:
Copiar la función estándar dentro de una nueva función Z o Y
Luego de haber colocado el curso en el evento: 11020 hacemos clic en: 'Módulo funciones tipo'
Nos envia a la Tx: SE37 mostrando el módulo de función: SAMPLE_PROCESS_00001120
La función standard copiaremos dentro de un nombre de módulo de función Z o Y para implementar el código de sustitución.
En nuestro caso se llamará: Z_SAMPLE_PROCESS_00001120
Paso 4
Implementar el código fuente para que realice la sustitución a la BSEG-SGTXT
Los campos que podemos sustituir son los campos que se encuentran en las estructuras BKPF_SUBST y BSEG_SUBST de manera que si nuestro campo no se encuentra tendríamos que ampliarlo con un append.
Para más detalles de como ampliar la estructura... clic aqui.
En el código lo que hacemos es leer la primera posición de la BSEG la cual ya contiene el texto glosa (BSEG-SGTXT), luego haremos un loop a todas las posiciones de la T_BSEGSUB para actualizar su texto glosa T_BSEGSUB-SGTXT por el mismo contenido de la primera posición BSEG-SGTXT:
Para más detalles de como ampliar la estructura... clic aqui.
En el código lo que hacemos es leer la primera posición de la BSEG la cual ya contiene el texto glosa (BSEG-SGTXT), luego haremos un loop a todas las posiciones de la T_BSEGSUB para actualizar su texto glosa T_BSEGSUB-SGTXT por el mismo contenido de la primera posición BSEG-SGTXT:
Hay que tener presente que cuando se crea un registro preliminar por la transacción MIR7, recién al contabilizar el documento ingresará a: Z_SAMPLE_PROCESS_00001120 y su valor de la variable sy-tcode será igual a MIR4.
La BTE la podemos debuguear poniendo un break en la función creada.
Paso 5:
Crear un producto para asignar el módulo de función al evento.
Tx: FIBF/menú Opciones/Productos/...de un cliente
En nuestro caso actualmente existe 10 productos de cliente:
crearemos un nuevo producto cliente con nombre: ZFIGLOSA
Al Grabar, nos solicitará crear una orden de tipo 'customizing':
Una vez creada la orden customizing veremos en la lista nuestro nuevo producto: ZFIGLOSA
Ahora asignaremos nuestro módulo de función creado: 'Z_SAMPLE_PROCESS_000011200' al evento, veamos:
En nuestro caso actualmente existen 4 procesos:
Crearemos una nueva entrada para asignar: nuestro nuevo producto: ZFIGLOSA, módulo función: Z_SAMPLE_PROCESS_00001120 al proceso 000001120, veamos:
Al Grabar, nos solicitará nuevamente una orden customizing, le asignamos a la misma orden customizing que ya había sido creada anteriormente.
La asignación ha sido realizada correctamente como se muestra en la imagen:
Validación desde la Tx. MIRO
Ingresaremos los datos básicos (pago, detalle y cuenta de mayor)
Grabamos, se genera la factura: 5105604503
Grabamos, se genera la factura: 5105604503
Visualizamos su documento contable: 5100001629
Comprobamos que se ha sustituido el texto de la glosa en todas las posiciones:
Validación desde la Tx. MIR7
Ingresaremos los datos básicos (pago, detalle y cuenta de mayor)
Grabamos, se genera la factura: 5105604513
y el documento preliminar: 5100001633
Al contabilizar el documento preliminar: 5100001633
Tenemos el documento contable: 5100001633
Comprobamos que se ha sustituido el texto de la glosa en todas las posiciones:
Cabe resaltar que en el módulo FI existen otras formas de realizar sustituciones...
Optar por la BTE es una de las alternativas y buenas prácticas que recomendaría hacerlo.
Nos vemos en el siguiente Blog ;)
MAGALEX
Muchas gracias excelente explicación
ResponderEliminarNice
ResponderEliminarGracias me sirvio actualmente.!
ResponderEliminar