Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: jacknk88 от Декабрь 05, 2012, 02:15:32 pm

Название: История изменений таблиц
Отправлено: jacknk88 от Декабрь 05, 2012, 02:15:32 pm
есть некая таблица и программа, которая позволяет вносить изменения в эту таблицу....надо создать что-то вроде истории изменений для этой таблички...есть какие-нибудь примеры?...
единственное что нашел это программа RSSCD100
если кто делал, напишите, пожалуйста, логику....в смысле, например, создать дополнительную таблицу, потом программу с такими-то ФМ  и т.д.

может есть какие статьи или курсы
Название: Re: История изменений таблиц
Отправлено: Uukrul от Декабрь 05, 2012, 04:55:52 pm
У каждой таблицы на закладке технические параметры есть флажок: "Запись в журнал изменений данных". на ней жмешь справку и читаешь, как активировать эту функциональность. Я с этим не разбирался.
Название: Re: История изменений таблиц
Отправлено: jacknk88 от Декабрь 06, 2012, 09:45:06 am
спасибо
вот полезные ссылки

http://help.sap.com/saphelp_46c/helpdata/ru/7a/9dcb3ad84011d1a5910000e82deaaa/content.htm
http://sidadm.blogspot.ru/2009/07/sap.html
http://www.sapnet.ru/viewtopic.php?p=751
Название: Re: История изменений таблиц
Отправлено: jacknk88 от Декабрь 12, 2012, 09:35:55 am
есть один момент:
допустим есть таблица Z_TAB, для которой надо вывести на экран журнал изменений с помощью стандартной проги RSVTPROT
так вот,
для того, чтобы вывести данные из журнала изменений идет считывание таблицы  tddat, а затем,
1) если записи нет с именем Z_TAB, то на экран ничего не выводится
2) если в этой табличке есть запись с именем нашей таблицы Z_TAB, вызывается ФМ VIEW_AUTHORITY_CHECK....

кто-нибудь знает и может пояснить что это за таблица tddat?
зачем ее считывать и зачем там должна быть запись о нашей табличке?
что будет значить эта запись?
и почему потом вызывается ФМ VIEW_AUTHORITY_CHECK?

PS:

программа RSVTPROT
форма FORM check_authority
Код: You are not allowed to view links. Register or Login
FORM check_authority USING    p_ddobj TYPE s_logv_type      "UF280104
                              p_acc_no_auth_gr TYPE xfeld
                   CHANGING p_tab_da TYPE c
                            p_sellist TYPE sellist_type
                            p_no_authority TYPE stprt_tablist
                            p_no_authority_group TYPE stprt_tablist.

  DATA: w_tddat TYPE tddat,                                 "#EC NEEDED
        oc_inst TYPE REF TO cl_viewfields_org_crit.

  p_tab_da = false.
  SELECT SINGLE * FROM tddat INTO w_tddat
   WHERE tabname = p_ddobj-viewname.                        "UF280104
  IF sy-subrc <> 0.                                         "UF280104b
    IF p_acc_no_auth_gr = true.
      CLEAR sy-subrc.
    ELSEIF NOT p_ddobj-maintview IS INITIAL
     AND p_ddobj-maintview <> p_ddobj-viewname.
* view- or table variant does not need to be assigned to an
* authorisation group --> look for base view
      SELECT SINGLE * FROM tddat INTO w_tddat
       WHERE tabname = p_ddobj-maintview.
    ENDIF.                                                  "UF280104e
  ENDIF.
  IF sy-subrc = 0.
    CALL FUNCTION 'VIEW_AUTHORITY_CHECK'
      EXPORTING
        view_action                          = 'S'
        view_name                           = p_ddobj-viewname "UF280104
        no_warning_for_clientindep           = 'X'
      CHANGING
        org_crit_inst                        = oc_inst
      EXCEPTIONS
*      INVALID_ACTION                       = 1
        no_authority                         = 2
        no_clientindependent_authority       = 3
        table_not_found                      = 4
        no_linedependent_authority           = 5
        OTHERS                               = 6.
    CASE sy-subrc.
      WHEN 0 OR 3 OR 4.
        p_tab_da = true.
        IF NOT oc_inst IS INITIAL.
          REFRESH p_sellist.
          CALL METHOD oc_inst->convert_oc_selections
            EXPORTING
              activity   = '03'
            IMPORTING
              oc_vimsell = p_sellist.
        ENDIF.
      WHEN OTHERS.
        APPEND p_ddobj-viewname TO p_no_authority.          "UF280104
    ENDCASE.
  ELSE.
    APPEND p_ddobj-viewname TO p_no_authority_group.        "UF280104
  ENDIF.
Название: Re: История изменений таблиц
Отправлено: Uukrul от Декабрь 12, 2012, 10:42:59 am
You are not allowed to view links. Register or Login
кто-нибудь знает и может пояснить что это за таблица tddat?
зачем ее считывать и зачем там должна быть запись о нашей табличке?
что будет значить эта запись?
Ну просто проверка полномочий на права ведения и просмотра данных этой таблиц. Обычно базисом управляется типа кому и что можно смотреть.
Название: Re: История изменений таблиц
Отправлено: jacknk88 от Декабрь 12, 2012, 11:16:03 am
тогда н6е понятно почему после
Код: You are not allowed to view links. Register or Login
SELECT SINGLE * FROM tddat INTO w_tddat
   WHERE tabname = p_ddobj-viewname.
идет еще и такая проверка

Код: You are not allowed to view links. Register or Login
IF sy-subrc = 0.
    CALL FUNCTION 'VIEW_AUTHORITY_CHECK'
      EXPORTING
        view_action                          = 'S'
        view_name                           = p_ddobj-viewname "UF280104
        no_warning_for_clientindep           = 'X'
      CHANGING
        org_crit_inst                        = oc_inst
      EXCEPTIONS
*      INVALID_ACTION                       = 1
        no_authority                         = 2
        no_clientindependent_authority       = 3
        table_not_found                      = 4
        no_linedependent_authority           = 5
        OTHERS                               = 6.
Название: Re: История изменений таблиц
Отправлено: Uukrul от Декабрь 12, 2012, 12:51:27 pm
You are not allowed to view links. Register or Login
тогда н6е понятно почему после
Что не понятно? Если запись с именем таблицы, есть в этой таблице TDDAT, то это значит что администратор  системы посчитал данную таблицу важной, точнее информацию которая содержится в этой таблице важной. Поэтому после этого выполняется проверка полномочий для пользователя, на доступ к данным такой таблицы. Иначе если имени таблицы там нет, т.е. SUBRC <> 0, тогда проверку на доступ к данным выполнять не требуется... что не понятно я не понял. Похоже в целом, не понятна концепция проверки полномочий в SAP.
Название: Re: История изменений таблиц
Отправлено: jacknk88 от Декабрь 12, 2012, 02:08:05 pm
спасибо)))

Цитировать
Похоже в целом, не понятна концепция проверки полномочий в SAP
я с полномочиями первый раз работаю.....и только сейчас понимать начинаю что и как...