Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: jacknk88 от Декабрь 05, 2012, 02:15:32 pm
-
есть некая таблица и программа, которая позволяет вносить изменения в эту таблицу....надо создать что-то вроде истории изменений для этой таблички...есть какие-нибудь примеры?...
единственное что нашел это программа RSSCD100
если кто делал, напишите, пожалуйста, логику....в смысле, например, создать дополнительную таблицу, потом программу с такими-то ФМ и т.д.
может есть какие статьи или курсы
-
У каждой таблицы на закладке технические параметры есть флажок: "Запись в журнал изменений данных". на ней жмешь справку и читаешь, как активировать эту функциональность. Я с этим не разбирался.
-
спасибо
вот полезные ссылки
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
-
есть один момент:
допустим есть таблица Z_TAB, для которой надо вывести на экран журнал изменений с помощью стандартной проги RSVTPROT
так вот,
для того, чтобы вывести данные из журнала изменений идет считывание таблицы tddat, а затем,
1) если записи нет с именем Z_TAB, то на экран ничего не выводится
2) если в этой табличке есть запись с именем нашей таблицы Z_TAB, вызывается ФМ VIEW_AUTHORITY_CHECK....
кто-нибудь знает и может пояснить что это за таблица tddat?
зачем ее считывать и зачем там должна быть запись о нашей табличке?
что будет значить эта запись?
и почему потом вызывается ФМ VIEW_AUTHORITY_CHECK?
PS:
программа RSVTPROT
форма FORM check_authority
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.
-
кто-нибудь знает и может пояснить что это за таблица tddat?
зачем ее считывать и зачем там должна быть запись о нашей табличке?
что будет значить эта запись?
Ну просто проверка полномочий на права ведения и просмотра данных этой таблиц. Обычно базисом управляется типа кому и что можно смотреть.
-
тогда н6е понятно почему после
SELECT SINGLE * FROM tddat INTO w_tddat
WHERE tabname = p_ddobj-viewname.
идет еще и такая проверка
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.
-
тогда н6е понятно почему после
Что не понятно? Если запись с именем таблицы, есть в этой таблице TDDAT, то это значит что администратор системы посчитал данную таблицу важной, точнее информацию которая содержится в этой таблице важной. Поэтому после этого выполняется проверка полномочий для пользователя, на доступ к данным такой таблицы. Иначе если имени таблицы там нет, т.е. SUBRC <> 0, тогда проверку на доступ к данным выполнять не требуется... что не понятно я не понял. Похоже в целом, не понятна концепция проверки полномочий в SAP.
-
спасибо)))
Похоже в целом, не понятна концепция проверки полномочий в SAP
я с полномочиями первый раз работаю.....и только сейчас понимать начинаю что и как...