WLS/J2EE developer code review template?

I have a requirement for a "code review template" that could act as a check list for a J2EE and/or Weblogic Server application code review.
Has anyone ever done such a code review or have an idea of what should be included?
Thanks for any help you may be able to give.
John Wheeler.

I am not quite sure what either of you are after, but if you hit the "Documentation" link on OTN you will find the documentation, such as the above list, for almost all of Oracle products. Most are available online in HTML format or PDF and some have a part number so that they can be ordered.
The 10g Developer Suite Documentation is here: http://otn.oracle.com/documentation/dev10g.html
Regards
Sue

Similar Messages

  • Code review templates

    Any body aware of some nice code review templates available on the net?

    Any body aware of some nice code review templates
    available on the net?What do you mean by "code review template"?
    Reviews (all reviews) are generally part of a process methodology.
    The review itself has a procedural form. One can also make specific requirements for the type of review material. For instance one might insist that Software Requirements be testable and that code classes be documented. Those would be guidelines for the review material and would be used to direct how someone creates the material in the first place. The guidelines would be part of the review process. Once a review is done then one can document the result with a review result sheet.
    So are you looking for a code review process document?
    Or coding guidelines document?
    Or a coding review results document?
    Or something else?
    You might also note that one will get far more bang for the buck (orders of magnitude with formal studies to back it up) by providing process for things like requirements and project planning. Code reviews are trivial in the overall project cost.
    Just to check I googled on "code review template" and I didn't see anything that suggested it fit into the above or even fit into anything that I had forgotten (or never knew.)

  • Code Review Template

    Folks,
    I am trying to fulfill one my new responsibilities as a code reviewer. Well, I got lot of stuff to address on the first piece of code I got, but I am just wondering how to present my opinion about the code in a document.
    Just in case, if any of you has produced a code review doucment template in the past, can you kindly push it to me?
    I appreciate ur help, in advance,
    Thanks,
    Kulk.

    I don't see how.
    The idea of tracking reviews is to track the defects, comment, etc that are noted and where they occur.
    The Sun guidelines serve as a starting point for creating a "Coding guidelines"/"Coding review process". But that is not same as a document used to track the results of a review.
    And unless your company is very heavily into process control then you are not going to get anyone to go through every bit of code looking for each point in a coding guidelines.

  • Developer's code reviews and varsion control

    Hi,
    Suppose I am planning to hire 10 apex developers to work on some internet project.
    How can I organize the code review process?
    How can I see what code a developer has changed and what exactly he's changed in the code?
    How can I see the code before it has been changed?
    How to see the properties of any object is changed and by whom?
    Is it possible to use any control version system with apex development process?
    Thanks.

    Joel_C wrote:
    I agree with your approach - delegating to packages is definitely a sensible method. However, I'm interested to know the degree to which you delegate.It depends... !
    For example, do you explicitly reference page items in your packages (perhaps via the 'V' function and APEX_UTIL.SET_SESSION_STATE calls), or do you tend to pass them via parameterized procedure calls? In which case, how do you deal with multiple page items (by which I mean, more than 3 or 4).If there is just a parameter or two being passed from the page, I tend to pass them as parameters from the page process. Very often, all you need to pass is the primary key (ID) of the entity you are working on. So I would write code like this in a page process:
    begin
      foo_pkg.delete_foo (:p10_foo_id);
    end;Other times, you may need to get the values of several (or all) items on a page. This would typically be when you want to write your own update logic instead of relying on the built-in Automatic Row Processing. Of course this is more work, but you typically only do this for the important entities/pages anyway, so it's worth it for the extra control.
    The question then is, should I write something like this:
    begin
      foo_pkg.update_foo (:p10_foo_id, :p10_foo_name, :p10_foo_description, :p10_foo_date, :p10_foo_remarks, :p10_foo_link);
    end;or just do
    begin
      foo_pkg.update_foo;
    end;and use V('P10_FOO_ID') or apex_util.get_session_state ('P10_FOO_ID') inside my packaged PL/SQL code to retrieve the item values?
    I've used both approaches, but I prefer to use the second option if I know (or suspect) that there is going to be additional logic (ie, "if X then get value of item Y, otherwise get value of item Z"). Having this kind of stuff in a package means that it can be changed easily, without having to redeploy the Apex application.
    Said another way, I don't want any "IF" statements in Page Process code.
    I'm interested in this, relating to my previous posting about testing - it's kind of difficult to unit test Apex application elements unless you fully modularize your code but there has to be a balance between modular, reusable code and page-specific, item-level code.My approach is two use two layers of packages. Let's say we are building a system that handles invoices. I would create a package called INVOICE_PKG that contains functions such as new_invoice and get_invoice, and procedures such as delete_invoice and set_invoice. This is your "core API" for working with invoices. This package is never called by the client (the Apex application, or a Java program, or whatever) directly.
    I then create another package, INVOICE_WEB_PKG, which exposes the functions and procedures that the client needs to call. This package just calls INVOICE_PKG to do the actual work. In this outer package, I can decide whether I want to use input parameters or just get the values from Apex session state.
    So a page process on a page with lots of page items could look like this:
    begin
      invoice_web_pkg.set_invoice;
    end;And the code inside INVOICE_WEB_PKG could look like this:
    procedure set_invoice
    as
      l_invoice invoice%rowtype;
    begin
      l_invoice.invoice_id := apex_util.get_session_state ('P10_INVOICE_ID');
      l_invoice.invoice_date := apex_util.get_session_state ('P10_INVOICE_DATE');
      -- and so on for many more items
      invoice_pkg.set_invoice (l_invoice);
    end;BTW, if you download my Alexandria Library for PL/SQL (http://code.google.com/p/plsql-utils/), you will find an APEX_UTIL_PKG that has a couple of wrapper functions to get and set page items (strings, numbers, dates).
    By having two layers of packages, you can write unit tests (and other non-GUI code) against the inner package, and leave all the GUI/Apex-specific stuff in the outer package. For example, any code that formats content with HTML or prints anything to the browser (using HTP.P) should go in the outer package.
    - Morten
    http://ora-00001.blogspot.com

  • Code Review in Technical Specifications

    What is the Code Review in the technical Specification document.

    Hi,
    Code review is done by the other member of the team member or by the onsite guy from the clien side or by team SQA.
    Each company is having their own way of coding standards and naming conventions. the client always send one template for the same when the project starts.
    The developer can not review his object and the third person like SQA of the team will review it and it will done in document which will be kept  for reference.
    if any changes or comments made by the SQA, then the developer  will change the same again.
    hope this will help you.
    Thanks
    Shiva

  • Are there any good tool for checking security risks, Code review, memory leakages for SharePoint projects?

    Are there any good tool for checking security risks, Code review, memory leakages for SharePoint projects?
    I found one such tool "Fortify" in the below link. Are there any such kind of tools available which supports SharePoint?
    Reference: http://www.securityresearch.at/en/development/fortify/
    Amalaraja Fernando,
    SharePoint Architect
    Please Mark As Answer if my post solves your problem or Vote As Helpful if a post has been helpful for you. This post is provided "AS IS" with no warrenties and confers no rights.

    Hi Amalaraja Fernando,
    I'm not sure that there is one more tool that combines all these features. But you may take a look at these solutions:
    SharePoint diagnostic manager
    SharePoint enterprise manager
    What is SPCop SharePoint Code Analysis?
    Dmitry
    Lightning Tools Check
    out our SharePoint tools and web parts |
    Lightning Tools Blog | Мой Блог

  • Looking for best practice on J2EE development environment

    Hi,
    We are starting to develope with J2EE. We are looking for best practice on J2EE development environment. Our concern is mainly on code sharing and deployment.
    Thanks, Charles

    To support "code sharing" you need an integrated source code control system. Several options are out there but CVS (https://www.cvshome.org/) is a nice choice, and it's completely free and it runs on Windows, Linux, and most UNIX variants.
    Your next decision is on IDE and application server. These are usually from a single "source". For instance, you can choose Oracle's JDeveloper and Deploy to Oracle Application Server; or go with free NetBeans IDE and Jakarta Tomcat; or IBM's WebSphere and their application server. Selection of IDE and AppServer will likely result in heated debates.

  • OOP code review

    Hi,
    Can anyone help me on checklist for a OO-ABAP prog code review?
    Thanks.

    Hi,
    Here are some. I dont have a link and site which can give u all that.
    Shall give a few points here:
    1. The nesting of IF statements should be limited.  When multiple conditions are being tested, the appropriateness of the CASE statement should be considered
    2. The CASE statement uses WHEN OTHERS
    3. When possible, do not use the TRANSLATE statement, because it is not efficient.
    4. Always specify your conditions in the Where clause instead of checking
    5. SELECT INTO preferred to SELECT
    6. Avoid select * to the max.
    7. Use primary key while selecting.
    8. Avoid nested selects and nested loops
    9. Avoid the use of the ORDER BY clause on a SELECT statement that sorts by non-indexed fields. 
    10. SORT ITAB ORDER BY preferred over SORT ITAB
    11. Use multiple MOVE statements instead of a single MOVE-CORRESPONDING statement.
    12. LOOP…WHERE is prefered to LOOP/CHECK
    13. use binary search while readin
    14.      Itab2[] = Itab1[] is preferred to
         Loop at Itab1.
         Itab2 = Itab1.
         Append Itab2.
         Endloop.
    15. use DESCRIBE instead of COUNT
    Hope these will help you your review process.
    Also check out this link:
    http://www.sap-basis-abap.com/abap/abap-4-development-code-efficiency-guidelines.htm
    http://www.ams.utoronto.ca/userfiles/page_attachments/Library/1/Developmentstandards_guidelines_335678.pdf
    Best Regards,
    Anjali

  • Code review process in adf

    Hi All,
    Is there any code review tools available for adf.or what are the best practises to be followed for adf
    Regards,
    Smaran

    I think you could use Red Samurai Tool. Pls see the link.
    http://andrejusb.blogspot.com/2010/03/red-samurai-tool-jdeveloper-11g.html
    ADF Best Practice: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/bestpractice-092568.html
    ~Abhijit

  • Code review tools

    Are there any code review tools for WLP 7.x

    Hi,
    You can search in SCN for related articles and blogs.
    ST05 and SE30 are tools which you can use for performance improvement. Use the tips and tricks in SE30.
    Code Inspector and Extended Program Check will help you in efficient programing.
    There are several other things which you need to follow as follows:-
    1.  Proper Naming Convention of variables for better code understanding.
    2.  Avoid nested selects.
    3.  Avoid nested loops whenever possible.
    4.  Use of SORT and BINARY SEARCH in READ statements wherever possible.
    5.  SY-SUBRC checks wherever needed.
    6.  Avoid ZERO DIVIDE errors.
    7.  Use of FOR ALL ENTRIES as needed.
    8.  Better handling of messages and exception.
    9.  Avoiding endless looping.
    These are some points. You can add more as per your knowlegde.
    Create a code review checklist document and ask your developers to follow the same.
    I can share a template if you need.
    Regards,
    Ankur Parab
    Edited by: Ankur Parab on Sep 17, 2009 3:20 PM
    Edited by: Ankur Parab on Sep 17, 2009 3:34 PM

  • Code Review Tool for Weblogic 8.1

    I am working with WLS 8.1. Can anyone suggest plugin or code review tool for reviewing from workshop?
    I have used PMD open source plugin with eclipse for reviewing java files. I couldnt use it for .ejb files generated from workshop. Pls suggest some procedure for this.
    Thanks in advance!
    Regards,
    Poorani

    Red Samurai is not avaiable for 11.1.2 at the moment as Oracle changes the way extensions plug into jdev :-(.
    Have you tried out the jdev internal audit tools (under Build->'Audit projectname' and follow the dialogs)?
    Timo

  • Free tools for J2EE development

    Hi
    I'm new to Java and here one question, that is very important to me now
    Which tools can I use to develop J2 EE applications?
    My question concerns mostly to tools, that can compile/build java files into classes? debug it and build then jar-files
    Is there any free!!!, handy and reliable software for this purpose?
    Any help will be appreciated
    Thank you in advance
    Yurij

    NetBeans, as mentioned in previous posts is probably a good choice if you want totally free J2EE development. Sun provides many tools for the J2EE developer to write and test J2EE code.
    Eclipse, while very good, is lacking in J2EE features. I didn't understand this until I started a new contract where they used WSAD (WebSphere Studio Application Developer) from IBM (Eclipse with J2EE support via plug-ins. It's roughly $4K per seat so definately not free. But havign Eclipse expirience did help me get up to speed quickly.
    You might also check out MyEclipse (www.myeclipseide.com). It has J2EE plug-ins that provide for J2EE development and it costs roughly $30 per year (subscription). Not a bad deal, IYAM.
    I think Borland still offers a free IDE but I haven't heard much about it these days.
    There are others, but the top has to be NetBeans and Eclipse these days.
    Enjoy!

  • Database DAO - JDBC Query Class - Code review please

    I use the following class (Database.java) as a DAO for handling all database calls. The class works. You can use this if you're looking for a DAO solution (i.e. a way to query databases using connection pools / JNDI). I am looking for some suggestions on improving this class. Can you help? I.e. suggestions for improving SELECT speed, logic? The class is used by a moderately heavily used Web application (ca. 2000 - 3000 queries a day - so not too much) on a Sun Web Server system.
    This class had the following interfaces:
    getErrors() // for retrieving any errors that occurred during an query
    setSql() // one way to set the SQL that must be run
    setDbName() // one way to set the JNDI name of the database resource
    getInsertDelete() // run the INSERT/DELETE statement that was provided with setSql
    getInsertDelete(String givenSql, String givenDb) // run with provided sql and db
    getClobInsert(String givenSql, String givenDb, Hashtable clobHash, String identifierSql) // clobHash contains the column name and the value (which is a string over 4000 chars). Identifier SQL is the SQL for identifying the row, into which the Clob must be inserted. This interface is specific to Oracle.
    getSelect() // Query database with set SQL. Return as a vector of hashes so I can close connection.
    getSelect(String givenSql, String givenDb) // select with given sqlAnd here is the full class. I know, this is a weird post, but we don't really have a code review process here at work, and I don't have a specific problem. Just want some feedback concerning the way I query our databases. So, any tips or comments are welcome.
    package melib.network;
    import java.io.Writer;
    import java.io.StringReader;
    import java.io.IOException;
    import java.util.Vector;
    import java.util.Hashtable;
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Clob;
    import javax.sql.DataSource;
    import javax.naming.InitialContext;
    import melib.system.PropertiesReader; // This is just a simple class for pulling values from a .properties file
    * Manages database connections.
    * @author jetcat33
    * @version 2.0, 2006-07-09
    public class Database {
        protected String sql = "";
        protected String dbName = "";
        private StringBuffer errors = new StringBuffer();
        /** Creates a new instance of Database */
        public Database() {
         * Check completeness of data
         * for example to check if dbname given or
         * sql given or to make sure that yikes
         * used instead of sccweb in test conditions
        protected boolean checkData(){
            if(dbName.equals("") || sql.equals("")){
                Email.sendMail(PropertiesReader.getValue("statusEmail"),null,"MelibLibraryError","melib error: [Database]","No database selected for query (db: "+dbName+" or sql not included (sql: "+sql+")");
                setErrors("No database selected for query (db: "+dbName+" or sql not included (sql: "+sql+")");
                return false;
            }else{
                return true;
         * Sets and gets errors resulting from
         * exceptions - otherwise would have to
         * somehow include errors in the results
         * that are returned but that would include
         * other more complicated stuff.
        private void setErrors(String e){
            errors.append("\n"+e);
        public StringBuffer getErrors(){
           return errors;
         * Setter for the sql variable.
         * @param givenSql The sql required to process
        public void setSql(java.lang.String givenSql) {
            sql = givenSql;
         * Sets the dbName needed to commect
         * to the correct database.
         * @param givenDbName Name of the database - name and connections specified within this class
        public void setDbName(java.lang.String givenDbName) {
            dbName = givenDbName;
         * Processes Insert and Delete requests with given SQL and DB Name.
         * @param givenSql
         * @param givenDbName
         * @return String Number of rows affected
        public String getInsertDelete(String givenSql, String givenDbName){
            sql = givenSql;
            dbName = givenDbName;
            return getInsertDelete();
         * Takes care of insert, update and delete requests.
         * Must have set both dbName as well as the sql String.
         * Will return number of rows affected as String.
         * @return String Number of rows affected
         * @exception Exception
        public String getInsertDelete() {
            int returnValue = 0;
            if(checkData()){
                Connection conn = null;
                InitialContext initContext = null;
                DataSource source = null;
                Statement stmt = null;
                try{
                    // Get connection from configured pool
                    initContext = new InitialContext();
                    source = (DataSource) initContext.lookup("java:comp/env/jdbc/" + dbName);
                    conn = source.getConnection();
                    if(conn != null){
                        stmt = conn.createStatement();
                        returnValue = stmt.executeUpdate(sql);
                }catch (Exception e){
                    Email.sendMail(PropertiesReader.getValue("statusEmail"),null,"MelibLibraryError","melib error: [Database.getInsertDelete]","getInsertDelete Exception: "+e.toString()+"\nWith: "+sql);
                    setErrors(e.toString());
                }finally{
                    try{
                        stmt.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    try{
                        conn.close();
                    }catch(Exception e){
                       e.printStackTrace();
                    try{
                        initContext.close();
                    }catch(Exception e){
                        e.printStackTrace();
            return returnValue+"";
         * Processes Insert requests for SQL containing CLOBS
         * @param givenSql
         * @param givenDbName
         * @param clobHash Contains column name of clob and clob text
         * @param identifierSql Contains SQL to identify the just entered SQL so the clobs can be filled in.
         * @return String Number of rows affected
        public String getClobInsert(String givenSql, String givenDbName, Hashtable clobHash, String identifierSql){
            sql = givenSql;
            dbName = givenDbName;
            String returnValue="";
            int rv = 0;
            if(checkData()){
                Connection conn = null;
                InitialContext initContext = null;
                DataSource source = null;
                Statement stmt = null;
                try{
                    // Get connection from configured pool
                    initContext = new InitialContext();
                    source = (DataSource) initContext.lookup("java:comp/env/jdbc/" + dbName);
                    conn = source.getConnection();
                    if(conn != null){
                        conn.setAutoCommit(false);
                        stmt = conn.createStatement();
                        rv = stmt.executeUpdate(sql); // write first time
                        // Now get and overwrite "EMPTY_CLOB()"
                        ResultSet lobDetails = stmt.executeQuery(identifierSql);
                        ResultSetMetaData rsmd = lobDetails.getMetaData();
                        if(lobDetails.next()){
                            for(int i = 1; i <= rsmd.getColumnCount(); i++){
                                if(clobHash.get(rsmd.getColumnName(i))!=null && !clobHash.get(rsmd.getColumnName(i)).equals("")){
                                    Clob theClob = lobDetails.getClob(i);
                                    Writer clobWriter = ((oracle.sql.CLOB)theClob).getCharacterOutputStream();
                                    StringReader clobReader = new StringReader((String) clobHash.get(rsmd.getColumnName(i)));
                                    char[] cbuffer = new char[30* 1024]; // Buffer to hold chunks of data to be written to Clob, the slob
                                    int nread = 0;
                                    try{
                                        while((nread=clobReader.read(cbuffer)) != -1){
                                            clobWriter.write(cbuffer,0,nread);
                                    }catch(IOException ioe){
                                       //System.out.println("E: clobWriter exception - " + ioe.toString());
                                    }finally{
                                        try{
                                            returnValue+=" Writing: "+rsmd.getColumnName(i);
                                            clobReader.close();
                                            clobWriter.close();
                                        }catch(IOException ioe2){
                                            //System.out.println("E: clobWriter close exception - " + ioe2.toString());
                        conn.commit();
                }catch (Exception e){
                    Email.sendMail(PropertiesReader.getValue("statusEmail"),null,"MelibLibraryError","melib error: [Database.getClobInsert]","getClobInsert Exception: "+e.toString()+"\nWith: "+sql+"\nAND\n"+identifierSql);
                    setErrors(e.toString());
                }finally{
                    try{
                        stmt.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    try{
                        conn.close();
                    }catch(Exception e){
                       e.printStackTrace();
                    try{
                        initContext.close();
                    }catch(Exception e){
                        e.printStackTrace();
                returnValue=rv+" "+returnValue;
            return returnValue;
         * Takes care of Select statements.
         * Must have set both dbName as well as the sql String.
         * Will return a vector.
         * @return Vector of Hashes containing the Results of the query
         * @exception SQLException
         * @exception Exception
        public Vector getSelect(){
            Vector returnValue = new Vector();
            if(checkData()){
                Connection conn = null;
                InitialContext initContext = null;
                DataSource source = null;
                ResultSet result = null;
                ResultSetMetaData rsmd = null;
                Statement stmt = null;
                try{
                    // Get connection from configured pool
                    initContext = new InitialContext();
                    source = (DataSource) initContext.lookup("java:comp/env/jdbc/" + dbName);
                    conn = source.getConnection();
                    if(conn != null){
                        stmt = conn.createStatement();
                        result = stmt.executeQuery(sql);
                        rsmd = result.getMetaData();
                        while(result.next()){
                            Hashtable hash = new Hashtable();
                            for(int i = 1; i <= rsmd.getColumnCount(); i++){
                                if(result.getString(i) != null){
                                    hash.put(rsmd.getColumnName(i),result.getString(i));
                                }else{
                                    hash.put(rsmd.getColumnName(i),"");
                            returnValue.addElement(hash);
                }catch (Exception e){
                    Email.sendMail(PropertiesReader.getValue("statusEmail"),null,"MelibLibraryError","melib error: [Database.getSelect]","getSelect Exception: "+e.toString()+"\nWith: "+sql);
                    setErrors(e.toString());
                }finally{
                    try{
                        result.close();
                    }catch(Exception e){
                        e.printStackTrace();
                        setErrors(e.toString());
                    try{
                        stmt.close();
                    }catch(Exception e){
                        e.printStackTrace();
                        setErrors(e.toString());
                    try{
                        conn.close();
                    }catch(Exception e){
                       e.printStackTrace();
                       setErrors(e.toString());
                    try{
                        initContext.close();
                    }catch(Exception e){
                        e.printStackTrace();
                        setErrors(e.toString());
            return returnValue;
         * Takes care of Select statements with given SQL.
         * Must have set both dbName as well as the sql String.
         * Will return a vector.
         * @return Vector with Results of the query
         * @exception SQLException
         * @exception Exception
        public Vector getSelect(String givenSql, String givenDbName){
            sql = givenSql;
            dbName = givenDbName;
            return getSelect();
    }Thank you,
    dailysun

    too much code that's repeated. refactor all the code you have for closing resources into a utility class and simply call its methods.
    your dao creates the connection, so it can't participate in a transaction. if there are several daos that should be one unit of work, you can't manage it with this framework.
    transactions are under the control of a service layer. I think it's better to have the service object get the connection, pass it to all the DAOs needed for that unit of work, and then have the service close it.
    e-mailing errors? I don't like it. if you have 2-3K queries a day failing because the database you'll have 2-3K e-mails to delete. better to log messages. if you really want e-mail, you can have Log4J add an e-mail appender. at least that way it's configurable outside the code.
    CRUD operations without an UPDATE? You're missing something important.
    What if I don't want to get the database from a JNDI datasource? Now you can't use this DAO without an app server.
    Your error messages are less informative than a stack trace. Why not throw an exception with detailed info?
    have a look at Spring and how it handles persistence. if you insist on writing your own, might want to look at Spring. Rod Johnson has developed a much better, more general way to handle persistence.
    http://www.springframework.org
    You return a Vector of Hashtables for queries? Two old-school data structures. You understand the implication of choosing those, right? I'd recommend that you change that to a List of Maps. Let the concrete types be ArrayList and HashMap. Interfaces are preferred, because they let you change the implementation without affecting clients. Vector and Hashtable are synchronized by default; ArrayList and HashMap are not. Synchronization is thread safe but slower.
    I understand why you chose to return Vector, because you wanted something general that wouldn't force you to deal with object-relational mapping. This way you can just worry about ResultSetMetaData.
    A Vector of Hashtables is a row-based view of the ResultSet (one Hashtable per row). Sometimes a column based view can be more convenient. Then it's a Map of Lists.
    You gave it a good try, but I think there's a lot of room for improvement.
    %

  • Code Review Tool

    Hi Gurus,
    I have a requrement to make a Code Review tool which will do SLIN check as well as
    the code inspector check, in my custom program.
    In my selection screen i am giving the program name ,
    how can I do SLIN and Code inspector check and show results to user in list.kindly guide me the
    way i can do this.
    Amresh

    Hello Raj,
    There are few companies who have developed the code review tool. Still after running tool, manual review is done as auto review gives generic kind of suggestions. This tool development had lot man hours involvement. They had taken this tool as a project and still it is not a full proof tool.
    For you to do a simple way is have a report with selection screen which will accept the input parameter as program name. Inside your report have BDC written to run code inspector through SE38 skipping the first screen. Show code inspector results. After that you can show a SQL trace transaction screen (for which again you will have a BDC call)... etc
    Thank You,
    Nishikant.

  • I am J2EE developer.

    I am J2EE developer and integrating my product to SAP Netweaver.
    Right now i m exploring XI 3.0.
    pls help me whether it is necessary to have to gather full knowledge ABAP????

    Dear Gabriel,
    pls help me whether it is necessary to have to gather full knowledge ABAP????
    There is no need of full knowledge of ABAP ....If you have knowledge that would be added advantage for you. As you told that you are from J2EE background.....so you can do JAVA MAPPING very easily
    go through the following blogs  which are developed based on JAVA concepts...then you will understand the POWER OF JAVA in SAP XI.
    <u><i><b>JAVA in xi</b></i></u>
    A very important place where you will use JAVA in XI is while doing your Mapping.  There will be cases when JAVA MAPPING is the bestsolution to go for. There are 2 types of Parsers available for JAVA Mapping. DOM Parser and SAX parser. Just got through the following links to  understand more on
    Java Mapping and the APIs available.http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/parsers/package-summary.html
    http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Document.html http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii If you want you can also send java code as payload to do mapping in XI. For this go through the url: /people/sap.user72/blog/2005/12/14/sending-java-code-as-payload-to-do-mapping-in-xi
    JAVA mapping -
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii /people/ravikumar.allampallam/blog/2005/06/24/convert-any-flat-file-to-any-idoc-java-mapping
    /people/amol.joshi2/blog/2006/03/10/think-objects-when-creating-java-mappings /people/sameer.shadab/blog/2005/09/29/testing-abap-mapping sample code for java mapping
    Re: Example code DOM PARSER API -
    http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html DOM --- /people/thorsten.nordholmsbirk/blog/2006/08/10/using-jaxp-to-both-parse-and-emit-xml-in-xi-java-mapping-programs tutorial sax and dom
    For a tutorial on the methods of <b>SAX and DOM</b> http://java.sun.com/webservices/docs/1.1/tutorial/doc/  
    <b>SAX AND dom PARSER</b> ( BY thorsten) -
    example /people/thorsten.nordholmsbirk/blog/2006/08/10/using-jaxp-to-both-parse-and-emit-xml-in-xi-java-mapping-programs java mapping example ( testing and
    debugging) /people/stefan.grube/blog/2006/10/23/testing-and-debugging-java-mapping-in-developer-studio
    Best Regards,
    Srikanth
    Reward the useful answers and you will get  <a href="/people/baris.buyuktanir2/blog/2007/04/04/point-for-points-reward-yourselfyourself

Maybe you are looking for