Текущее время: Ср, июл 23 2025, 02:38

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: отправка почты с sender не-сап-юзер
СообщениеДобавлено: Вт, май 13 2008, 10:07 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
приветствую,

отправляю почту через cl_bcs.

cl_bcs->set_sender ожидает IF_SENDER_BCS,
который создается cl_sapuser_bcs=>create( [sap_user_name] )

Можно ли как-то сделать чтобы sender был не сап-юзер, а произвольный email?

Может кто сталкивался и знает какой класс использовать для создания sender-а.

использую примерно такой код:
https://www.sdn.sap.com/irj/sdn/weblogs ... ub/wlg/789

спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: отправка почты с sender не-сап-юзер
СообщениеДобавлено: Пн, май 19 2008, 14:32 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 15 2008, 12:57
Сообщения: 2
Здравствуйте!
Насколько критично именно использование классов?
Можно использовать для отправки ФМ SO_DOCUMENT_SEND_API1
Там есть параметр SENDER_ADDRESS_TYPE, в который как раз и передается внутренний это или внешний адрес...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 19 2008, 14:38 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
я пользовалась
Code:
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = l_document_data
      commit_work                = 'X'
    TABLES
      packing_list               = l_t_packing_list
      object_header              = l_t_object_header
      contents_bin               = l_t_contents_bin
      contents_txt               = l_t_contents_txt
      receivers                  = l_t_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.

но мне надо было делать рассылку нескольким, причём письма с вложенными файлами
таблица получателей:
Code:
* Empfдnger ьbernehmen
  LOOP AT it_empfaenger ASSIGNING <l_fs_empfaenger>.
    CLEAR l_receivers.
    l_receivers-receiver = <l_fs_empfaenger>-empfaenger.
    l_receivers-rec_type = <l_fs_empfaenger>-empf_typ. --- тип получателя
    l_receivers-com_type = 'INT'.
*   Empfдnger an Empfдnger-Tabelle anhдngen
    APPEND l_receivers TO l_t_receivers.
  ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 19 2008, 15:28 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
.. а ларчик просто открывался =)

BCS Interface - ибо так организовано базисником и SO_NEW_DOCUMENT_ATT_SEND_API1 теперь годится только для отправки внутреней почты.

Мне любезно и оперативно ответил сам автор блога, материал которого я использовал =) оказалось, это совсем просто, мне даже стало стыдно что спросил. Оговорюсь, для чего это - мне нужно было чтобы ИМЯ отправителя можно было задать произвольно, например должность (а не то что в данных пользователя):

CALL METHOD cl_cam_address_bcs=>create_internet_address
EXPORTING
i_address_string = c_smtpaddr
i_address_name = c_smtpaddr_name
RECEIVING
result = r_sender.

дале как обычно:
CALL METHOD r_send_request->set_sender
EXPORTING
i_sender = r_sender.

Но тут, обнаружился косяк в стандартной ФМ so_address_id_get (line 354) also (line 218) we are here - so no address found: create new direct address. Именно, некорректно отрабатывает создание внешнего адреса отправителя - игнорирует задаваемое имя отправителя, гляньте сами - передается visname, а используется visname40 (или, как говорится дурак я).

Исправил - работает =)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 11 2008, 08:21 
Начинающий
Начинающий

Зарегистрирован:
Вт, апр 25 2006, 06:26
Сообщения: 12
Подскажите как можно преобразовать PDFку полученную с помощью CONVERT_OTF_2_PDF для использования в SO_DOCUMENT_SEND_API1.
Конкретнее: содержимое таблицы LINES, полученное в CONVERT_OTF_2_PDF нужно передать в таблицу CONTENTS_HEX ФМа SO_DOCUMENT_SEND_API1


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 11 2008, 09:10 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
b_e_s написал(а):
Но тут, обнаружился косяк в стандартной ФМ so_address_id_get (line 354) also (line 218) we are here - so no address found: create new direct address. Именно, некорректно отрабатывает создание внешнего адреса отправителя - игнорирует задаваемое имя отправителя, гляньте сами - передается visname, а используется visname40

..если кому актуально - заплатка этого есть в пакете SAPKB70015


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 11 2008, 19:43 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
D!esel написал(а):
Конкретнее: содержимое таблицы LINES, полученное в CONVERT_OTF_2_PDF нужно передать в таблицу CONTENTS_HEX ФМа SO_DOCUMENT_SEND_API1


Я использовала просто CONVERT_OTF, но там у таблицы LINES структура такая же, так что должно работать. Вот фрагмент (основу списала уже не помню откуда):

Code:
* Definitions for emailing
DATA: itab_otf TYPE TABLE OF itcoo WITH HEADER LINE,
      itab_lines TYPE TABLE OF tline WITH HEADER LINE,
      itab_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
      itab_objpack TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
      itab_objtxt TYPE TABLE OF solisti1 WITH HEADER LINE,
      itab_pdf TYPE TABLE OF solisti1 WITH HEADER LINE,
      itab_reclist TYPE TABLE OF somlreci1 WITH HEADER LINE,
      l_return TYPE ssfcrescl,
      l_doc_chng TYPE sodocchgi1,
      l_bin_size LIKE sood-objlen,
      l_lines TYPE i.

* Convert Smart Form output into PDF binary format
  itab_otf[] = l_return-otfdata[].

  CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      format                = 'PDF'
      max_linewidth         = 132
    IMPORTING
      bin_filesize          = l_bin_size
    TABLES
      otf                   = itab_otf
      lines                 = itab_lines
    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.

  REFRESH itab_pdf[].

  CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
    EXPORTING
      line_width_dst              = '255'
    TABLES
      content_in                  = itab_lines
      content_out                 = itab_pdf
    EXCEPTIONS
      err_line_width_src_too_long = 1
      err_line_width_dst_too_long = 2
      err_conv_failed             = 3
      OTHERS                      = 4.

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

  CLEAR: l_doc_chng, itab_reclist, itab_objtxt, itab_objpack.
  REFRESH: itab_reclist, itab_objtxt, itab_objpack.

* Email body text
  itab_objtxt-line = 'Test'.
  APPEND itab_objtxt

* Packing for body text.
  DESCRIBE TABLE itab_objtxt LINES l_lines.
  CLEAR itab_objpack-transf_bin.
  itab_objpack-head_start = 1.
  itab_objpack-head_num = 0.
  itab_objpack-body_start = 1.
  itab_objpack-body_num = l_lines.
  itab_objpack-doc_type = 'RAW'.
  itab_objpack-doc_size = l_lines * 255.
  APPEND itab_objpack.

* Packing for PDF.
  DESCRIBE TABLE itab_pdf LINES l_lines.
  itab_objpack-transf_bin = 'X'.
  itab_objpack-head_start = 1.
  itab_objpack-head_num = 1.
  itab_objpack-body_start = 1.
  itab_objpack-body_num = l_lines.
  itab_objpack-doc_type = 'PDF'.
  itab_objpack-obj_name = 'Quote'.
  CONCATENATE itab_objpack-obj_name '.pdf' INTO itab_objpack-obj_descr.
  itab_objpack-doc_size = l_lines * 255.
  APPEND itab_objpack.

* Email recipient list
  itab_reclist-rec_type = 'U'. "Internet address
  itab_reclist-receiver = 'youremail@something.com'.
  APPEND itab_reclist.

* Sending mail.
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = l_doc_chng
      put_in_outbox              = 'X'
      commit_work                = 'X'
    TABLES
      packing_list               = itab_objpack
      contents_bin               = itab_pdf
      contents_txt               = itab_objtxt
      receivers                  = itab_reclist
    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.


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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