Hola a todos!!!
Los molesto con la siguiente consulta en R/3 …
Tengo un programa Z, donde debo mandar datos (una estructura) a un usuario determinado (via mail).
Tengo el programa, tengo los datos … tengo el/los usuarios …
Me falta la parte del mail.
Que función puedo utilizar (en procedural, nada de objetos ¡please!) para mandar mails???
Vi que hay una so_document_send …
Pero quiero saber si hay nuevas, mejores o como se usa ésta en su defecto.
Muchas gracias!
Una posibilidad es la clase CL_BCS:
CONSTANTS:
lc_raw TYPE char03 VALUE 'RAW'.
DATA:
lv_mlrec TYPE so_obj_nam,
lv_sent_to_all TYPE os_boolean,
lv_email TYPE adr6-smtp_addr,
lv_subject TYPE so_obj_des,
lv_text TYPE bcsy_text,
lv_facade TYPE REF TO cl_bcs,
lr_send_request TYPE REF TO cl_send_request_bcs,
lr_bcs_exception TYPE REF TO cx_bcs,
lr_recipient TYPE REF TO if_recipient_bcs,
lr_sender TYPE REF TO cl_sapuser_bcs,
lr_document TYPE REF TO cl_document_bcs,
lv_mail_defecto TYPE tvarv_val,
lv_req_stat TYPE bcs_rqst VALUE 'A', "confirmar todos los status
lv_statmail TYPE bcs_stml VALUE 'E'. "solo para status de error
TRY.
* Create send request
lv_facade = cl_bcs=>create_persistent( ).
lr_send_request = lv_facade->send_request.
* Email FROM...
lr_sender ?= cl_sapuser_bcs=>create( sy-uname ).
* Email TO...
lr_recipient = cl_cam_address_bcs=>create_internet_address( lv_email ).
* Add recipient to send request
CALL METHOD lr_send_request->add_recipient
EXPORTING
i_recipient = lr_recipient
i_express = 'X'.
lr_document = cl_document_bcs=>create_from_text(
i_text = lv_text
i_importance = '5'
i_subject = lv_subject ).
* Establecer documento
CALL METHOD lr_send_request->setu_document( lr_document ).
* Request error status
CALL METHOD lr_send_request->setu_requested_status( lv_req_stat ).
* Mail for which status?
CALL METHOD lr_send_request->setu_status_mail( lv_statmail ).
* Enviar
CALL METHOD lr_send_request->release( i_with_error_screen = 'X' ).
*
IF sy-subrc <> 0.
e_cod_ret = gc_ok.
e_msj = text-i01. " 'Email sent!'.
ENDIF.
* Commit to send email
COMMIT WORK.
* Exception handling
CATCH cx_bcs INTO lr_bcs_exception.
e_cod_ret = gc_ko.
CONCATENATE text-i02 lr_bcs_exception->error_type INTO e_msj SEPARATED BY space.
ENDTRY.
1 me gusta
Hola mira revisa este otro post, quizás te sea de utilidad
Saludos!
1 me gusta
Hola!
Yo he utilizado esta función:
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = LT_MAILSUBJECT
TABLES
OBJECT_CONTENT = LT_MAILTXT
RECEIVERS = LT_MAILRECIPIENTS
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8.
saludos!
1 me gusta
Muchas gracias a todos!!!
¿te ha servido alguna respuesta?
Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.