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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: SAP почта
СообщениеДобавлено: Пн, дек 07 2009, 16:07 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
Добрый день.

Необходимо отслеживать почтовые сообщения превышающие некоторый размер (допустим 5 мб) и удалять их вместе с вложениями.

Кто то может что то подсказать по этому поводу? Я даже понятия не имею как это все работает и с чего начинать.

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, дек 07 2009, 16:34 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
ИМХО проще настроить это на вашем MailServer, а не в SAP... В этом случае вы избежите лишнего траффика и нагрузки по проверке размера сообщений.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, дек 07 2009, 16:45 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
Речь идёт о почте сап офиса внутри сапа - внешняя почта не интересует. На сколько я понимаю письмо вместе с вложением пишется в таблицу БД и отсылается только ссылка.

Проблема заключается в том что б удалять из таблицы объёмные письма что б они не занимали место.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, дек 07 2009, 17:53 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
А если получатель еще не ознакомился с письмом? Все равно удалять будете?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, дек 07 2009, 18:09 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
John Doe написал:
А если получатель еще не ознакомился с письмом? Все равно удалять будете?


Да - превышение размера будет являться нарушением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, дек 07 2009, 19:35 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Пример нахождения крупных файлов:
Code:
DATA: folder_id TYPE soodk,
      gt_soc3 TYPE TABLE OF soc3 WITH HEADER LINE,
      document_id LIKE  sofolenti1-doc_id,
      maininfo TYPE sofolenti1,
      attachments TYPE TABLE OF soattlsti1 WITH HEADER LINE,
      ltext TYPE string.

PARAMETERS: p_size TYPE filesize.

START-OF-SELECTION.
  CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
    EXPORTING
      region                = 'I'
    IMPORTING
      folder_id             = folder_id
    EXCEPTIONS
      communication_failure = 1
      owner_not_exist       = 2
      system_failure        = 3
      x_error               = 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.

  SELECT * FROM soc3 INTO TABLE gt_soc3
    WHERE srtfd LIKE 'RAW%'.

  LOOP AT gt_soc3.
    REFRESH attachments.

    CONCATENATE folder_id gt_soc3-srtfd INTO document_id.

    CALL FUNCTION 'SO_DOCUMENT_READ_API1'
      EXPORTING
        document_id                = document_id
      IMPORTING
        document_data              = maininfo
      TABLES
        attachment_list            = attachments
      EXCEPTIONS
        document_id_not_exist      = 1
        operation_no_authorization = 2
        x_error                    = 3
        OTHERS                     = 4.
    IF sy-subrc <> 0.
      CONTINUE.
    ENDIF.

    LOOP AT attachments.
      IF attachments-att_size > p_size.
        CONCATENATE 'Document' maininfo-obj_descr 'have a big files'
          INTO ltext SEPARATED BY space.
        WRITE:/ ltext.
        CONCATENATE 'Troublemaker:' maininfo-creat_name
          INTO ltext SEPARATED BY space.
        WRITE:/ ltext.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDLOOP.


Удаление можно реализовать через SO_DOCUMENT_DELETE_API1, но лучше посмотреть в сторону удаления самого файла, а не документа.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Вт, дек 08 2009, 11:37 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
John Doe написал:
Пример нахождения крупных файлов:
Code:
DATA: folder_id TYPE soodk,
      gt_soc3 TYPE TABLE OF soc3 WITH HEADER LINE,
      document_id LIKE  sofolenti1-doc_id,
      maininfo TYPE sofolenti1,
      attachments TYPE TABLE OF soattlsti1 WITH HEADER LINE,
      ltext TYPE string.

PARAMETERS: p_size TYPE filesize.

START-OF-SELECTION.
  CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
    EXPORTING
      region                = 'I'
    IMPORTING
      folder_id             = folder_id
    EXCEPTIONS
      communication_failure = 1
      owner_not_exist       = 2
      system_failure        = 3
      x_error               = 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.

  SELECT * FROM soc3 INTO TABLE gt_soc3
    WHERE srtfd LIKE 'RAW%'.

  LOOP AT gt_soc3.
    REFRESH attachments.

    CONCATENATE folder_id gt_soc3-srtfd INTO document_id.

    CALL FUNCTION 'SO_DOCUMENT_READ_API1'
      EXPORTING
        document_id                = document_id
      IMPORTING
        document_data              = maininfo
      TABLES
        attachment_list            = attachments
      EXCEPTIONS
        document_id_not_exist      = 1
        operation_no_authorization = 2
        x_error                    = 3
        OTHERS                     = 4.
    IF sy-subrc <> 0.
      CONTINUE.
    ENDIF.

    LOOP AT attachments.
      IF attachments-att_size > p_size.
        CONCATENATE 'Document' maininfo-obj_descr 'have a big files'
          INTO ltext SEPARATED BY space.
        WRITE:/ ltext.
        CONCATENATE 'Troublemaker:' maininfo-creat_name
          INTO ltext SEPARATED BY space.
        WRITE:/ ltext.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDLOOP.


Удаление можно реализовать через SO_DOCUMENT_DELETE_API1, но лучше посмотреть в сторону удаления самого файла, а не документа.


