11.1.1.3 BAdI en búsqueda por número de lote
En este punto se tratará la creación de una ampliación BAdI de pantalla para la pestaña del Cockpit "Búsqueda por número de lote".
Dicha ampliación consistirá en añadir campos de select-option en el dynpro de selección de la pestaña "Búsqueda por número de lote" y que además los valores introducidos en los mismos sean considerados como filtro durante la ejecución.
Paso 1. Creación de la ampliación
A través de la transacción SE18 accedemos al punto de ampliación /EDGE/SII_COCKPIT. Dentro del mismo accedemos a la BAdI /EDGE/BADI_SII_COCKPIT_SEL y creamos una implementación de la misma. Si ya se hubiera implementado otra BAdI del mismo grupo, este paso no sería necesario y se podrían agrupar.
Una vez creada, accederíamos a la opción "Ampliaciones de imagen" para ver el detalle de la imagen y el área de subscreen generadas. La imagen correspondiente a esta ampliación es la número 18. Junto a estos campos, podemos ver otros dos que se pueden completar llamados "Programa" y "Subscreen" que indicaremos como completar en un paso posterior.
Paso 2. Creación del grupo de funciones
A través de la transacción SE80 creamos un nuevo grupo de funciones (o reutilizamos uno que ya hayamos definido para estas ampliaciones) y declaramos un subscreen de selección en el correspondiente include.
En el subscreen realizado para este ejemplo se introducen los campos select-options que se van a considerar en el dynpro y en la selección de datos posterior. En el ejemplo el campo considerado es /EDGE/SII_ERRCOD-ERROR_CODE (Código de error para respuestas AEAT).
A continuación, dentro del grupo de funciones mencionado, se crea una nueva función con el objetivo de recuperar los valores introducidos en el select-option declarado en el subscreen del propio grupo de funciones (en el ejemplo, el valor de S_CODE).
Paso 3. Referenciación del grupo de funciones y creación de métodos en la ampliación
Una vez realizados los pasos anteriores hay que referenciar en la implementación de la BAdI el grupo de funciones y la subscreen creadas. El grupo de funciones siempre tiene que tener la nomenclatura SAPL* a la hora de indicarlo como programa.
En los métodos de la implementación deberemos programar la recuperación de los valores de los select-options que hayamos declarado y también el filtrado usando los valores recuperados. Los métodos a utilizar son los siguientes (solo se utilizan en la pestaña que estamos tratando):
En el primer método recuperamos los valores de los select-options a través de la función previamente desarrollada en el punto 2 (Z_GET_DATA_NUM_LOTE). Se muestra código para el ejemplo propuesto:
En el segundo se efectúa el filtrado de la información a mostrar a partir de los valores completados en los select-options. Se muestra código para el ejemplo propuesto: