PDA

Ver la Versión Completa : Funcion SO_NEW_DOCUMENT_ATT_SEND_API1


sponsor
26/03/14, 13:11:04
Buenas, estoy anexando un excel para enviar como adjunto en un email con esta funcion.

El problema que tengo es que no se como hacer que el contenido del excel no se muestre en el cuerpo del email.

Alguien sabe como hacerlo?

Gracias!

SidV
26/03/14, 13:34:51
Hola, leíste esto?
http://scn.sap.com/thread/1294600

Otro:
http://scn.sap.com/thread/1263306

Si los leíste y no solucionaron el problema... disculpá.
Sigo investigando.

Saludos

sponsor
26/03/14, 14:02:20
Hola, leíste esto?
http://scn.sap.com/thread/1294600

Otro:
http://scn.sap.com/thread/1263306

Si los leíste y no solucionaron el problema... disculpá.
Sigo investigando.

Saludos


El segundo link no lo habia visto.

Pongo el codigo de mi rutina a ver si os ayuda.

DATA: ls_document_data TYPE sodocchgi1,
lt_receivers TYPE STANDARD TABLE OF somlreci1,
lt_objtxt TYPE STANDARD TABLE OF solisti1,
lt_objpack TYPE STANDARD TABLE OF sopcklsti1,
ls_receivers LIKE LINE OF lt_receivers,
ls_objtxt LIKE LINE OF lt_objtxt,
ls_objpack LIKE LINE OF lt_objpack,

lt_objhead TYPE TABLE OF solisti1 WITH HEADER LINE.

DATA: lv_mail TYPE so_recname, "Direccion de correo
lv_receiver TYPE fieldname VALUE 'RECEIVER',
lv_descr TYPE zzecdescrip.

DATA: lv_lines TYPE i.

ls_objtxt-line = 'Listado de cálculo diferencias ServiHabitat-Criteria'.
APPEND ls_objtxt TO lt_objtxt.
DESCRIBE TABLE lt_objtxt LINES lv_lines.

" Destinatarios del correo
ls_receivers-express = 'X'. " Mensaje urgente
ls_receivers-rec_type = 'U'. "
* No queremos que llegue en CC
* ls_receivers-copy = 'X'.

*-->> U2Y50042 12.03.2014
*-- Se modifica para obtener las direcciones de correo de la tabla ZHARDCODES
*-- La direccion se escribe en el campo descripcion que es de 60 de longitud.

SELECT descr INTO lv_descr FROM zhardcodes
WHERE programa = 'ZA010090B'
AND param = lv_receiver.
lv_mail = lv_descr.

IF sy-subrc = 0.
TRANSLATE lv_mail TO LOWER CASE.
ELSE.
lv_mail = 'arivas@bussap.es'.
ENDIF.
* ls_receivers-receiver = 'dillera@bussap.es'.
ls_receivers-receiver = lv_mail.
APPEND ls_receivers TO lt_receivers.

ENDSELECT.

*-->> U2Y50042 12.03.2014
* Asunto EMAIL
CLEAR ls_objtxt.
READ TABLE lt_objtxt INTO ls_objtxt INDEX lv_lines.
ls_document_data-doc_size = ( lv_lines - 1 ) * 255 + strlen( ls_objtxt ).
ls_document_data-obj_descr = 'Listado cálculo diferencias ServiHabitat-Criteria'.
ls_document_data-priority = '1'.
ls_document_data-obj_prio = '1'.
*
ls_objpack-transf_bin = ' '.
ls_objpack-head_start = 1.
ls_objpack-head_num = 0.
ls_objpack-body_start = 1.
ls_objpack-body_num = lv_lines * 255.
ls_objpack-doc_type = 'TXT'.
ls_objpack-obj_name = 'Cuadre_SVH_Criteria.xlsx'.
ls_objpack-obj_descr = 'Diferencias SVH-Criteria'. " Nombre fichero
APPEND ls_objpack TO lt_objpack.

* Documento adjunto
* CLEAR ls_objpack.
DESCRIBE TABLE it_excel LINES ls_objpack-body_num.
ls_objpack-transf_bin = ''.
ls_objpack-head_start = 1.
ls_objpack-head_num = 1.
ls_objpack-body_start = 1.
ls_objpack-doc_size = ls_objpack-body_num * 255.
ls_objpack-doc_type = 'XLS'.
APPEND ls_objpack TO lt_objpack.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = ls_document_data
put_in_outbox = 'X'
commit_work = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
packing_list = lt_objpack
object_header = lt_objhead
contents_bin = it_excel
contents_txt = lt_objtxt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = lt_receivers
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.

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


ENDFORM. " ENVIAR_CORREO

sponsor
26/03/14, 14:19:18
Hola, leíste esto?
http://scn.sap.com/thread/1294600

Otro:
http://scn.sap.com/thread/1263306

Si los leíste y no solucionaron el problema... disculpá.
Sigo investigando.

Saludos

El problema que tengo no es que el cuerpo del email me sale como un adjunto.

Mi problema es que en el cuerpo del email, me está pintando la linea que he definido y además los datos del excel de mi adjunto.

sponsor
26/03/14, 15:56:44
He podido solucionar el primer problema.

Ahora necesito cambiar el remitente del email, sabéis como se hace?

SidV
26/03/14, 19:43:18
No sentís que te faltó algo?
Explica cómo solucionaste el problema... así le ayudas a otra persona q tiene tu misma duda :)

sponsor
27/03/14, 07:17:52
No sentís que te faltó algo?
Explica cómo solucionaste el problema... así le ayudas a otra persona q tiene tu misma duda :)

He modificado esta linea:

ls_objpack-body_num = lv_lines * 255.

por esta

ls_objpack-body_num = lv_lines.

Donde lv_lines es el número de lineas que quiero mostrar en el cuerpo.

SidV
27/03/14, 13:42:19
Gracias.

Respecto a tu 2da consulta, acá dicen que con esta función no se puede.
Tenes que usar otra función adicional.

Saludos