SO_DOCUMENT_DELETE_API1 удалит только само письмо а вложение останется ? Я правильно Вас понял?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Вт, дек 08 2009, 11:39 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Удаление приложений - SO_ATTACHMENT_DELETE.
Удалится ли приложение вместе с письмом - я не знаю. Пробуйте разные варианты.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, янв 11 2010, 10:23 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
John Doe написал:
Пример нахождения крупных файлов:
Code:
DATA: folder_id TYPE soodk,
      gt_soc3 TYPE TABLE OF soc3 WITH HEADER LINE,
      document_id LIKE  sofolenti1-doc_id,
      maininfo TYPE sofolenti1,
      attachments TYPE TABLE OF soattlsti1 WITH HEADER LINE,
      ltext TYPE string.

PARAMETERS: p_size TYPE filesize.

START-OF-SELECTION.
  CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
    EXPORTING
      region                = 'I'
    IMPORTING
      folder_id             = folder_id
    EXCEPTIONS
      communication_failure = 1
      owner_not_exist       = 2
      system_failure        = 3
      x_error               = 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.

  SELECT * FROM soc3 INTO TABLE gt_soc3
    WHERE srtfd LIKE 'RAW%'.

  LOOP AT gt_soc3.
    REFRESH attachments.

    CONCATENATE folder_id gt_soc3-srtfd INTO document_id.

    CALL FUNCTION 'SO_DOCUMENT_READ_API1'
      EXPORTING
        document_id                = document_id
      IMPORTING
        document_data              = maininfo
      TABLES
        attachment_list            = attachments
      EXCEPTIONS
        document_id_not_exist      = 1
        operation_no_authorization = 2
        x_error                    = 3
        OTHERS                     = 4.
    IF sy-subrc <> 0.
      CONTINUE.
    ENDIF.

    LOOP AT attachments.
      IF attachments-att_size > p_size.
        CONCATENATE 'Document' maininfo-obj_descr 'have a big files'
          INTO ltext SEPARATED BY space.
        WRITE:/ ltext.
        CONCATENATE 'Troublemaker:' maininfo-creat_name
          INTO ltext SEPARATED BY space.
        WRITE:/ ltext.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDLOOP.


Удаление можно реализовать через SO_DOCUMENT_DELETE_API1, но лучше посмотреть в сторону удаления самого файла, а не документа.



на єтом этапе всегда возвращается код ошибки document_id_not_exist. почему?

Code:
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
      EXPORTING
        document_id                = document_id
      IMPORTING
        document_data              = maininfo
      TABLES
        attachment_list            = attachments
      EXCEPTIONS
        document_id_not_exist      = 1
        operation_no_authorization = 2
        x_error                    = 3
        OTHERS                     = 4.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, янв 11 2010, 11:07 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Потому что метод перебора. Документы RAW* - это все офисные документы, а FOLDER I - это только входящая почта. Поэтому такой связи вполне может и не быть.
Можете поступить от обратного - сперва выбрать RAW документы, а в цикле уже перебрать все значения FOLDER (см. домен SO_FOL_RG). Связка одного из них точно вернет данные без эксепшена.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, янв 11 2010, 11:21 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
John Doe написал:
Потому что метод перебора. Документы RAW* - это все офисные документы, а FOLDER I - это только входящая почта. Поэтому такой связи вполне может и не быть.
Можете поступить от обратного - сперва выбрать RAW документы, а в цикле уже перебрать все значения FOLDER (см. домен SO_FOL_RG). Связка одного из них точно вернет данные без эксепшена.


А можно подробнее? Или подскажите где можно почитать про сап почту (как работает, где хранится... связи...).
А нельзя отслеживать и удалять сообщения и вложения путём запросов по таблицам не используя ФМы? Ведь на верняка где то записаны сообщения и размеры их вложений.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Пн, янв 11 2010, 11:33 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Пользуйтесь дебагером при вызове SO_DOCUMENT_READ_API1. Это расширит кругозор, имхо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Ср, янв 13 2010, 14:51 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 13 2006, 16:44
Сообщения: 55
Пол: Мужской
А почему не встроить проверку на этапе отправки?:) Чтобы такие большие письма не отправлялись, а файлы даже не аттачились?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Ср, янв 13 2010, 15:12 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 08 2008, 14:44
Сообщения: 81
QSpeller написал:
А почему не встроить проверку на этапе отправки?:) Чтобы такие большие письма не отправлялись, а файлы даже не аттачились?


И как это реализовать? Особенно интересует как сделать что б не аттачились?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP почта
СообщениеДобавлено: Чт, янв 14 2010, 15:13 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 13 2006, 16:44
Сообщения: 55
Пол: Мужской
excalibur написал(а):
И как это реализовать? Особенно интересует как сделать что б не аттачились?

Не знаю, но я бы полез в отладчике искать место, куда запихнуть Enhancement. Не думаю, что это будет слишком сложно. Собственно там же в отладчике может попасться на глаза и бадишка какая-нибудь:)
Просто на мой взгляд для пользователей такой вариант будет куда удобнее и прозрачнее, чем таинственное исчезновение отправленных писем. А уж искать куда впихнуть enhancement, дело программиста.

А еще можно поинтересоваться у базисников - неужто в SAP-е нельзя задать максимальный размер аттачмента?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

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


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

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


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

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