You could implement BADI BBP_TARGET_OBJTYPE.
This BADI has all the application data available to determine what type of object to create in the backend.
In the CT_ITEM structure you can give the object type you want to generate in field PACK_OBJTYPE (BUS2012 for PO, BUS2105 for PReq).
In this BADI you can also separate on CATALOGID in the item table (empty means free-text).
Regards,
Robin