Автор Тема: История изменений таблиц  (Прочитано 12057 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
История изменений таблиц
« : Декабрь 05, 2012, 02:15:32 pm »
есть некая таблица и программа, которая позволяет вносить изменения в эту таблицу....надо создать что-то вроде истории изменений для этой таблички...есть какие-нибудь примеры?...
единственное что нашел это программа RSSCD100
если кто делал, напишите, пожалуйста, логику....в смысле, например, создать дополнительную таблицу, потом программу с такими-то ФМ  и т.д.

может есть какие статьи или курсы
« Последнее редактирование: Декабрь 05, 2012, 02:22:15 pm от jacknk88 »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 766
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: История изменений таблиц
« Ответ #1 : Декабрь 05, 2012, 04:55:52 pm »
У каждой таблицы на закладке технические параметры есть флажок: "Запись в журнал изменений данных". на ней жмешь справку и читаешь, как активировать эту функциональность. Я с этим не разбирался.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: История изменений таблиц
« Ответ #2 : Декабрь 06, 2012, 09:45:06 am »
спасибо
вот полезные ссылки

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: История изменений таблиц
« Ответ #3 : Декабрь 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.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 766
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: История изменений таблиц
« Ответ #4 : Декабрь 12, 2012, 10:42:59 am »
You are not allowed to view links. Register or Login
кто-нибудь знает и может пояснить что это за таблица tddat?
зачем ее считывать и зачем там должна быть запись о нашей табличке?
что будет значить эта запись?
Ну просто проверка полномочий на права ведения и просмотра данных этой таблиц. Обычно базисом управляется типа кому и что можно смотреть.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: История изменений таблиц
« Ответ #5 : Декабрь 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.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 766
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: История изменений таблиц
« Ответ #6 : Декабрь 12, 2012, 12:51:27 pm »
You are not allowed to view links. Register or Login
тогда н6е понятно почему после
Что не понятно? Если запись с именем таблицы, есть в этой таблице TDDAT, то это значит что администратор  системы посчитал данную таблицу важной, точнее информацию которая содержится в этой таблице важной. Поэтому после этого выполняется проверка полномочий для пользователя, на доступ к данным такой таблицы. Иначе если имени таблицы там нет, т.е. SUBRC <> 0, тогда проверку на доступ к данным выполнять не требуется... что не понятно я не понял. Похоже в целом, не понятна концепция проверки полномочий в SAP.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: История изменений таблиц
« Ответ #7 : Декабрь 12, 2012, 02:08:05 pm »
спасибо)))

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