MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 28/10/10, 10:04:21
caralbgro caralbgro is offline
Senior Member
 
Fecha de Ingreso: sep 2007
Mensajes: 478
Urgente adjuntas 3 archivos

necesto adjuntar 3 archivos a un mail que se genera automaticamente , el 1 es el pedidoque lo generodesde el spool a pdf y losotrs 2 serìan siempre fijos pero no se como adjuntarlos alguna idea??
Responder Con Cita
  #2  
Viejo 28/10/10, 16:33:01
agv1976 agv1976 is offline
Member
 
Fecha de Ingreso: jun 2006
Mensajes: 66
Este report adjuntaba 5 archivos

---------------------------------------------------------------------*
*& Report ZPC_PDF
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

* Includes declare data
INCLUDE zpc_pdf_top. " Global Data

INCLUDE rlb_invoice_data_declare.

* INCLUDE ZPC_PDF_O01. " PBO-Modules
* INCLUDE ZPC_PDF_I01. " PAI-Modules
* INCLUDE ZPC_PDF_F01. " FORM-Routines

* Selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: p_spmon TYPE s710-spmon,
p_subje(255).

SELECT-OPTIONS: s_smtp FOR adr6-smtp_addr,
s_file FOR filetext-filename.

SELECTION-SCREEN END OF BLOCK b1.

* Include de funciones
INCLUDE zpc_pdf_forms.

* Mail program
START-OF-SELECTION.

PERFORM param.

* Form name
lf_formname = 'ZPRUEBA_PDF'.

PERFORM set_print_data_to_read USING lf_formname
CHANGING ls_print_data_to_read
cf_retcode.

PERFORM module_name.

PERFORM convert_otf.

PERFORM line_change.

PERFORM config_mail.

* Enviar mail
PERFORM enviar_email
TABLES
pdf_tab_aux " <-- Tabla con el pdf de 255 de anchura
ltb_body " <-- Texto del cuerpo del correo
ltb_recipients " <-- Receptores del correo
USING
lw_subject " <-- Titulo del correo
lw_filename. " <-- Nombre del adjunto

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Include ZPC_PDF_FORMS
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form set_print_data_to_read
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LF_FORMNAME text
* <--P_LS_PRINT_DATA_TO_READ text
* <--P_RETCODE text
*----------------------------------------------------------------------*

FORM set_print_data_to_read USING if_formname LIKE tnapr-sform
CHANGING cs_print_data_to_read TYPE lbbil_print_data_to_read
cf_retcode.

FIELD-SYMBOLS: <fs_print_data_to_read> TYPE xfeld.
DATA: lt_fieldlist TYPE tsffields.

* Datos requeridos para la impresión de los Smart-Forms.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE
cs_print_data_to_read TO <fs_print_data_to_read>.
IF sy-subrc <> 0. EXIT. ENDIF.
<fs_print_data_to_read> = 'X'.
ENDDO.

CALL FUNCTION 'SSF_FIELD_LIST'
EXPORTING
formname = if_formname
* VARIANT = ' '
IMPORTING
fieldlist = lt_fieldlist
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.

ENDFORM. " set_print_data_to_read

*&--------------------------------------------------------------------*
*& Form ENVIAR_EMAIL
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*

FORM enviar_email TABLES ptb_pdf255 STRUCTURE solisti1
ptb_body STRUCTURE solisti1
ptb_recipients STRUCTURE somlreci1
USING pw_subject TYPE so_obj_des
pw_filename TYPE char100.

* Data declaration
* Variables y tablas internas
DATA: BEGIN OF ltb_objbin OCCURS 0.
INCLUDE STRUCTURE solisti1.
DATA: END OF ltb_objbin.

DATA: start TYPE i,
end TYPE i.

DATA: lwa_doc_chng LIKE sodocchgi1,
lw_tab_lines LIKE sy-tabix,
ltb_objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,
ltb_objheader LIKE solisti1 OCCURS 0 WITH HEADER LINE.

* Main processing section
CLEAR: ltb_objbin, ltb_objtxt, ltb_objpack, lwa_doc_chng.
REFRESH: ltb_objbin, ltb_objtxt, ltb_objpack.

