Текущее время: Вт, июл 22 2025, 20:34

Часовой пояс: 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 часа


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

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


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

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