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

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


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

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


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

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