En realidad, estos métodos son muy útiles cuando se utilizan BADI's o USER-EXITS en operaciones de infotipo de recursos humanos, ya que todos estos métodos reciben estructuras/tablas genéricas escritas con PRELP, que es el tipo genérico para todos los infotipos.
Al acceder a estos métodos para uno específico, es necesario convertir esta estructura genérica PRELP en una estructura de infotipo específica P0009 (por ejemplo), para poder acceder a los campos específicos de ese infotipo. Es en este momento cuando utilizamos el método PRELP_TO_PNNNN.
Si realizamos algunos cambios en esa estructura, probablemente necesitemos enviar los cambios de vuelta al programa de control, por lo que necesitamos incrustar esta estructura específica en la original, en este escenario utilizamos PNNNN_TO_PRELP.
Aquí tienes un ejemplo con ZXPADU01
case innnn-infty.
when '0002'.
data: l_p0002 type p0002.
call method cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
exporting
prelp = p_innnn
importing
pnnnn = l_p0002.
if l_p0002-natio is initial.
l_p0002-natio = 'ES'.
endif.
if l_p0002-gblnd is initial.
l_p0002-gblnd = 'ES'.
endif.
call method cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
exporting
pnnnn = l_p0002
importing
prelp = p_innnn.
endcase.