* Control Data
lwa_doc_chng-obj_name = 'URGENT'.
lwa_doc_chng-sensitivty = 'P'.
lwa_doc_chng-no_change = 'X'.
lwa_doc_chng-priority = '1'.
lwa_doc_chng-obj_prio = '1'.
lwa_doc_chng-obj_langu = sy-langu.

* Email Subject
lwa_doc_chng-obj_descr = pw_subject.

* Attachment
* Move the binary attachment to other internal table.
ltb_objbin[] = ptb_pdf255[].

APPEND ltb_objbin.

ltb_objpack-transf_bin = 'X'.

* Inicially 1 for attachments
ltb_objpack-head_num = 1.
ltb_objpack-body_start = 1.

* Get the number of lines in the Attachment (PDF FILE)
DESCRIBE TABLE ltb_objbin LINES lw_tab_lines.

ltb_objpack-body_num = lw_tab_lines.
ltb_objpack-doc_type = 'PDF'.
ltb_objpack-obj_descr = pw_filename.
ltb_objpack-obj_name = pw_filename.
ltb_objpack-doc_size = lw_tab_lines * 255.

APPEND ltb_objpack.

LOOP AT s_file.

ltb_objpack-body_start = ltb_objpack-body_start + ltb_objpack-body_num.

l_file = s_file-low.
fdpos = STRLEN( l_file ) - 3.

PERFORM read_from_frontend TABLES ltb_objbin_aux
CHANGING l_file
ltb_objpack-doc_size
ltb_objpack-body_num.

LOOP AT ltb_objbin_aux.
MOVE ltb_objbin_aux TO ltb_objbin.
APPEND ltb_objbin.
ENDLOOP.

pw_filename = l_file+3(fdpos).

ADD 1 TO ltb_objpack-head_start.
ltb_objpack-transf_bin = 'X'.
ltb_objpack-doc_type = 'RAW'.
ltb_objpack-obj_descr = pw_filename.
ltb_objpack-obj_name = pw_filename.

APPEND ltb_objpack.

ENDLOOP.

* Call the function to send the PDF file by email
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lwa_doc_chng
put_in_outbox = 'X'
* COMMIT_WORK = ' '
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
packing_list = ltb_objpack
contents_bin = ltb_objbin
contents_txt = ltb_objtxt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = ptb_recipients
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.
ELSE.
COMMIT WORK.
* Instructs mail send program for SAPCONNECT to send email(rsconn01)
PERFORM initiate_mail_execute_program.
ENDIF.

ENDFORM. "enviar_email

*&---------------------------------------------------------------------*
*& Form Line_change
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM line_change.

* Cambio de tamaño
CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
EXPORTING
transfer_bin = 'X'
TABLES
content_in = pdf_tab
content_out = pdf_tab_aux.

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. " Line_change
*&---------------------------------------------------------------------*
*& Form param
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM param.

ls_composer_param-tddest = 'LOCL'. "Dispositivo de salida
ls_composer_param-tdnewid = 'X'.
ls_composer_param-tdimmed = 'X'. "Salida inmediata
ls_composer_param-tddelete = ' '. "Borrar tras salida orden spool

ls_control_param-getotf = 'X'.
ls_control_param-no_dialog = 'X'.
ls_control_param-preview = 'X'.

ENDFORM. " param

*&---------------------------------------------------------------------*
*& Form module_name
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM module_name.

* Llamada al modulo de funciones que ejecuta el smart-forms.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = lf_formname
IMPORTING
fm_name = lf_fm_name.

CALL FUNCTION lf_fm_name
EXPORTING
archive_index = toa_dara
archive_parameters = arc_params
control_parameters = ls_control_param
mail_recipient = ls_recipient
mail_sender = ls_sender
output_options = ls_composer_param
user_settings = space
is_nast = nast
is_repeat = repeat
spmon = p_spmon
IMPORTING
job_output_info = tab_otf_data
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4.

* Appending the otf data into the final table
tab_otf_final[] = tab_otf_data-otfdata[].

ENDFORM. " module_name
*&---------------------------------------------------------------------*
*& Form convert_otf
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM convert_otf.

