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 17/08/10, 12:52:34
Hasurac Hasurac is offline
Member
 
Fecha de Ingreso: nov 2009
Mensajes: 41
Consulta sobre Tranformacion a bin

Buenos días, tengo un pequeño problema en el que tal ves ustedes me puedan ayudar, el asunto es que debo mandar un mail con un exel el cual se forma de una tabla interna esto yo lo realizaba bajando la tabla a un bin con el gui y luego subiéndolo d e esta misma manera pero resulta que no puedo usar ni gui ni ws para este programa dado que lo ejecuto por debajo, no se si conocen alguna otra forma de pasar una tabla interna a bin o de mandar el mail de una tabla interna convertida a exel cualquier ayuda será agradecida


le s paso el codigo que tengo lo marcado con rojo es lo que debo canbiar

FORM f_enviar_mail.



CONSTANTS: lc_tipo_doc TYPE so_obj_tp VALUE 'xls',
lc_tipo_email TYPE so_obj_tp VALUE 'RAW',
lc_urgente TYPE so_obj_nam VALUE 'URGENT',
lc_caracter TYPE so_obj_sns VALUE 'F',
lc_tipo TYPE string VALUE '.xls'.

DATA: li_pack TYPE TABLE OF sopcklsti1,
li_objtxt TYPE TABLE OF solisti1,
li_receivers TYPE bubas_t_receiver,
ls_reclist type somlreci1,
li_objbin TYPE TABLE OF solisti1,
lw_data LIKE sodocchgi1,
lw_pack TYPE sopcklsti1,
lw_objtxt TYPE solisti1,
lv_lines_attachment TYPE i value 1,
lv_righe_testo TYPE i,
lv_asunto TYPE so_obj_des,
lv_error TYPE c.

CLEAR lv_error.
REFRESH tabla_EXEL.



* Asunto del e-mail
lv_asunto = 'Informe Representación Sindical'.
* Cuerpo del e-mail
CLEAR lw_objtxt.
lw_objtxt = ' '.
APPEND lw_objtxt TO li_objtxt.
CLEAR lw_objtxt.

* CLEAR lw_objtxt.
* lw_objtxt = text-001. "Línea de puntos
* APPEND lw_objtxt TO li_objtxt.

* CLEAR lw_objtxt.
* WRITE text-002 TO lw_objtxt.
* APPEND lw_objtxt TO li_objtxt.

tabla_EXEL-ah00290 = 'N.Contrato'.
tabla_EXEL-ah00301 = 'L.Neg'.
tabla_EXEL-zrrm_nom_linneg = 'L.Neg txt'.
tabla_EXEL-tdh00435 = 'C.Tra Pri.'.
tabla_EXEL-tah00310 = 'E.Contrat.'.
tabla_EXEL-tak00010 = 'E.Colabor.'.
tabla_EXEL-ak00020 = 'C.I.F'.
tabla_EXEL-ak00040 = 'Dom.Soc.'.
tabla_EXEL-ah00330 = 'Obj.Con.'.
tabla_EXEL-duracion = 'D.Contrat.'.
tabla_EXEL-bh00400 = 'Trab.'.
tabla_EXEL-num_trab_est = 'N.Est.Trb.'.
tabla_EXEL-acta_coord = 'Acta Coor.'.
tabla_EXEL-certif_ss_pago = 'Cert.SS.'.
tabla_EXEL-name1 = 'Ce.SIE'.
tabla_EXEL-pstlz = 'Cod.Post'.
tabla_EXEL-ort01 = 'Provincia'.
tabla_EXEL-lugar_ejec = 'Lug.Ejec.'.
tabla_EXEL-begda = 'F.Inicio'.
tabla_EXEL-endda = 'F.Fin'.
tabla_EXEL-typexp ='T.Exped.'.

APPEND tabla_EXEL.

LOOP at tabla_alv.
MOVE-CORRESPONDING tabla_alv TO tabla_EXEL.
APPEND tabla_EXEL.
ENDLOOP.




CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING

FILENAME = 'Sindical.xls'
FILETYPE = 'DAT'

TABLES
data_tab = tabla_EXEL.

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


CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'Sindical.xls'
FILETYPE = 'BIN'

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





DESCRIBE TABLE li_objbin LINES lv_lines_attachment.
DESCRIBE TABLE li_objbin LINES lv_righe_testo.

* Información del correo
lw_data-obj_name = lc_urgente. " Urgente
lw_data-expiry_dat = sy-datum + 10.
lw_data-obj_descr = lv_asunto. " Asunto del e-mail.
lw_data-sensitivty = lc_caracter. " Funcional
lw_data-doc_size = lv_righe_testo * 255. " Tamaño del documento



lw_pack-transf_bin = 'X'.
lw_pack-head_start = 1.
lw_pack-head_num = 1.
lw_pack-body_start = 1.
lw_pack-body_num = lv_lines_attachment * 255.
lw_pack-doc_type = 'XLS'.
lw_pack-obj_descr = 'Informe Representación Sindical'.
lw_pack-obj_name = 'Sindical.xls'.
lw_pack-doc_size = lv_lines_attachment * 255.
APPEND lw_pack TO li_pack.



** Creation of the entry for the compressed document
CLEAR lw_pack-transf_bin.
lw_pack-head_start = 1.
lw_pack-head_num = 0.
lw_pack-body_start = 1.
lw_pack-body_num = lv_lines_attachment * 255.
lw_pack-doc_type = 'RAW'.
APPEND lw_pack TO li_pack.



CLEAR ls_reclist.
ls_reclist-receiver = sy-UNAME.
ls_reclist-express = 'X'.
ls_reclist-rec_type = 'B'.
APPEND ls_reclist TO LI_receivers.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lw_data
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = li_pack
contents_bin = li_objbin
contents_txt = li_objtxt
receivers = li_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 = 99.
* IF sy-subrc NE 0.
** No se ha enviado el correo a ninguno de los interesados
* pio_error = gc_marcado.
* ENDIF.
* ENDIF.
ENDFORM. "f_enviar_mail
Responder Con Cita
  #2  
Viejo 17/08/10, 22:41:48
calanis calanis is offline
Senior Member
 
Fecha de Ingreso: oct 2008
Mensajes: 147
Hola

La solución es ponerlo en el servidor y reemplazar el código que utilizas para leer el archivo, mediante GUI Download/Upload por un simple OPEN DATASET




Para saber la ubicación en el Servidor utilizas la transacción AL11, usa la temporal '/tmp'.
Por ejemplo:'/tmp'/EXCEL_TMP.XLS'

Espero que la data te sirva

Saludos
Carlos D. Alanis
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 20:26:57.


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