desconozco, el asunto este de la creación del txt. Se genera en el pc que ejecuta la TRX? de ser así por que mejor en vez de desgastarte en evitar algo que al parecer es estándar de SAP mejor no ejecutas un comando DOS que elimine los archivos generados y lo ejecutas una vez finalizado tu programa Z asi aunque la BAPI te genere estos archivos solo serán temporales.
DATA: w_file TYPE string VALUE 'C:\ruta\dondequeda\txt\*.txt
, w_cmd(200) TYPE c.
CONCATENATE 'COMMAND.COM /C del ' w_file
INTO w_cmd SEPARATED BY space.
CALL FUNCTION 'GUI_EXEC'
EXPORTING
command = w_cmd.
.
Mira no entiendo mucho tu consulta, este fichero donde se encuentra ubicado? que contiene? siempre tiene un mismo nombre? trata de entregar un poco mas de antecedentes para saber cual es exactamente el problema y que necesitas para solucionarlo. (sueno como la dra. polo jajajaja)
También puedes incluir una imagen de este txt para comprender que contiene.
En el programa Z indicamos que cada diez minutos los archivos que están dentro de una carpeta se adjunten y se borren del servidor.
El txt contiene lo que es el cuerpo del mensaje, y en este caso el cuerpo del mensaje esta vació, ya que solo nos interesa los archivos adjuntos del servidor, y no el txt vació.
el problema es que no quiero que se adjunte ese txt que genera la función: 'SO_NEW_DOCUMENT_ATT_SEND_API1’
Intenta comentando la siguiente línea del código que destaco mas abajo:
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'RAW'
put_in_outbox = 'X'
tables
object_header = mailtxt
`"object_content = mailtxt` ""comenta esta linea
receivers = mailrec
mailtxt es una tabla interna que lleva el contenido del mail, por ende si la tabla esta vacía y no le pasas el parámetro a object_content no debería utilizarlo.
Los TXT son archivos de texto, que se relacionan con texfile, easyplot, saved data, wireshark traffic log, display write document y fileviewpro. Se puede modificar el inicio del programa, tal como lo dice Ricardo, para modifique los datos del programa , y tienes que revisar la relación del archivo datos.txt, porque pueden ser los constructores ofstream porque es uno de los especificadores que tienen mayor control en las operaciones de envío. Para que tengas mayor conocimiento de esos detalles del archivo de texto hay una aplicación útil, al menos no me ha saboteado la máquina , es h_tp://www.solvusoft.com/es/download/fileviewpro/ , nos vemos chicos.
En ese caso cambia el llamado de tu bapi ‘SO_NEW_DOCUMENT_ATT_SEND_API1’ por la que te indico yo SO_DOCUMENT_SEND_API1, si te fijas tu bapi solo llama al ejemplo que te estoy indicando.
También puede ser que no este viendo algo claramente tengo mucha hambre voy al almuerzo y regreso.
edite el titulo de tu tema debido a que poner “Pregunta reto de la semana :D” no ayuda a los lectores a entender el problema que presentas. El titulo en el foro representa un resumen de tu falla, por lo cual trata de evitar títulos que desvíen la idea de tu duda.
P.D. recuerda también marcar el tema que soluciono tu problema
DATA: gs_pdfout TYPE solix,
gt_pdfout TYPE solix_tab,
gs_doc_data TYPE sodocchgi1,
gt_rec TYPE TABLE OF somlreci1,
gs_rec TYPE somlreci1,
gt_pack_list TYPE TABLE OF sopcklsti1,
gs_pack_list LIKE LINE OF gt_pack_list,
gt_message TYPE TABLE OF solisti1,
gs_message LIKE LINE OF gt_message,
lv_drive TYPE string,
lv_extension TYPE string,
lv_name TYPE string,
lv_name_with TYPE string,
lv_path TYPE string,
p_adjunto type string,
p_file_aux type string,
gt_lines LIKE sy-tabix.
DATA: file_table TYPE TABLE OF eps2fili,
wa_file_table LIKE LINE OF file_table.
TYPES:
BEGIN OF ty_campos,
campo1(2000),
END OF ty_campos.
DATA: it_campos TYPE STANDARD TABLE OF ty_campos.
DATA: wa_campos LIKE LINE OF it_campos.
data lv_asunto type string value 'Asunto'.
PARAMETERS : p_file TYPE eps2filnam.
SELECT-OPTIONS email FOR wa_campos-campo1.
CALL FUNCTION 'EPS2_GET_DIRECTORY_LISTING'
EXPORTING
iv_dir_name = p_file
TABLES
dir_list = file_table
EXCEPTIONS
invalid_eps_subdir = 1
sapgparam_failed = 2
build_directory_failed = 3
no_authorization = 4
read_directory_failed = 5
too_many_read_errors = 6
empty_directory_list = 7
OTHERS = 8
.
IF sy-subrc <> 0.
EXIT.
ENDIF.
gs_doc_data-obj_descr = lv_asunto."'Documento'.
READ TABLE file_table into wa_file_table INDEX 1.
clear wa_file_table.
LOOP AT email.
gs_rec-receiver = email-low.
gs_rec-rec_type = 'U'.
INSERT gs_rec INTO TABLE gt_rec.
ENDLOOP.
*CLEAR gs_message.
*gs_message-line = ''.
*APPEND gs_message TO gt_message.
*Inicio silvis Si se borra esta parte no añade un fichero sin extensión
DESCRIBE TABLE gt_message LINES gt_lines.
gs_pack_list-body_num = gt_lines.
gs_pack_list-doc_type = 'RAW'.
*Fin silvis Si se borra esta parte no añade asunto
APPEND gs_pack_list TO gt_pack_list.
LOOP AT file_table INTO wa_file_table.
CLEAR: p_file_aux, p_adjunto.
CONCATENATE p_file wa_file_table-name INTO p_file_aux.
p_adjunto = p_file_aux.
CALL FUNCTION 'CH_SPLIT_FILENAME'
EXPORTING
complete_filename = p_adjunto
IMPORTING
extension = lv_extension
name = lv_name
name_with_ext = lv_name_with
path = lv_path
.
OPEN DATASET p_file_aux FOR INPUT IN BINARY MODE.
DO.
READ DATASET p_file_aux INTO gs_pdfout-line.
IF sy-subrc NE 0.
APPEND gs_pdfout TO gt_pdfout.
EXIT.
ENDIF.
APPEND gs_pdfout TO gt_pdfout.
ENDDO.
CLOSE DATASET p_file_aux.
DESCRIBE TABLE gt_pdfout LINES gt_lines.
gs_pack_list-transf_bin = 'X'.
gs_pack_list-head_start = 1.
gs_pack_list-head_num = 1.
gs_pack_list-body_start = 1.
gs_pack_list-body_num = gt_lines.
gs_pack_list-doc_type = 'BIN'.
gs_pack_list-obj_name = 'ATTACHMENT'.
gs_pack_list-obj_descr = lv_name_with.
gs_pack_list-doc_size = gt_lines * 255.
APPEND gs_pack_list TO gt_pack_list.
ENDLOOP.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = gs_doc_data
* PUT_IN_OUTBOX = 'X'
commit_work = 'X'
TABLES
packing_list = gt_pack_list
* contents_txt = gt_message
contents_hex = gt_pdfout
receivers = gt_rec
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.
SUBMIT rsconn01 WITH mode = 'INT' AND RETURN.
data wa_gt_pack_list like LINE OF gt_pack_list.
LOOP AT gt_pack_list into wa_gt_pack_list.
clear p_file_aux.
CONCATENATE p_file wa_gt_pack_list-obj_descr INTO p_file_aux.
DELETE DATASET p_file_aux."LV_FILENAME_aux.
ENDLOOP.
ENDIF.
espero que puedas ayudarme gracias que tengas un lindo dia
*Inicio silvis Si se borra esta parte no añade un fichero sin extensión
DESCRIBE TABLE gt_message LINES gt_lines.
gs_pack_list-body_num = gt_lines.
gs_pack_list-doc_type = 'RAW'.
*Fin silvis Si se borra esta parte no añade asunto
APPEND gs_pack_list TO gt_pack_list.
Como bien dices si lo borras no aparece el archivo adjunto pero pierdes el asunto, lamentablemente no he podido replicar este comportamiento en mi sistema por tanto no se me ocurre de que forma poder evitar esto.
holaaaa a todos y muchismas gracias por su ayuda, al final he podido resolver el problema era de estandar, en la transacción sodis, en datos obligatorios del estandar debe tener el mensaje del cuadro en blanco para que no adjunte ningun txt adicional.