Ver Mensaje Individual
  #1  
Viejo 18/01/10, 18:25:06
romario2 romario2 is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 233
función SO_DOCUMENT_SEND_API1 (envío mails)

Hola Foro,

tengo que hacer una sustitución (user-exit) para este perform.

PERFORM U999(ZRGGBS000) IF FOUND .

Como este código es estandard, deduzco que no puedo tocarlo.

Mi desarollo está en el FORM y lo que no se muy bien es como pasarle los parámetros.

Os dejo el código , a ver si veis lo que me falta:









FORM u999.

*FORM u999 TABLES tab_contents_txt
* it_attach
* USING p_email
* p_mtitle
* p_format
* p_filename
* p_attdescription
* p_sender_address
* p_sender_addres_type
* CHANGING p_error
* p_reciever.


DATA: int_error TYPE sy-subrc,
int_receiver LIKE sy-subrc.


DATA: w_doc_data LIKE sodocchgi1,
chr_email LIKE somlreci1-receiver.

DATA:

tab_contents_txt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
tab_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
tab_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.

* Missatge: S'ha donat d' alta l' actuació' PROJ-PSPID PROJ-ZZDESCRIPCIO

DATA: chr_mtitle LIKE sodocchgi1-obj_descr.

* Omplenem el document de dades
w_doc_data-doc_size = 1.

* paràmetres del missatge
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = chr_mtitle .
w_doc_data-sensitivty = 'F'.

* Fill the document data and get size of attachment
* CLEAR w_doc_data.
* READ TABLE it_attach INDEX w_cnt.
* w_doc_data-doc_size =
* ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
* w_doc_data-obj_langu = sy-langu.
* w_doc_data-obj_name = 'SAPRPT'.
* w_doc_data-obj_descr = ld_mtitle.
* w_doc_data-sensitivty = 'F'.
* CLEAR t_attachment.
* REFRESH t_attachment.
* t_attachment[] = it_attach[].


* cos del missatge
CLEAR tab_packing_list.
REFRESH tab_packing_list.
tab_packing_list-transf_bin = space.
tab_packing_list-head_start = 1.
tab_packing_list-head_num = 0.
tab_packing_list-body_start = 1.
DESCRIBE TABLE tab_contents_txt LINES tab_packing_list-body_num.
tab_packing_list-doc_type = 'RAW'.
APPEND tab_packing_list.

* Create attachment notification
* t_packing_list-transf_bin = 'X'.
* t_packing_list-head_start = 1.
* t_packing_list-head_num = 1.
* t_packing_list-body_start = 1.
*
* DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
* t_packing_list-doc_type = ld_format.
* t_packing_list-obj_descr = ld_attdescription.
* t_packing_list-obj_name = ld_attfilename.
* t_packing_list-doc_size = t_packing_list-body_num * 255.
* APPEND t_packing_list.

* destinatatis del mail
CLEAR tab_receivers.
REFRESH tab_receivers.
tab_receivers-receiver = chr_email.
tab_receivers-rec_type = 'U'.
tab_receivers-com_type = 'INT'.
* t_receivers-notif_del = 'X'.
* t_receivers-notif_ndel = 'X'.
APPEND tab_receivers.


* break-point.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
* SENDER_ADDRESS = SY-UNAME
* SENDER_ADDRESS_TYPE = 'B'
commit_work = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
* SENDER_ID =
TABLES
packing_list = tab_packing_list
* OBJECT_HEADER =
* CONTENTS_BIN =
contents_txt = tab_contents_txt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = tab_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
.

* omplenem codi d' error
int_error = sy-subrc.
IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


* control codi dels receptors del mail
LOOP AT tab_receivers.
int_receiver = tab_receivers-retrn_code.
ENDLOOP.


ENDFORM. "U999
Responder Con Cita