Solución
Hola de nuevo,
Ya lo he solucionado, lo único que tenia que poner era un commit work al final de la llama a la función del modulo del smartform. Así que solo es necesario el siguiente código (no hace falta rellenar parametro MAIL_APPL_OBJ).
Akí va el código:
*---------------Buscar foto de material,
SELECT *
FROM stxbitmaps
INTO stxbitmaps
UP TO 1 ROWS
WHERE TDOBJECT = 'GRAPHICS'
AND TDNAME = i_dats_form-matnr
AND TDID = 'BMAP'.
ENDSELECT.
IF sy-subrc = 0.
* parametro que informa si la foto será en b/n o en color
l_tipo_img = stxbitmaps-tdbtype.
ELSE.
l_tipo_img = ''.
ENDIF.
---------------------*
R_PARAM-NO_DIALOG = 'X'. "No popup
R_INPUT-TDNOPREV = 'X'. "No preview
D_DEVICE = 'MAIL'.
R_INPUT-tdnewid = 'X'. "nueva orden spool
R_INPUT-tdimmed = 'X'. "salida inmediata
* MONTAR ESTRUCTURA DEL MAIL
R_INPUT-tddataset = text-111.
R_INPUT-tdsuffix1 = text-112.
R_INPUT-tdsuffix2 = sy-uname.
* Titulo email
CONCATENATE text-113
i_dats_form-ematn
i_dats_form-name1
i_dats_form-bukrs
INTO R_INPUT-tdtitle
SEPARATED BY space.
R_PARAM-DEVICE = D_DEVICE.
CALL FUNCTION mod_func
EXPORTING
V_LOGO = i_dats_form-logo "LOGO
V_MODO = l_tipo_img "B/N O COLOR
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = R_PARAM
* MAIL_APPL_OBJ = ls_MAIL_APPL_OBJ
MAIL_RECIPIENT = d_lvs_recipient
MAIL_SENDER = d_lvs_sender
OUTPUT_OPTIONS = R_INPUT
* USER_SETTINGS = 'X'
IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO = JOB_OUTPUT_OPTIONS = R_OUTPUT
TABLES
I_PZA_COMPRA = i_dats_form
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
COMMIT WORK.
* Si se produce un error, mostrarlo.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
|