Текущее время: Пн, июл 14 2025, 23:49

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Вложение в письмо.
СообщениеДобавлено: Пн, окт 07 2013, 13:44 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Добрый день.
Проблема в том, что не могу прикрепить файл в письмо считав его из директории клиентской машины. Из SMW0 все нормально считывается.

Добавляю вложение в документ.
CALL METHOD r_document->add_attachment
EXPORTING
i_attachment_type = 'DOC'
i_attachment_subject = 'Уведомление.doc'
i_att_content_hex = binary_content.


При этом если я считываю из smw0:
CLEAR binary_content.
DATA KEY type WWWDATATAB.
KEY-objid = 'ZHR_SSC' .
KEY-relid = 'MI' .
CALL FUNCTION 'WWWDATA_IMPORT'
EXPORTING
KEY = KEY
TABLES
* HTML = HTML
MIME = binary_content
EXCEPTIONS
OTHERS = 1.

То все нормально Вложение приходит.

А мне нужно считать файл не из smw0, а из директории на локальной машине. Для этого я использую:

CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = TempName
filetype = 'BIN'
IMPORTING
filelength = flen
CHANGING
data_tab = binary_content
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.

Но в этом случае, хоть таблица binary_content и заполняется, во вложении какая то ерунда.
Вопрос вот в чем. Как правильно считать документ с компьютера пользователя, чтобы он подходил для метода r_document->add_attachment ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Пн, окт 07 2013, 14:03 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Добрый день.
Попробуйте передавать еще размер файла в ->add_attachment, и i_attachment_type = 'BIN'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 08:44 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Проблема в том, что пытаюсь переслать xml документ. Word и Excel нормально передает. Если писать i_attachment_type = 'BIN' тоже не работает.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 10:50 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Странно, у меня работает. Даже с XML (вообще непонятно какая разница системе на расширение файла, может с кодировками чего?).
Code:
          docum->add_attachment( i_attachment_type    = 'BIN'
                                 i_attachment_subject = '1.xml'
                                 i_att_content_hex    = list_content
                                 i_attachment_size    = att_size ).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 11:13 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Code:
data lv_i type i.
    call function 'SCMS_XSTRING_TO_BINARY'
         exporting
              buffer          = gv_xml_xstring
              IMPORTING
                  output_length         = lv_i
         tables
              binary_tab      = binary_content.


DATA len TYPE sood-objlen.
len = lv_i.
                        CALL METHOD r_document->add_attachment
                    EXPORTING
                       i_attachment_type = 'EXT'
                       i_attachment_subject = 'УведомлениеNEW5.doc'
                       i_att_content_hex    =  binary_content
                       i_attachment_size    = len.


И не работает. У вас так?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 11:16 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Может дело действительно в кодировке? Как будет выглядеть XML без русских букв? Тоже ерунда?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 11:25 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Цитата:
Может дело действительно в кодировке? Как будет выглядеть XML без русских букв? Тоже ерунда?


Файлы вообще получаются 0 байт. То есть когда приходит письмо, то написано что вложение 90 Кб, например. А когда этот файл скачиваешь он занимает 0 байт.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 11:53 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Od1n, предлагаю делиться файлами и написанным кодом.

А зачем Вы вызываете call function 'SCMS_XSTRING_TO_BINARY' ?

У меня так:
Code:
  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename                = 'C:\1.xml'
      filetype                = 'BIN'
    IMPORTING
      filelength              = lv_bin_data_len
    CHANGING
      data_tab                = lt_binary
    EXCEPTIONS
...
      OTHERS                  = 19.

...
          docum->add_attachment( i_attachment_type    = 'BIN'
                                 i_attachment_subject = '1.xml'
                                 i_att_content_hex    = lt_binary
                                 i_attachment_size    = lv_bin_data_len ).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 13:11 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Цитата:
А зачем Вы вызываете call function 'SCMS_XSTRING_TO_BINARY' ?


