API to find out all unsaved changes since last safe

I am currently implement a cPro Subsystem.
During the save operation, I would like to analyze the changes that the user has done since the last saving (e.g. change in the field "GROUPING" of a task, or newly added phase, or new assignment of a business partner to a role).
Is there a service class, an API or something similar by which I can find that out?
Some kind of change manager or change log class?
Best regards,
Daniel

Hi Daniel,
The class CL_DPR_APPL_OBJECT_CHANGE_MNGR should store the information you wanted. The problem is that the attribute
MT_UPDATED_OBJECTS is private and can not be retrieved externally.
Actually, if a sub system is implmented, typically the following three methods should be added:
ON_OBJECT_CREATE     Instance Method     Private          Event handler for cPro Object create
ON_OBJECT_CHANGE     Instance Method     Private          Event handler for cPro Object change
ON_OBJECT_DELETE     Instance Method     Private          Event handler for cPro Object delete
they should re-act of the change of cProject object,
e.g. ON_OBJECT_CHANGE
Event handler for                
Class/interface CL_DPR_ENTITY    
Event           CHANGED          
Kind regards,
Zhenbo

Similar Messages

  • How to find procedures which have changed since the previous day

    Hi All,
    My requirement is to find out the procedures which have been changed since last day i.e the procedures which were compiled in the previous day.
    How could I find this using query. Please help me out.
    Thanks in Advance
    Regards,
    Srikanth

    All objects, visible to your schema, that were created or modified during the previous day
    select OBJECT_TYPE
          ,OBJECT_NAME
    from   all_objects
    where  trunc(LAST_DDL_TIME) = trunc(sysdate-1)
    order  by object_type
             ,object_name;

  • How to generate a report from crm table to find out user status changes

    Dear all,
    Could you please help me on generating a report from SAP CRM table level
    to find out user status changes in crm orders for a specific period of time?
    Thanks in advance,
    Regards,
    Shaik

    Hi Shaik.
    You would not need to write report for this. You need to create a Table view mainenance for the CRMD_ORDERADM_H or CRMD_ORDERADM_I for whichever  you need.
    Follow the below or search on google for more on table view maintenance.
    Go to SE11, give the table name and click on change. Then Go to utilities--> Table maintenance generator.
    In the table maintenance generator screen, you should give Authorization Group,
    Function Group name (Function Group name can be same as table name),
    Maintenance type can be one step or two step, usually you will create with one
    step. You should give maintenance screen number. After clicking on create button,
    a table maintenance generator will be created.
    To check it go to SM30 . In SM30, you find display, Maintain options.
    You can view the table contents by choosing Display and  supplying the selection criteria of dates.
    Regards
    Apoorva

  • Find out all usages of an annotation at runtime

    Is there any way to find out all usages of an annotation at runtime? Hypothetically, something like Annotation.getDeclaringElements() which would return AnnotatedElements to which the specific annotation has been applied?
    JSR 269 is out of question, as I need this at runtime (correct me, if my requirement does not imply my claim here). Think of a framework which needs to discover all uses of its own annotations in an arbitrary target environment. In addition, classes loaded at arbitrary points in runtime should be detectable if the discovery is made afterwards.
    Performance is not critical: enumerating all classes of all ClassLoaders and checking each class and its members would do. Is there a way to enumerate all classes for this purpose?
    Is there any way to hack around any/all limitations, using whatever non-elegant, ugly ways to achieve this?

    hey. I don't know if there is anything like that out of the box, but might use bytecode instrumentation/analysis with the -javaagent-switch. It will give you the chance to analyse everyclass that is getting loaded into the JVM. Look here for more info: http://java.sun.com/javase/6/docs/api/java/lang/instrument/package-summary.html
    I think the catch with the classloader is, that you never know if another class will be loaded in future.
    joh

  • Is there a way to find out all the apps that I've deleted on my iPhone? If so how?

    Is there a way to find out all the apps that I have deleted on my iPhone ? If so how?
    And all so if I have cleared my history on safari but not in the settings is there a way to retrieve the last sites visited? If so how?
    Thanks.

    What is iOS 5 ?
    http://support.apple.com/kb/dl1521
    And does my iPhone 4 as that?
    Settings>>General>>About>>Version
    (Used my iTouch as example)
    And if it deos how can I see the apps that I've deleted ?
    App Store>>Updates>>Purchased
    Scroll through the list of apps that your purchased, and if you remember the apps that you delete, the search will be a lot easier.
    If you don't have iOS 5, you can update your iPhone and since you have an iPhone 4, you can only go up to iOS 6.1.3
    iOS: How to update your iPhone, iPad, or iPod touch
    Hope all this helps.
    Message was edited by: keeferaf

  • Find out all SAP Standard Objects which are Modify

    Hi
    How can i find out all SAP Standard Objects which are Modify?
    Regards
    Vikram

    Hi,
    You can find all SAP objects list via t-code SWO2, as to these objects, if you want to change anyone of them, you should apply an access key in advance from http://service.sap.com, otherwise you can not modify any object in SAP system.
    Good luck
    Z.T

  • I want to buy a hard case for my macbook pro, but I don't know what year it is. When I use the serial number to try and find out, all it says is, "~VIN,MacBook Pro (15-inch Glossy)". When I type that into amazon for a case it gives me nothing!

    I want to buy a hard case for my macbook pro, but I don't know what year it is. When I use the serial number to try and find out, all it says is, "~VIN,MacBook Pro (15-inch Glossy)". When I type that into amazon for a case it gives me nothing!

    Hi T,
    Either of these will give you the info you seek:
    http://www.appleserialnumberinfo.com/Desktop/index.php
    http://www.chipmunk.nl/klantenservice/applemodel.html

  • How to find out all user exits edited

    Hi All,
    Would you know how to find out all user exits have been ever edited?
    Can we find out those user exit by some tcode or table?
    Thank you very much
    Best Regards,
    Calvin
    Edited by: Sam Sum on Mar 2, 2009 5:09 AM

    Hi,
    Just try this in your system.
    Go to SE38 and give ZX* and press F4.
    Have a look at table MODATTR to find the active projects in your system.
    Regards
    Edited by: Rajvansh Ravi on Mar 2, 2009 5:17 AM

  • How to find out all the OKCODEs for a particular screen?

    I am working on t-code CL20N and trying to record with t-code SHDB, in the second screen when I press enter it is coming out, but when I run CL20N without SHDB it is going through all the screens perfectly, SHDB is not working for CL20N.
    Is there any other way to find out all the OKCODEs for a particular screen/s?

    Hi,
    First look for any push button or menu item which can take you to the second screen instead of hitting enter directly in tcode CL20N . If any such button exist in the TCode, u can use the same button in SHDB also for moving to the  second screen.
    Thanks,
    Rajinikanth G

  • How to find out the latest changes in Planning Book

    HI Experts,
    Please let me know, is there any way to find out who has changed the values in Planning Book and when ??

    Hi Srini,
    We also have a similar requirement wherein we want to know who has changed the values in DP. Fortunately we have an additional key figure, which we are not using at the moment. We intend to write a macro wherein we can copy the key figure that is to be monitored copied in that new key figure at every exit of the planning book(exit macro). When the old value is changed, we will copy the old value in the new key figure (using an exit macro) and also generate an data base alert which will help us to capture the details of the change, that is, user id, time of change and the quantity of change.
    Let me know if this suggestion suits your requirement.
    Rgds, Sandeep

  • Table Name or Function Module to find out all the Screens & Subscreens for

    Hello Experts,
          Table Name or Function Module to find out all the Screens & Subscreens for all T-Codes
    Helpful Answer will b rewarded
    Arif Shaik

    Hi Balaji,
       But TSTC only Gives the Program Name , T-Code and Screen but not all the Subscreen details
    Any other which U know

  • How to find out all the tables in a schema with a particular column

    Hi
    Is there a way to find out all the tables in schema1 that has col1 as one of the columns?

    select table_name from dba_tab_cols where owner='schema' and column_name='col1';

  • How to find out all the text elements in the report using Java?

    How to trace the contents of an rpt file?
    I am able to open the rpt file in my report viewer but can not trace it using the JAVA code.
    Actually, I need to find out all the text elements of rpt (Report) file and replace them with the contents of resource bundle.
    My Java code to open a report is given below:
    import com.crystaldecisions.reports.sdk.ISubreportClientDocument;
    import com.crystaldecisions.reports.sdk.ParameterFieldController;
    import com.crystaldecisions.reports.sdk.ReportClientDocument;
    import com.crystaldecisions.sdk.occa.report.data.ConnectionInfo;
    import com.crystaldecisions.sdk.occa.report.data.ConnectionInfos;
    import com.crystaldecisions.sdk.occa.report.data.Fields;
    import com.crystaldecisions.sdk.occa.report.data.IConnectionInfo;
    import com.crystaldecisions.sdk.occa.report.data.ParameterField;
    import com.crystaldecisions.sdk.occa.report.data.ParameterFieldDiscreteValue;
    import com.crystaldecisions.sdk.occa.report.data.Values;
    import com.crystaldecisions.sdk.occa.report.lib.IStrings;
    import com.crystaldecisions.sdk.occa.report.lib.PropertyBag;
    import com.crystaldecisions.sdk.occa.report.lib.PropertyBagHelper;
    import com.crystaldecisions.sdk.occa.report.lib.ReportSDKException;
    import com.crystaldecisions.sdk.occa.report.reportsource.IReportSource;
    public String viewRpt()
                   //1.) Setting Database Infos
                            IConnectionInfo iConnectionInfoObj=setDatabaseConnectionInfos();
                   //2.) Setting Report Path
                   String reportPath=u201DE:
    was60
    rptFilesLocation
    u201D;
                   reportPath=(reportPath!=null)?                                             reportPath:AppConstants.CONSTANTS.BLANK;
                   String reportName="report1.rpt";
                   String reportFullPath = reportPath +   rptName;
                 //3.) Setting Report Source
                             ReportClientDocument reportClientDoc = new ReportClientDocument();
                                              reportClientDoc.open(reportPath, 0);
                  IReportSource reportSource = reportClientDoc.getReportSource();
                  setReportSource(reportSource);
                  reportClientDoc.close();
              //4.) Setting the Fields Starts
              setFieldsCrystal(null);
              Fields fields = new Fields();
              ParameterField pfield1 = new ParameterField();
              Values vals1 = new Values();
              ParameterFieldDiscreteValue pfieldDV1 = new ParameterFieldDiscreteValue();
              pfield1.setName("@parameter1");
              pfieldDV1.setValue(u201Cvalue1u201D);
              vals1.add(pfieldDV1);
              pfield1.setCurrentValues(vals1);
              fields.add(pfield1);
              pfield1 = new ParameterField();
              vals1 = new Values();
              pfieldDV1 = new ParameterFieldDiscreteValue();
              pfield1.setName("@parameter2");
              pfieldDV1.setValue(u201Cvalue2u201D);
              vals1.add(pfieldDV1);
              pfield1.setCurrentValues(vals1);
              fields.add(pfield1);
              setFieldsCrystal(fields);
              //Setting the Fields Ends
    The sample jsp code to view the report is as follows:
    <%@taglib uri="http://www.businessobjects.com/jsf/crystalreportsviewers"
         prefix="bocrv"%>
    <bocrv:reportPageViewer viewerName="CrystalViewer"
                                                 reportSource="#{CrystalReportBeanObject.reportSource}"
                                                 displayToolbarRefreshButton="false"
                                                 allowDatabaseLogonPrompting="false"
                                                 allowParameterPrompting="false"
                                                 databaseLogonInfos="#{CrystalReportBeanObject.connectionInfosCrystal}"
                                                 parameterFields="#{CrystalReportBeanObject.fieldsCrystal}"
                                                 displayGroupTree="false" displayToolbarLogo="false"
                                                 displayToolbarToggleTreeButton="false"
                                                 enablePageToGrow="false" height="540"
                                                 zoomPercentage="100" width="750"
                                                 allowDrillDown="false"
                                                 displayToolbarPrintButton="true"
                                                 printMode="PDF"
                                                 ></bocrv:reportPageViewer>
    Edited by: JayKumarSharma on Mar 23, 2011 12:42 PM

    This is how you retrieve all the text fields in the reort:
    ReportObjects reportObjects = (ITextObject) oReportClientDocument.getReportDefController().getReportObjectController().getReportObjectsByKind(ReportObjectKind.text);
    for(int i=0; i< reportObjects.size();i++)
    ITextObject textObject = (ITextObject)reportObjects.get(i);
    // use ReportObjectController to modify the text object.
    If you want to modify the contents of the text element, you can do it as follows:
    TextObject oTextObject = new TextObject();
    Paragraphs oParagraphs = new Paragraphs();
    Paragraph oParagraph = new Paragraph();
    ParagraphElements oParagraphElements = new ParagraphElements();
    ParagraphTextElement oParagraphTextElement = new ParagraphTextElement();
    oParagraphTextElement.setText("This is the new text field");
    oParagraphTextElement.setKind(ParagraphElementKind.text);
    oReportClientDocument.getReportDefController().getReportObjectController().modify(textObject, oTextObject);
    oReportClientDocument.save();

  • How to find out all SQLs executed by a procedure

    I need to find out all SQLs executed by a procedure. I can trace and check but in my case the issue happened 4 hours back and i know what procedure was causing it. There are multiple dynamic queries fired from this procedure. I need to track down all SQLs fired by this procedure constructed dynamically during the time issue was happening.
    I have the sql_id of the statement which was executing the procedure. How do I track down all "child" SQLs using this sql_id?
    Will appreciate any pointers.
    -ravi

    Thanks for your suggestion and looking into this.
    We already have that functionality built in. Version is 10.2.0.3...But the issue is the proc is called thousands of time in a day and we can not keep the tracking of sqls and parameters passed on all the time. When the issue happened we were not tracking. The bind variables are not captured as the SQL is constructed within the proc by looking up the values dynamically from secondary tables dynamically based on the parameters passed to the procedure. Now the SQLs which are generated from the proc will have the bind variables captured as they will come as predicates and will have no clob types (condition for the binds to be captured).
    I need a query to track down all "child" SQLs by using the sql_id of the parent process which is the procedure's sql_id.

  • How to find out all the tables associated with particular T-code or Program

    Hi All,
    In 4.6B we have a transaction code SE49, where we can see all the tables associated with particular Transaction code or Program.
    But in ECC 5.0 or in ECC 6.0 this transaction code is not available.So is there any alternative where i can find out all the tables associated with particular T-code or Program.
    Thanks
    Shubham

    Hi,
    you are right, Transaction SE49 as well as SE48 do not exist anymore I'm afraid, they        
    are discontinued.                                                              
    You might try to create a transaction variant:                                        
    1) Start SE93 to create a transaction variant                                         
    2) Specify a name, eg. ZSE49, and choose the first option:                            
       "program and screen (dialog transaction)                                           
    3) Here specify SAPMSEUZ as program, and 200 as screen number                         
    4) Choose a suitable development class (package) if you want it to be                 
       transportable or Local (=$TMP) if non-transportable                                
    5) press Save                                                                         
    Same applies for SE48, same program but dynpro 100.                                   
    Sorry for not being able the reasons behind the decision to discontinue            
    these transactions. I suppose at least part of the functionality was               
    integrated in SE38.           
    Best regards
    Erika

Maybe you are looking for

  • How many users have logged in the Enterprise portal

    Hello Expert, Please suggest.. Feature required to monitor as how many users have logged in the Enterprise portal 7.0(Portal is Implemented with MDM), so that utilization can be known. Regards, Vidhanshi

  • How can i watch a show on apple tv that is on ipad2

    I am wanting to watch a show that i have on the NBC app on my IPAD2 but i want to move it to my apple tv.  Can anyone tell me what i need to do to get this to happen? The apple tv shows that it has access to my apple ID but i am not a computer guy so

  • Archlinux on dell inspiron 1501

    Hi everyone, i'm new to the forum so I introduce myself. My name is nicolas, i'm from santiago de chile and i've been playing around with linux like a year by now. I have installed debian, ubuntu, suse and slackware in my dell 1501, but i'm having tr

  • Doble click in alv

    i use this FM DATA: g_user_command TYPE slis_formname  VALUE 'DOUBLE_DOUBLE'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'        EXPORTING             i_callback_program = l_program             i_callback_user_command = g_user_command             i_callba

  • ATG and SAP integration

    Hi ATG Gurus, Could you pls point me to the right resources which talk about any existing SAP-ATG Integrators or framework for integrating the two? Thanks,