When dealing with infotypes like 0016 that have a common international structure P0016 and a country-specific one (e.g. for Spain PS0480), you experience shortdump DBIF_RSQL_INVALID_REQUEST or DYNPRO_FIELD_CONVERSION while accessing PA30.
In this case, you must take care when creating your own code at user-exits because otherwise you can get errors like dump DBIF_RSQL_INVALID_REQUEST when creating a new infotype at trx PA30. Also you can get dump DYNPRO_FIELD_CONVERSION instead of DBIF_RSQL_INVALID_REQUEST.
You'll also notice that infotypes fields take the value:
where it's not expected.
For I0016 the correct data definition for Spain would be:
DATA: BEGIN OF i0016.
INCLUDE STRUCTURE P0016.
INCLUDE STRUCTURE PS0480.
DATA: END OF i0016.
Then, for example at ZXPADU02 you would have:
CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
PRELP = INNNN
PNNNN = I0016.
[Here you would put your code]
CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_PRELP
PNNNN = I0016
PRELP = INNNN.