Hi,
1. not clearly got, what you mean.
If you mean standard SRM headers -
use a transaction /SAPSRM/POWL_CUST
If dynamic or want to overwrite customizing - use BADI /SAPSRM/BD_POWL_CHNG_FIELDCAT
2 and 3, methods GET_FIELD_CATALOG and GET_ACTIONS are called by every action.
With E_FIELDCAT_CHANGED you can say for example that you'll show different results depending on selection criteria. With E_ACTIONS_CHANGED you can for example enable or disable buttons depending on selected row in result table.
4. with this call you get a description of internal table. Can get its fields, their descriptions, types etc.
Regards
Konstantin