cancel
Showing results for 
Search instead for 
Did you mean: 

smartforms for SAP process orders.

deepu_p2
Active Participant
0 Kudos

Hi,

We want to use smart forms instead of SAP scripts for process order for various reasons.

COnfig does not allow using smart forms.

So we called the smart form in the print program of the sap script.

But this process is not using the configuration ( OPK8 or CB85). Its always picking the default printer from the user profile.

Did any one do this before? if yes what is the process followed.

we are using the function CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

to print the smart form.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello,

SAPScript use the structure ITCPO to know the printer to use and all the configuration.

You have to transform ITCPO to SMARTFORMS parameters to have the same behavior.

It will be something like that in your abap code :

  • SAPScript to Smartforms

PERFORM convert_itcpo_2_ssf

USING print_opts

print_co-screen

sy-langu

CHANGING ls_control_param

ls_composer_param

  • Display Smartforms

CALL FUNCTION lf_fm_name

EXPORTING

control_parameters = ls_control_param

output_options = ls_composer_param

user_settings = space

...

...

...

FORM convert_itcpo_2_ssf

USING ps_itcpo TYPE itcpo

p_dialogue TYPE c

p_spras TYPE sy-langu

CHANGING ps_control_parameters TYPE ssfctrlop

ps_output_options TYPE ssfcompop.

CLEAR : ps_control_parameters, ps_output_options.

ps_control_parameters-device = 'PRINTER'.

IF p_dialogue IS INITIAL.

ps_control_parameters-no_dialog = 'X'.

ELSE.

ps_control_parameters-no_dialog = ' '.

ENDIF.

ps_control_parameters-preview = ps_itcpo-tdpreview.

ps_control_parameters-getotf = ps_itcpo-tdgetotf.

ps_control_parameters-langu = p_spras.

ps_output_options-tdteleland = ps_itcpo-tdteleland.

ps_output_options-tdtelenum = ps_itcpo-tdtelenum.

ps_output_options-tdfaxuser = ps_itcpo-tdfaxuser.

ps_output_options-tdschedule = ps_itcpo-tdschedule.

ps_output_options-tdsenddate = ps_itcpo-tdsenddate.

ps_output_options-tdsendtime = ps_itcpo-tdsendtime.

ps_output_options-bcs_reqst = ps_itcpo-bcs_reqst.

ps_output_options-bcs_status = ps_itcpo-bcs_status.

ps_output_options-tdarmod = ps_itcpo-tdarmod.

ps_output_options-tdnoarmch = ps_itcpo-tdnoarmch.

ps_output_options-tdtitle = ps_itcpo-tdtitle.

ps_output_options-tdnoprev = ps_itcpo-tdnoprev.

ps_output_options-tdnoprint = ps_itcpo-tdnoprint.

ps_output_options-tdnoarch = ''.

ps_output_options-tdiexit = ps_itcpo-tdiexit.

ps_output_options-tddataset = ps_itcpo-tddataset.

IF ps_output_options-tddataset IS INITIAL.

ps_output_options-tddataset = 'SMARTF'.

ENDIF.

ps_output_options-tdsuffix1 = ps_itcpo-tdsuffix1.

ps_output_options-tdsuffix2 = ps_itcpo-tdsuffix2.

ps_output_options-tdcovtitle = ps_itcpo-tdcovtitle.

ps_output_options-tddest = ps_itcpo-tddest.

ps_output_options-tdprinter = ps_itcpo-tdprinter.

ps_output_options-rqposname = ps_itcpo-rqposname.

ps_output_options-tdnewid = ps_itcpo-tdnewid.

ps_output_options-tdimmed = ps_itcpo-tdimmed.

ps_output_options-tddelete = ps_itcpo-tddelete.

ps_output_options-tdlifetime = ps_itcpo-tdlifetime.

ps_output_options-tdautority = ps_itcpo-tdautority.

ps_output_options-tdfinal = ps_itcpo-tdfinal.

ps_output_options-tdcover = ps_itcpo-tdcover.

ps_output_options-tdreceiver = ps_itcpo-tdreceiver.

ps_output_options-tddivision = ps_itcpo-tddivision.

ps_output_options-tdcopies = ps_itcpo-tdcopies.

ps_output_options-tdpageslct = ps_itcpo-tdpageslct.

ENDFORM.

Best Regards

Joë

raymond_giuseppi
Active Contributor
0 Kudos

Or use FMs

- CO_DR_PR_OPT_FILL : PRINT_CO to ITCPO

- SSF_MAP_ITCPO_TO_SFOPTIONS : ITCPO to SmartForms

Regards,

Raymond

raymond_giuseppi
Active Contributor
0 Kudos

The Sap Script driver will receive the print parameters so pass those to the SmartForms using the output_options parameter of the generated FM.

 *
  call function 'SSF_FUNCTION_MODULE_NAME'
       exporting
            formname           = formname
            variant            = ' '
            direct_call        = ' '
       importing
            fm_name            = fm_name
       exceptions
            no_form            = 1
            no_function_module = 2
            others             = 3.
* If not already done (check include LCODRINC)
import prlst_tmp      from memory id 'PPS'. " map this structure to output_options.
*
  call function fm_name
       exporting
            control_parameters = ssfctrlop
            output_options      = output_options 

Regards,

Raymond