User Audit Trail for a custom table.

Hello all. I need to know the correct and accurate way to user audit for a custom table. To elaborate further, I have a table catering to sanctioned strength of employees in a particular Cost Center, the entries have been deleted all together by someone, and I need to know the way to recover the data and to identify the user in question. Note, I have used STAT and have foundno results, and standard user audit trail are turned off.
Any help or push in the right direction would be highly appreciated.
P.S: any additional technical details on the table structure can be provided for further analysis if needed.

Try to add your custom table and table fields in the below views
V_T585A
V_T585B
V_T585C
After doing this your custom table changes gets stored in the pcl4 document . If the custom table  is master data table  then from the standard Audit trail report you can see the logged changes in custom table also by providing the custom infotype number.
if its is custom customizing table , need to explore

Similar Messages

  • User exit/BADI for updating custom table in MB1B transaction-

    Dear All,
    When performing a material to material conversion in MB1B transaction for  batch managed materials,system is creating a new batch by copying the characteristics of issuing material/batch.The details of the new batch created are updated in standard batch tables(MCH1,MCHA,MCHA).
    The requirement is when the new batch is created,the batch details and characteristics has to be stamped in a custom table.
    Kindly suggest a user exit/BAIi available for updating the same in the custom table.
    Regards,
    Deepak

    Deepak, Exits for MB1B are
    MBCF0002            Customer function exit: Segment text in material doc. item
    MBCF0005            Material document item for goods receipt/issue slip
    MBCF0006            Customer function for WBS element
    MBCF0007            Customer function exit: Updating a reservation
    MBCF0009            Filling the storage location field
    MBCF0010            Customer exit: Create reservation BAPI_RESERVATION_CREATE1
    MBCF0011            Read from RESB and RKPF for print list in  MB26
    MB_CF001            Customer Function Exit in the Case of Updating a Mat. Doc.

  • Audit trails for ammendments to master data

    Hi dear all SAPians
    My client ask :   to recommend maintaining audit trails for ammendments to master data>
    what is its meaning and what is its purpose >
    your ans will be highly appreciable by heart and point>
    M Swadhin

    Hi,
    You can find SAP audit toolbox via transaction SECR.
    Audit logs may have following meaning:
    The Security Audit Log is a tool designed for auditors who need to take a detailed look at what occurs in the SAP System. By activating the audit log, you keep a record of those activities you consider relevant for auditing. You can then access this information for evaluation in the form of an audit analysis report.
    The audit log's main objective is to record:
    u2022 Security-related changes to the SAP System environment (for example, changes to user master records)
    u2022 Information that provides a higher level of transparency (for example, successful and unsuccessful logon attempts)
    u2022 Information that enables the reconstruction of a series of events (for example, successful or unsuccessful transaction starts)
    Specifically, you can record the following information in the Security Audit Log:
    u2022 Successful and unsuccessful dialog logon attempts
    u2022 Successful and unsuccessful RFC logon attempts
    u2022 RFC calls to function modules
    u2022 Successful and unsuccessful transaction starts
    u2022 Successful and unsuccessful report starts
    u2022 Changes to user master records
    u2022 Changes to the audit configuration
    You can find more details here: http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCSTADM/BCCSTSAL.pdf
    Cheers

  • Creating 2 table maintainance views for one custom table

    Hello All,
    I want to create 2 table maintainace views for one custom table.
    I know how to create table maintainace but I want to know whether we can create only one maintainance view or we cal also create 2 maintainace views for a single custom table.
    Regards
    Mahesh

    Hello,
    You can create as many maintenance views one one table as you want.
    Kind regards,
    Bart

  • HELP NEEDED: Use a new record for a customized table as a workflow trigger

    Hi SAP Workflow Gurus,
    Good day!
    One of our requirements is to have the creation of a new record in a custom database table trigger a workflow. I read and followed the steps as indicated in this link
    http://www.****************/Tutorials/Workflow/Table/events.htm
    As a summary, here is what I did:
    1. Created a subroutine for the custom table ZPA2003 for the create event
    2. Defined this event as a trigger for the custom workflow WS90000019
    3. Maintained and activated the event linkage via SWETYPV
    Basically I tried following the instructions indicated on the link
    Note that the entries for the custom table are created via a function module.
    Now during testing of the workflow, the system was able to complete the notification message. However, when I triggered the event via creation of the entry in the custom db table nothing happened
    1. Is there a way to debug/find out whether the link between the subroutine in the table and event itself are connected?
    2. I also tried running the event trace to check the activities executed but found nothing.
    Can you guys help me check on what I may have missed out?
    Regards,

    Hi All,
    Basically these are the requirements for the work schedule substitution:
    1. Employee enters the request via ESS (custom portal transaction)
    2. Upon saving of the entry (request) in a custom  table, this should trigger the workflow at the backend
    3. The Manager should then receive a work item in his Universal Worklist at the MSS side of the portal
    4. Upon clicking on the work item, a new screen will pop up showing the work schedule substitution details as well as an interface which will allow him to enter his/her usage decision
    5. Depending on the decision, the workflow must execute the necessary notifications as well as changes in the custom and PA2003 tables
    Now, we have accomplished step 1 and I am currently in the process for step 2. Now I have some queries:
    1. For the Manager to view and approve the substitution details, I used two methods for each process (view and approve) since our ABAPer mentioned that this cannot be done in 1 function module. Is there a way to simplify this step or is it really valid that they need to be executed in 2 different methods?
    2. As per our ABAPer, function Modules only import and export variables; they do not have the facility of say having tags on the details being displayed. Hence, if the details are 10001 (Employee Number), 10/20/2011 (Start Date), 10/25/2011 (End Date) the output would be 10001, 10/20/2011, 10/25/2011. Is there a way within the function module (or dynpro interface) to show it like this: Employee Number: 10001
                               Start Date: 10/20/2011
                               End Date: 10/25/2011
    3.  Speaking of dynpro applications, do I need to still develop one to allow the Manager to view and approve/reject the request via the MSS portal upon accessing the work item via the UWL? How would the work item go about calling the dynpro application? or is this even possible?
    It would have been easier if the facility would not pass through workflows since it will be just direct web dynpro/ABAP calls. Having to include it as a work item in the UWL puts a certain twist to it
    Your inputs are well-appreciated.
    Regards,

  • Audit Trail vs Audit Trail for Assignments for e-Recruiting

    Hi,
    We are using e-Recruiting on EHP3 sp05 so the administrator still has the BSP interface. On here there are two links one for Audit Trail and another for Audit Trail for Assignments. We can find data under Audit Trail (every time a status change activity is run it updates the audit trail), however we cannot find anything under Audit Trail for Assignments. Does anyone know what this is for and how you get this populated?
    Many thanks
    Tom

    Hello,
    I could find the below information on SAP Help. Please check if this is anyway useful.
    The recruiting administrator can use the iView "Access Audit Trails" to get access to the Audit Trail of a candidate profile. The recruiting administrator can then search for candidates and call an overview of the data of the different profile versions. In addition to the profile versions, the recruiting administrator can also display the candidates' assignments that were derived from the search result
    Procedure
           1.      In the services of your work overview, choose Access Audit Trails under Transaction Data Management.
           2.      Specify selection criteria such as the first and last name and e-mail address of the candidates for whom you want to view the audit trails and then choose Search. The system displays a list with the search results. If audit trails exist for a candidate, the system displays a link to each of them in the corresponding columns of the list.
           3.      Double-click an entry in these columns to open the relevant audit trail. The system displays a list with all versions of the audit trail.
           4.      Select a version by clicking it. The system displays the Data Overview of Candidate or the Data Overview of Assignment.
    http://help.sap.com/erp2005_ehp_04/helpdata/EN/f1/cc084136b5f423e10000000a155106/frameset.htm
    http://help.sap.com/erp2005_ehp_04/helpdata/EN/07/091c174ad74c6ba5f8011c9f78e839/frameset.htm
    Best regards
    G Raj

  • How to create a authority group for our customer table(se54)?

    Hi,everyone:
          I found a problem when I create a authority group for my customer table,I can't write the creation
    to a request no(can't assign to a package),I want to know whether the authority group I created can be
    transport to the PRD when I realse the request no.
    Thanks!!!

    Auth Group is nothing but a table entry so for sure it can be transported to any environment, before Assigning any Auth group create one in SE54 when you try saving it it would ask you the TR number which you can transport to PROD.

  • System audit trail for FBL5N and Mass Change use

    Hello,
    My client carried out the foll actions yesterday.
    Called TCode FBL5N using a range of customers
    When the line items were displayed, they selected some of them and then went into Environment - Mass Change - New Values
    Here they input a new value to the Dunning Block field.
    Then they saved it and came out.
    Later they realized that they should not have made the changes to some of the records. Unfortunately, now they dont remember either the customer range for which they had run FBL5N or the line items which they had changed.
    So, the question is: is there any way by studying the audit trail or system history, one can find out which are the documents/line items that were changed yesterday within a specific time frame using TCode FBL5N and then Mass Change?
    Please see if you can provide some input.
    Regards,
    Suvarghya Dutta

    Hello,
    It must have been kept to "All"
    From future, all your transactions will have security audit log.
    If you want to see the system log, then visit SM21.
    Regards,
    Ravi

  • User audit trail in a SOA scenario

    Hi All,
    In a SOA scenario when using a composite application calling many webservices who on their turn call asynchronous jms calls to backend applications. How can you audit the user trail? So can you tell of all the backend transactions touched by this SOA scenario who was responsible of changing the data.
    To illustrate the issue:
    The typical SOA scenario, we have a web application running in a portal, the logged on portal user is accessing this web application. The web application is calling web services using the logged on user credentials. The webservices call an asynchronous message in a message oriented middleware solution using a service user. This asynchronous message triggers a bapi in R/3 using this service user. In the logging of the bapi call in R/3 the bapi is called by the service user and not the portal user id.
    Can somebody point me to articles regarding this topic or best practices?
    regards,
    Richard

    Thanks Abhishek,
    The first link was helpfull but actually underlines the problem that I have. The second link has no relevance to the problem.
    But if we zoom in on de first link: http://help.sap.com/saphelp_erp2004/helpdata/en/cb/b0ceb823984a62bf017a42179af99a/frameset.htm
    This is about the security on JMS service.
    So the question remains how do you deal with an audit trail if the user calling webservices is different than the service user calling the bapi.
    regards,
    Richard

  • Create Object for archiving Custom Table

    Hi guru!!
    I have a problem, I must create a archiving object for custom table..
    I must create a report for READ, DELETE and ARCHIVING this type of table..
    colud you help me?
    thanks a lot guru!!!

    Hi,
    Steps..
    GO TO SE11
    Give the table name
    Press change..
    In the menu..UTILITIES -> TABLE MAINTENANCE GENERATOR.
    GIve the authorization group &NC&
    Choose the single step radio button..
    Give the screen number 1.
    Give the function group..Give the table name itself as the function group.
    Press create. button.
    Now the screen is generated..go to sm30 and maintain the table entries..
    Thanks,
    Naren

  • Table maintenance generator for a custom table

    Hi All,
    I have a requirement.
    I had created a custom table with 5 fields with partner_id as the key field.
    I had generated the table maintenance for this.
    But, when i maintain via sm30, the maintenance screen should display 7 fields, i.e
    for the partnerid, the firstname and the lastname has to be display as the second and third column.
    So, in the maintnenace screen sm30, i should have 7 fields display... but actually in real custom table, there will be only five fields (except firstname and lastname of partner).
    Please guide me how to do this development.
    Do i need to change the code generated via table maintenance and add these two fields in the table control and code to retreive the values for the firstname and lastname.
    Please help me.
    Thanks,
    Jaffer ali.S

    it is not a wise idea to add your custom fields in standard sap table maintenance generator screens..
    each time you do a re - generate, (in case you added a new field in the table, or changed a data element, ) you will have to regenerate your tabe maintenance generator, and you will lose your code...
    in this case, it will be better to create a custom screen with these fields and write code to populate the table..
    or to make it easy, create a maintenance view with all fields required,

  • How to load XML audit trail into an oracle table

    Gents,
    I have a task to load XML sys audit information into a database table.
    Here is a sample audit.xml file:
    <?xml version="1.0" encoding="UTF-8"?>
    <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_1.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_1.xsd">
    <Version>11.1</Version>
    <AuditRecord><Audit_Type>8</Audit_Type><EntryId>1</EntryId><Extended_Timestamp>2011-05-04T15:44:08.311370</Extended_Timestamp><DB_User>/</DB_User><OS_User>oracle</OS_User><Userhost>corpdb399d</Userhost><OS_Process>720942</OS_Process><Terminal>pts/11</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege>
    <Sql_Text>CONNECT</Sql_Text>
    </AuditRecord>
    <AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>1</StatementId><EntryId>2</EntryId><Extended_Timestamp>2011-05-04T15:44:12.496857</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>oracle</Ext_Name><OS_User>oracle</OS_User><Userhost>corpdb399d</Userhost><OS_Process>720942</OS_Process><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege>
    <Sql_Text>ALTER DATABASE OPEN</Sql_Text>
    </AuditRecord>
    <AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>4</StatementId><EntryId>3</EntryId><Extended_Timestamp>2011-05-04T15:44:32.863959</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>oracle</Ext_Name><OS_User>oracle</OS_User><Userhost>corpdb399d</Userhost><OS_Process>720942</OS_Process><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege>
    <Sql_Text>SELECT name, value
    FROM gv$parameter
    WHERE name LIKE '%audit%'</Sql_Text>
    </AuditRecord>
    <AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>5</StatementId><EntryId>4</EntryId><Extended_Timestamp>2011-05-04T15:44:50.448443</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>oracle</Ext_Name><OS_User>oracle</OS_User><Userhost>corpdb399d</Userhost><OS_Process>720942</OS_Process><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege>
    <Sql_Text>select count(*) from v$session</Sql_Text>
    </AuditRecord>
    <AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>6</StatementId><EntryId>5</EntryId><Extended_Timestamp>2011-05-04T15:46:37.680404</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>oracle</Ext_Name><OS_User>oracle</OS_User><Userhost>corpdb399d</Userhost><OS_Process>720942</OS_Process><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege>
    <Sql_Text>select count(*) from v$session</Sql_Text>
    </AuditRecord>
    </Audit>
    I am using the following code to load it:
    create or replace directory test_dir as '/dbms/oracle/work/sh82993'
    drop table xxrp_acct_header
    create table xxrp_acct_header (
    Audit_Type number,
    Sql_Text varchar2(100)
    DECLARE
    acct_doc xmltype := xmltype( bfilename('TEST_DIR','dbmsdev_ora_720942_1.xml')
    , nls_charset_id('UTF-8') );
    BEGIN
    insert into xxrp_acct_header (Audit_Type, Sql_Text)
    select *
    from xmltable(
    '/Audit/AuditRecord'
    passing acct_doc
    columns Audit_Type path 'Audit_Type'
    , Sql_Text path 'Sql_Text'
    END;
    COMMIT;
    select * from xxrp_acct_header
    However I am having problems with the <Audit .... > tag.
    If a strip the rest following Audit I can get it working but if I leave the part:
    xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_1.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_1.xsd">
    the loading will not work.
    Any ideas?
    All will be appreciated.
    steven

    odie_63 wrote:
    Hi,
    The XML has a default namespace, so you must declare it in XMLTable :
    SELECT *
    FROM XMLTable(
    XMLNamespaces(default 'http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_1.xsd'),
    '/Audit/AuditRecord'
    passing acct_doc
    columns Audit_Type number        path 'Audit_Type'
    , Sql_Text   varchar2(100) path 'Sql_Text'
    Hi ,
    Can you please tell how can I load the data in the column "Extended_Timestamp" , I defined the column with datatype "TIMESTAMP" in the table but its giving error 'ORA-01830: date format picture ends before converting entire input string" .
    I also tried to add a column with datatype "TIMESTAMP(6) with time Zone" but still giving the same error. What shld be the datatype of the column which will store the corresponding data from extended_timestamp or do I need to format the insert statement , if yes then how ?
    Thanks.

  • Implementing a varchar multi-valued attribute for my customer table

    I usually used to implement numerical multiple value attributes for my customers, such as phone number by having a separate table, as below:-
    •     >>Desc customer (PK)
    Customer_ID
    Customer_Fname
    •     >>Desc Customer_Phone
    Customer_ID
    Phone_number
    Phone_Type
    Where both PK (Customer_ID & Phone_number)
    But now i want to have a varchar multiple value attribute called preferences (such as reading, shopping, swimming, etc)
    So here should i design my Customer_Favorite as
    Desc customer_favourite Favourite_desc
    Cusomet_ID (FK)
    Having PK (Favourite_desc & Cusomet_ID)
    Or
    Desc customer_favourite
    Favorite_ID
    Favourite_desc
    Cusomet_ID
    Having Favourite_ID as PK, TO AVOID HAVING A VARCHAR FIELD IN MY pk as in the first approach.
    Thanks

    user11120147 wrote:
    I usually used to implement numerical multiple value attributes for my customers, such as phone number by having a separate table, as below:-
    •     >>Desc customer (PK)
    Customer_ID
    Customer_Fname
    •     >>Desc Customer_Phone
    Customer_ID
    Phone_number
    Phone_Type
    Where both PK (Customer_ID & Phone_number)
    But now i want to have a varchar multiple value attribute called preferences (such as reading, shopping, swimming, etc)
    So here should i design my Customer_Favorite as
    Desc customer_favourite Favourite_desc
    Cusomet_ID (FK)
    Having PK (Favourite_desc & Cusomet_ID)
    Or
    Desc customer_favourite
    Favorite_ID
    Favourite_desc
    Cusomet_ID
    Having Favourite_ID as PK, TO AVOID HAVING A VARCHAR FIELD IN MY pk as in the first approach.What's wrong with having a varchar as the PK???
    ThanksDesign to Third Normal Form.
    Edited by: EdStevens on Jul 9, 2011 2:45 PM

  • Help req for check customer table maintenance with XD02 if not throw error

    hello ABAP GURUS,
    check customer of the table maintenance with XD02 if not throw error i have given the codition for passing the values in the table but before that it has to check whether the customer i am passing in to the table is a customer from xd02.Here whatever no i am passing it is accepting it should not happen, but when i give the customer which is not a customer it should not accept but it has to throw the message as 'customer does not exist.Its urgent please help me
    TYPES: BEGIN OF TY_KNVI,
    KUNNR TYPE KUNNR,
    TATYP TYPE TATYP,
    TAXKD TYPE TAKLD,
    END OF TY_KNVI.
    DATA : VALIDFROM TYPE GUEBG,
    VALIDTO TYPE GUEEN.
    DATA : IT_KNVI TYPE STANDARD TABLE OF TY_KNVI,
    WA_KNVI TYPE TY_KNVI OCCURS 0 WITH HEADER LINE.
    DATA : V_NAME TYPE SYUNAME.
    SELECT KUNNR
    TATYP
    TAXKD
    FROM KNVI
    INTO TABLE WA_KNVI
    WHERE KUNNR = YYV_CFORM-KUNNR
    AND TATYP = 'ZCST'
    AND TAXKD = '1'.
    V_NAME = SY-UNAME.
    YYV_CFORM-ENTEREDBY = V_NAME.
    IF SY-SUBRC NE 0.
    MESSAGE E000(E4) WITH 'Please change the tax classification of ZCST as' '1' ', in Sales Area Data'.
    ENDIF.
    I have used the following code to enter the data into the table maintenance it is working fine and throwing the error when the tax type is not the one which i have given in the select statements but the problem is when i have given the customer no which is not there in the XD02 tcode, it is accepting and showing the error message as MESSAGE E000(E4) WITH 'Please change the tax classification of ZCST as' '1' ', in Sales Area Data'. now i have to check the customer no from XD02 and if it is existing in that tcode it should allow to save in the table maintenance otherwise throw a message as the 'Customer no does not exist, this I am unable to write so how can i check please help me .
    thankx in advance.
    Edited by: soni khadary on Apr 22, 2008 7:55 AM

    Hi Kelly,
    I guess <wa_tab>-handle_style is of type lvc_t_styl therefore you can do the following:
    ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
    "I assume you know your non-key fields' names so you can use subrotuine to perform update on each of them
    ls_edit-fieldname =  'First field name' .
    PERFORM update ls_edit.
    ls_edit-fieldname =  'Second field name'.
    PERFORM update ls_edit.
    ls_edit-fieldname = 'Third field name'.
    PERFORM update ls_edit
    FORM update USING fs_edit type lvc_s_styl.
    field-symbols: <style_tab> type lvc_t_styl,
                         <style_wa> type lvc_s_styl.
    LOOP AT <tab> ASSIGNING <wa_tab>.
       if e_row = sy-tabix .
         "get you style table
         assign component 'HANDLE_STYLE' of structure <wa_tab> to <style_tab>.
         "as <style_tab> is typed fully you can read the row you are interested in
         read table <style_tab> assigning <style_wa> with key fieldname = fs_edit-fieldname
         if sy-subrc = 0.
           "update this entry
            <style_wa> = fs_edit.
    *        modify table <style_tab> from <style_wa>. 
         endif.
       endif.
    endloop.
    endform.
    Note!
    Though, this should work, the use of RTTI as Uwe suggested would be best practise approach as far as dynamic programming is concerned. Anyhow it is still up to you which one you pick.
    Regards
    Marcin
    I noticed now that this line is not necessary
    modify table <style_tab> from <style_wa>. 
    as we simply are working with field symbols, so changes made to <style_wa> are already visible in that table <style_tab>.
    Edited by: Marcin Pciak on Mar 15, 2009 12:44 PM

  • User exit needed for KDMAT (customer-material number )

    Hi! I need to find a user exit for filling in the customer-material number (KDMAT) in the Sales order. If there is not a cutomer material info record, the filed should be filled in with the Old material number from the Material master (MARA-BISMT). Does anyone knows such a user-exit.
    Thanks

    You can try with any of the following sale order user exits
    -  User exits in the program MV45AFZZ - USEREXIT_READ_DOCUMENT
    -  User-Exits in program MV45AFZB - USEREXIT_CHECK_VBAP
    -  User-Exits in program MV45AFZB - USEREXIT_CUST_MATERIAL_READ
    thanks
    G. Lakshmipathi

Maybe you are looking for