* Converting OTF data into pdf data
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
IMPORTING
bin_filesize = bin_filesize
* BIN_FILE =
TABLES
otf = tab_otf_final
lines = pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.

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. " convert_otf

*&---------------------------------------------------------------------*
*& Form Config_mail
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM config_mail.

* Envío por mail
lw_subject = p_subje. "<-- Subject del correo

lwa_body-line = ''.
APPEND lwa_body TO ltb_body.

*lw_filename = 'Cert.Lilly'. "<-- Nombre del archivo adjunto

* Recipients
LOOP AT s_smtp.

lwa_recipients-rec_type = 'U'. "<-- Correo al exterior
lwa_recipients-express = 'X'.
lwa_recipients-receiver = s_smtp-low. "<-- Destinatario
lwa_recipients-copy = ''.

APPEND lwa_recipients TO ltb_recipients.

ENDLOOP.

ENDFORM. " Config_mail

*&---------------------------------------------------------------------*
*& Form read_from_frontend
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM read_from_frontend TABLES it_bin STRUCTURE ltb_objbin_aux
CHANGING fichero TYPE string
size TYPE so_doc_siz
line TYPE so_bd_num.

CLEAR: line, size.

CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = fichero
filetype = 'ASC'
has_field_separator = 'X'
* header_length = 0
* read_by_line = 'X'
dat_mode = 'X'
* codepage = space
* ignore_cerr = abap_true
* replacement = '#'
* virus_scan_profile =
* IMPORTING
* filelength =
* header =
CHANGING
data_tab = it_bin[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.
line = sy-tabix.
size = line * 255.

* APPEND it_bin.
*
* DELETE it_bin WHERE matnr EQ 0.

ENDIF.

ENDFORM. " read_from_frontend

*&---------------------------------------------------------------------*
*& Form initiate_mail_execute_program
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM initiate_mail_execute_program.

WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.

ENDFORM. " initiate_mail_execute_program
*&---------------------------------------------------------------------*
*& Include ZPC_PDF_TOP Report ZPC_PDF
*&
*&---------------------------------------------------------------------*

REPORT zpc_pdf.

TABLES: adr6, filetext.

TYPE-POOLS: meein.

DATA: ls_print_data_to_read TYPE lbbil_print_data_to_read,
lf_fm_name TYPE rs38l_fnam,
ls_control_param TYPE ssfctrlop,
ls_composer_param TYPE ssfcompop,
ls_recipient TYPE swotobjid,
ls_sender TYPE swotobjid,
lf_formname TYPE tdsfname,
ls_addr_key LIKE addr_key.

DATA: l_doc TYPE meein_purchase_doc_print,
l_druvo LIKE t166k-druvo,
l_from_memory.

DATA: file_size TYPE i,
bin_filesize TYPE i,
tab_otf_data TYPE ssfcrescl,
pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE,
tab_otf_final TYPE itcoo OCCURS 0 WITH HEADER LINE.

DATA: cf_retcode LIKE sy-subrc,
tabla_out TYPE ssfcrescl,
pdf_tab_aux TYPE so_text255 OCCURS 0,
size TYPE i.

DATA: lw_subject TYPE so_obj_des,
lwa_body TYPE solisti1,
ltb_body TYPE TABLE OF solisti1,
lw_filename TYPE char100,
ltb_recipients TYPE TABLE OF somlreci1,
lwa_recipients TYPE somlreci1.

* Variables
DATA: gt_file TYPE filetable,
l_filename TYPE string,
gt_subrc TYPE sy-subrc,
user_act TYPE i.

DATA: ltb_objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
l_file TYPE string,
fdpos TYPE syfdpos.

DATA: BEGIN OF ltb_objbin_aux OCCURS 0,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
laeda TYPE mara-laeda,
aenam TYPE mara-aenam,
vpsta TYPE mara-vpsta,
pstat TYPE mara-pstat,
END OF l
Responder Con Cita
  #3  
Viejo 28/10/10, 20:11:12
caralbgro caralbgro is offline
Senior Member
 
Fecha de Ingreso: sep 2007
Mensajes: 478
gracias

muchas gracias lo voy a probar
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 17:02:04.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web