Nuevamente acudo ha ustedes con otro caso de Enhacement. En el caso Anterior hice una ampliación para validar el área de nomina en el objeto P_PCR.
En este caso estoy trabajando con la transacción S_AHR_61016362 que es un ALV dinámico que contiene información del personal en HR. En este caso uno el parámetro de ejecución es el Numero de Personal.
Ahora bien, estoy tratando de capturar el Área de Nomina del personal para que antes de generar el ALV, despliegue un mensaje de error en caso de no poseer los permisos correspondientes.
El tema esta en que se realiza un GET PERNR dentro del STAR-OF-SELECTION, pero al llegar al END-OF-SELECTION la información de la estructura se borra porque va a otro programa donde hace una especie de limpieza de buffer.
El hecho es que necesito la data de la PERNR para validar el área de nomina del empleado por el ROL y como observaran no puedo porque la generación del Output esta después del end-of-selection.
Espero haber sido claro en mi explicación.
Espero sus comentarios para ver si se les ocurre algo.
Al parecer están utilizando bases de datos lógicas. Lo que te recomiendo es que debajo del get, cuando la estructura PERNR tenga datos, almacenes los mismos en una tabla interna u variable que puedas utilizar más adelante donde quieras poner la validación y en vez de hacer referencia a la estructura PERNR, de la misma manera utilices la estructura que creaste.
Si ya había pensado en eso pero el gran detalle es que dentro del start-of-selection no me deja hacer ningún tipo de ampliación por lo que descarte esta opción.
Adicionalmente de manera de prueba volví a realizar el Get dentro del enhancement, para posteriormente hacer los que comentas de almacenar la data en una tabla para luego hacer el loop, pero me genera el siguiente error.
Tendrás alguna idea del mismo???, porque el enhacement esta correctamente creado.
Mi pana el error que comentas es porque despues de un end-of, hasta donde yo se no puede utilizar el get…revisa las estructuras locales y globales estandar a ver si por ahi en alguna la tiene que es lo mas seguro, revisa el campo tecnico de la Tx a ver si esa estructura la tiene en el programa !! el get siempre lo vas a perder porque con el star-of seleccion es que se va ejecutando, lo que haces la BDL es de una forma optima consultar la data de cada empleado y al estar dentro de un star es como si se volviera un ciclo !!
Revisa en las estructuras globales y locales del estandar que seguramente en alguna la tendras
Efectivamente tenias razón , existe una tabla interna que almacena la infomacion, solo que no con la misma estructura de la pernr. tuve que hacer un recorrido dentro de un campo de esa tabla para ubicar el área de nomina.