I am not sure if this meets your requirement, But if you want a common work variable which can be used to pass data to other variables of different data types, then you can use field symbols.
data : int typei,
char(10) typec,
packtype p DECIMALS2.
FIELD-SYMBOLS: <fs1>.
ASSIGN int to<fs1>.
<fs1> = 12.
UNASSIGN <fs1>.
ASSIGN char to<fs1>.
<fs1> = 'abcd'.
UNASSIGN <fs1>.
ASSIGNpackto<fs1>.
<fs1> = '12.36'.
UNASSIGN <fs1>.
Write :/ int , char, pack.
Here the field symbol took the datatype of the variable it was assigned to.
The integer value was passed to the integer field, character value and packed decimal were all moved to the respective variable through the common variable <Fs1> which can hold data of any data type.