In order to add Print Preview functionality to your output program the following modifications are required in addition to those described in the SAP document output page.
1) Clear global variables.
Clear gt_rec_emails, gt_vars and gs_vars.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: |
FORM initialize_data. CLEAR: gt_vedpa, gt_vbtyp_fix_values, gt_item_cancellation_dates, gt_komv, gs_interface, gs_komk, gs_nast, gv_screen_display, gv_price_print_mode, gv_language, gv_scenario, gv_dummy, <gv_returncode>, *Floe gt_rec_emails, gt_vars, gs_vars. ENDFORM. " initialize_data |
2) Add check on print preview parameter
For example, this could be done as follows:
1: 2: 3: 4: 5: 6: |
* Check for print preview IF gv_screen_display = 'X'. PERFORM preview_data. ELSE. PERFORM print_data. ENDIF. |
3) Call Floe using the preview parameter, and then call the Floe E-mail viewer function
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: |
FORM preview_data. DATA: ls_outputparams TYPE sfpoutputparams, ls_docparams TYPE sfpdocparams, lv_device TYPE output_device. DATA: lt_mess TYPE bapiret2_t, ls_mess TYPE bapiret2. DATA: ev_ebody TYPE string, et_rec_emails TYPE /floe/rec_email_t, et_attachments TYPE /floe/att_t, ev_esubject_long TYPE /floe/esubject_long. * Get output parameters PERFORM get_output_params CHANGING ls_outputparams ls_docparams lv_device. CHECK <gv_returncode> IS INITIAL. * Fill recipient gs_rec_email-email = gs_nast-email_addr. gs_rec_email-type = '1'. APPEND gs_rec_email TO gt_rec_emails. * Call Floe interface. CLEAR ev_ebody. * CALL FUNCTION '/FLOE/EMAIL_OUT' EXPORTING im_etype = tnapr-fonam im_elang = gv_language im_document = <gs_vbdka>-vbeln im_rec_emails = gt_rec_emails im_variables = gt_vars im_preview = 'X' IMPORTING ex_subrc = <gv_returncode> ex_ebody = ev_ebody ex_mess = lt_mess ex_rec_emails = et_rec_emails ex_attachments = et_attachments ex_esubject_long = ev_esubject_long. * Drop out if API has thrown an error IF <gv_returncode> NE 0. LOOP AT lt_mess INTO ls_mess. CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = ls_mess-id msg_nr = ls_mess-number msg_ty = ls_mess-type msg_v1 = ls_mess-message_v1 msg_v2 = ls_mess-message_v2 msg_v3 = ls_mess-message_v3 msg_v4 = ls_mess-message_v4 EXCEPTIONS OTHERS = 0. ENDLOOP. RETURN. ENDIF. * CALL FUNCTION '/FLOE/EMAIL_VIEWER' EXPORTING im_preview = 'X' * IM_ETYPE = * IM_EID = im_esubject = 'FLOE Preview' im_ebody = ev_ebody im_rec_emails = et_rec_emails im_attachments = et_attachments IMPORTING ex_subrc = <gv_returncode>. ENDFORM. " preview_data |