Hi IQBAL,
you can use an implementation of BADI BBP_PROCESS_PO. This replaces (if implemented) the standard smartform call.
Maybe the following code example helps:
<code to find out what Smartform is desired >
* get the function name for this smart form
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = <Smartform found in initial step>
IMPORTING
fm_name = lv_function_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
if sy-subrc ne 0.
cv_smartrc = sy-subrc.
exit.
endif.
*
CALL FUNCTION lv_function_name
EXPORTING
archive_index_tab = ct_archive_index_tab
archive_parameters = is_archive_parameters
control_parameters = ls_control_parameters
mail_appl_obj = is_mail_appl_obj
mail_recipient = is_mail_recipient
mail_sender = is_mail_sender
output_options = is_output_options
user_settings = ip_user_settings
sf_po = is_sf_po
IMPORTING
document_output_info = es_document_output_info
job_output_info = es_job_output_info
job_output_options = es_job_output_options
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
cv_smartrc = sy-subrc.
Regards
Oliver