Вообще задумка такая. Необходимо сформировать и отправить письма людям. Для каждого человека соответственно должно быть свои данные во вложенном файле, чтобы он распечатал документ (это документ о том, что человек согласен на отпуск).

Для этого использую
Code:
CALL TRANSFORMATION ID
SOURCE XML gv_xml_xstring
RESULT XML go_resstream.


Собственно gv_xml_xstring - это и есть сформированный файл но в xstring, потом при помощи эту строку привожу к нужному типу данных. Чтобы
Code:
    call function 'SCMS_XSTRING_TO_BINARY'
         exporting
              buffer          = gv_xml_xstring

              IMPORTING
                  output_length         = flen
         tables
              binary_tab      = binary_content.


И потом вкладываю документ в письмо.
Code:
len = flen."lv_i.
                        CALL METHOD r_document->add_attachment
                    EXPORTING
                       i_attachment_type = 'BIN'
                       i_attachment_subject = 'УведомлениеNEW7.doc'
                       i_att_content_hex    =  binary_content
                       i_attachment_size    = len.




Также пробую вариант с загрузкой получившегося файла из директории:
Code:
  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename                = TempName"l_filename
      filetype                = 'BIN'
    IMPORTING
      filelength              = flen
    CHANGING
      data_tab                = binary_content  "t_datatab[]
    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
      .


Но тоже не отправляется, а вот ворд или эксель без проблем.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 13:32 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Od1n написал(а):
Цитата:
А зачем Вы вызываете call function 'SCMS_XSTRING_TO_BINARY' ?


Вообще задумка такая. Необходимо сформировать и отправить письма людям. Для каждого человека соответственно должно быть свои данные во вложенном файле, чтобы он распечатал документ (это документ о том, что человек согласен на отпуск).

Я перестаю Вас понимать все больше и больше.. Вы хотите загрузить xml, преобразовать его в другой xml и отправить новый xml по почте, чтобы человек его распечатал. Или Вы пытаетесь таким образом издеваться над файлами MS Office?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 14:37 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Цитата:
Я перестаю Вас понимать все больше и больше.. Вы хотите загрузить xml, преобразовать его в другой xml и отправить новый xml по почте, чтобы человек его распечатал. Или Вы пытаетесь таким образом издеваться над файлами MS Office?


))))) Объяснения не мой конек. Сейчас попробую.

Данные хранятся в шаблоне xml. Транзакция STANS.

При помощи

Цитата:
CALL TRANSFORMATION z_abap_to_xml2
SOURCE (gt_source_itab)
RESULT XML gv_xml_xstring.


Где (gt_source_itab) хранит в себе данные которые нужно поставить на нужные места в шаблоне. А gv_xml_xstring - хранит в себе сам выходной файл. только в формате xstring. Его я и хотел передать пользователю. преобразовав в нужный формат при помощи call function 'SCMS_XSTRING_TO_BINARY'. (Чтобы не выгружать его на диск, а потом оттуда не забирать). Но такая передача не принципиальна.

Сделал выгрузку в папку пользователя, а уже из нее пытаюсь брать файл. То есть проблема не в формировании самого XML файла (Он нормально сохраняется в папке), а его последующая передача в письме. И проблема именно с XML.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 15:53 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Ну вот, все стало понятно. Правильно решили избежать выгрузки, ведь она здесь и не нужна. Видимо проблема непосредственно в файле, можете выложить его где-нибудь? Попробую Ваш файл отправить у себя.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Вт, окт 08 2013, 15:59 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Вот файл, выгруженный в процессе выполнения.

http://files.mail.ru/53CECE8905B74603AB47AC8B5949800E


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Сб, окт 12 2013, 10:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
не в фоне надеюсь,
отладить ведь 2 минуты


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вложение в письмо.
СообщениеДобавлено: Пт, окт 18 2013, 08:14 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 01 2012, 09:52
Сообщения: 41
Причина была в настройке почтового клиента на стороне пользователя. XML файлы блокировались Проблему решил, поместив сгенерированный файл в архив.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB