Ver Mensaje Individual
  #2  
Viejo 17/06/10, 14:47:49
Avatar de leir1612
leir1612 leir1612 is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Localización: Argentina
Mensajes: 16
para minerva0112

hola minerva0112 te mando un ejemplo para enviar por mail recuperando el numero de spool ,

TYPES: begin of ty_adr6,
mail type adr6-smtp_addr,
end of ty_adr6.

DATA: t_adr6 type standard table of ty_adr6,
wa_adr6 type ty_adr6.

DATA: e_datos_doc LIKE sodocchgi1.
DATA: i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_destinatario LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
i_cont_bin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_texto LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_anexo LIKE solisti1 OCCURS 0 WITH HEADER LINE.

*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
DATA: v_lineas LIKE sy-tabix,
v_lineas_tot LIKE sy-tabix,
v_len LIKE sy-index,
v_long LIKE sy-index,
v_queda LIKE sy-index,
v_offset LIKE sy-index,
v_indice LIKE sy-index,
wa_descr(70) TYPE c,
wa_nombre_archivo(50).

DATA: i_tline TYPE TABLE OF tline WITH HEADER LINE,
i_bin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_doctab TYPE docs OCCURS 0 WITH HEADER LINE.

DATA: wa_return TYPE ssfcrescl,
wa_buffer TYPE string, " to convert from 132 to 255
v_len_in TYPE sood-objlen,
wa_adrnr TYPE lfa1-adrnr,
wa_objhead TYPE solisti1 OCCURS 0.

DATA: wa_contrl TYPE ssfctrlop,
wa_output TYPE ssfcompop.

CONSTANTS: c_255(3) TYPE c VALUE '255',
c_134(3) TYPE c VALUE '134'.

DATA: l_str(134) TYPE c,
v1(3) TYPE c,
v2(3) TYPE c,
v3(3) TYPE c.

refresh: i_otf,
i_doctab,
i_tline,
i_bin,
wa_objhead,
t_adr6.

clear: e_datos_doc,
wa_return,
wa_nombre_archivo,
wa_adr6.

CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = '6498'
TABLES
PDF = i_tline
EXCEPTIONS
ERR_NO_OTF_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DSTDEVICE = 5
USER_CANCELLED = 6
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_OPEN_FAILED = 9
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 11
OTHERS = 12.

LOOP AT i_tline.

CLEAR l_str.
l_str+0(2) = i_tline-tdformat.
l_str+2(132) = i_tline-tdline.
v2 = v1 + c_134.
IF v2 LE c_255.
i_bin-line+v1(c_134) = l_str.
v1 = v2.

ELSE.

v3 = v2 - c_255.
v2 = c_255 - v1.

CONDENSE v2 NO-GAPS.
if v2 ne '0'.

i_bin-line+v1(v2) = l_str+0(v2).

ENDIF.

APPEND i_bin.

CLEAR i_bin.

v1 = v3.
v3 = c_134 - v1.

IF NOT v1 IS INITIAL.

i_bin-line+0(v1) = l_str+v3(v1).

ENDIF.
ENDIF.
ENDLOOP.

APPEND i_bin.
CLEAR i_bin.


* mail customer
* if p_mail1 = 'X'.
* SELECT SINGLE adrnr INTO wa_adrnr
* FROM kna1
* WHERE kunnr = wa_customer-kunnr.
*
* IF sy-subrc = '0'.
* SELECT smtp_addr INTO table t_adr6
* FROM adr6
* WHERE addrnumber = wa_adrnr.
* ENDIF.
* endif.
*
* if p_mail2 = 'X'.
* move: p_direc to wa_adr6-mail.
* append wa_adr6 to t_adr6.
* endif.


* Attachment
REFRESH: i_destinatario,
i_texto,
i_cont_bin,
i_objpack.
CLEAR wa_objhead.

i_cont_bin[] = i_bin[].
********************************


.
i_texto-line = text-m02.
APPEND i_texto.


********************************

DESCRIBE TABLE i_texto LINES v_lineas_tot.
READ TABLE i_texto INDEX v_lineas_tot.

e_datos_doc-obj_name = 'smartform'.
e_datos_doc-expiry_dat = sy-datum + 10.
e_datos_doc-obj_descr = text-m01.
e_datos_doc-sensitivty = 'F'.
e_datos_doc-doc_size = v_lineas_tot * 255.

* Main Text
CLEAR i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lineas_tot.
i_objpack-doc_type = 'RAW'.
APPEND i_objpack.

move:text-t10 to wa_nombre_archivo.

* Attachment (pdf-Attachment)
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
DESCRIBE TABLE i_cont_bin LINES v_lineas.
READ TABLE i_cont_bin INDEX v_lineas.
i_objpack-doc_size = v_lineas * 255 .
i_objpack-body_num = v_lineas.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'smart'.
i_objpack-obj_descr = wa_nombre_archivo.
APPEND i_objpack.

* mail
REFRESH i_destinatario.
CLEAR i_destinatario.

* loop at t_adr6 into wa_adr6.
* i_destinatario-receiver = wa_adr6-mail.
* i_destinatario-rec_type = 'U'.
* APPEND i_destinatario.
* endloop.

i_destinatario-receiver = 'correo del proveedor'
i_destinatario-rec_type = 'U'.
APPEND i_destinatario.

* sen mail
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = e_datos_doc
put_in_outbox = 'X'
* COMMIT_WORK = 'X'
TABLES
packing_list = i_objpack
object_header = wa_objhead
contents_bin = i_cont_bin
contents_txt = i_texto
receivers = i_destinatario
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.


IF sy-subrc = 0.
* con esto lo envia
COMMIT WORK.
WAIT UP TO 10 SECONDS.
SUBMIT rsconn01 AND RETURN.
COMMIT WORK.
ENDIF.
Responder Con Cita