Object scope?

Am I wrong in thinking that all objects are always references? I'm trying to create a database connection and statement object within a method, and have a second method that does some initialization to the object. What I'm doing looks something like this:
private int dbConn(Connection a_con, Properties a_prop, Statement a_stmt){
  try{
    a_con = DriverManager.getConnection("jdbc:odbc:myDB", a_prop);
  }catch (SQLException sqle) {
    System.err.println("\nFailed to connect to the database: " + sqle.getMessage());
    sqle.printStackTrace();
    return -1;
  try{
    a_stmt = a_con.createStatement();
  }catch (SQLException sqle) {
    System.err.println("\nFailed to create the statement object: " + sqle.getMessage());
    sqle.printStackTrace();
    try{
      a_con.close();
    }catch (SQLException sqle2) {
      System.err.println("\nFailed to close the connection to the database " +
                         "(after failing to create a statement object): " +
                         sqle2.getMessage());     
    return -1;
  return 0;
public int getData(){
  Connection conn = null;
  Statement stmt = null;
  int jk;
  jk = dbConn(conn, i_prop, stmt);
  // i_prop is a Property object that is local to the class the method is in
  // At this point the conn is always null for me
}

Put the connection, properties and statement in one class:class DBConnInfo
  Connection conn;
  Properties prop;
  Statement  stmt;
}then you can pass the DBConnInfo object to your method:private int dbConn(DBConnInfo connInfo)
  try
    connInfo.conn = DriverManager.getConnection("jdbc:odbc:myDB", connInfo.prop);
  catch (SQLException sqle)
    System.err.println("\nFailed to connect to the database: " + sqle.getMessage());
    sqle.printStackTrace();
    return -1;
  try
    connInfo.stmt = connInfo.conn.createStatement();
  catch (SQLException sqle)
    System.err.println("\nFailed to create the statement object: " + sqle.getMessage());
    sqle.printStackTrace();
    try
      connInfo.conn.close();
    catch (SQLException sqle2)
      System.err.println("\nFailed to close the connection to the database " +
                         "(after failing to create a statement object): " +
                          sqle2.getMessage());
    return -1;
  return 0;
}That way, the conn and stmt member variables stay set when you return.
Just as an aside, I would recommend that instead of catching the SQL exceptions and returning a lot of arbitrary codes, simply declare the method as throwing SQL exceptions and after catching them in the method re-throw them back to the caller. That way the caller can decide what to do with them.

Similar Messages

  • Scriptlet objects scope

    Hello,
    I would like to be sure of one thing (arguing with someone ...) : I assume that objects declared in scriptlets are of page scope.
    Can somebody assure me on this ?
    Thank you,

    Um,.. well, technically, based on my interpretation of
    the question, I'd say no. I'm picturing code like
    this:
    <%
    String str = "this is a string";
    %>str is not in the page "scope", technically, based on
    what is typically meant be "scope" in JSP/servlets.
    It's a local variable in the _jspService() method.
    Objects in the page "scope" are things held in the
    e pageContext object...
    <%
    pageContext.setAttribute("str", "this is a string");
    %>Now "str" is in the page scope.Well said as always, bsampieri.
    But what's the difference, then, between putting something into page scope and having it as a local variable? What does adding a variable to page scope buy me over and above a local variable?

  • Object scope: using application

    Hi
    I would like to know how a bean is stored in the servlet when u use application scope.
    When using session it would be:
    session.setAttribute("key", key1); In the JSP it would then be session.getAttribute("key");
    how would this be done for application scope?

    Hello. Same thing actually.
    Do:
    application.setAttribute("myInfo", myInfo)
    and
    MyInfoClass myInfo = (MyInfoClass)
    application.getAttribute("myInfo");
    As rhibiscus rightly stated, you can use the application implicit reference in a JSP. For a servlet, use the getServletContext() method to get a reference to the application scope.
    e.g.
    ServletContext context = getServletContext();
    context.getAttribute("myInfo");

  • How to call a method in one JSP from another JSP?

    say that I have 2 JSPs.
    JSP one has a button.
    JSP two has some method that, say, find the square root of the number passed from JPS one.
    How to - when click - the button on page one call the method on page two?
    Please note that I can not use object binding, but I want passing the actual parameter and call the method on page two.
    Please note that this is an update of a previous post on the same topic called "Object scope".
    Thank you all very much.

    No, i dont know how to call other than main methods from other classes
    And one more doubt i have i.e. Like in C can we see the execution of the program like how the code is being compiled step by step and how the value of the variable changes from step to step like(Add Watch).........

  • BC4J FindByKey problem

    I have a uiXML page where the user is entering data into a form, based on a entity object. A new row is created and the row key is set as a paeg property. In my java class (called from an event handler) I am trying to locate the newly created (and committed) row based on that key. The error I am receiving is :
    oracle.jbo.DMLException: JBO-26080: Error while selecting entity for Screening
    java.sql.SQLException: ORA-01410: invalid ROWID
    The handler on my uiXML page looks like this
    <event name="apply" >
    <bc4j:chaining>
    <bc4j:findRootAppModule name="ScreeningView1AppModule" >
        <bc4j:findViewObject name="ScreeningView1" >
            <bc4j:findRow name="CreateScreeningView1"  >
              <bc4j:setPageProperty name="key" >
                <bc4j:stringKey/>
              </bc4j:setPageProperty>
              <bc4j:setPageProperty name="screeningSite">
                <bc4j:parameter name="Site"/>
              </bc4j:setPageProperty>
              <bc4j:setAttribute name="Site"/>
              <bc4j:setAttribute name="Dob"/>
              <bc4j:setAttribute name="SjPositive"/>
              <bc4j:setAttribute name="SjSurvey"/>
              <bc4j:setAttribute name="Sj3Criteria"/>       
              <bc4j:setAttribute name="ConsentForm"/>       
              <bc4j:setAttribute name="ExcludedDiseases"/>               
              <bc4j:setAttribute name="ExcludedDisorders"/>               
              <bc4j:setAttribute name="SerumCreatinine"/>                       
              <bc4j:setAttribute name="HadCancer"/>                       
              <bc4j:setAttribute name="BirthControlOk"/>                       
              <bc4j:setAttribute name="OtherTrials"/>                       
              <bc4j:insertRow/>
              <bc4j:commit/>   
            </bc4j:findRow>
        </bc4j:findViewObject>
      </bc4j:findRootAppModule>
      <method class="jivrDemoPackage.Screening" method="createTxn"/>
      </bc4j:chaining>
    </event>and my java code in Screening.createTxn is
        ViewObject vo = ServletBindingUtils.getViewObject(context); 
        String pageKey = page.getProperty("key");
        Msg.println("Key page property " + pageKey);
        Key key = new Key(pageKey, vo.getAttributeDefs());  
        Row[] viewRows = vo.findByKey(key,1);
        Row viewRow = viewRows[0];The value printed out for pageKey looks like this "0001000000063837353830380000000A000000F6D14CE6B9
    " but straight after this, the error message given at the top of this posting is displayed. Any idea what I'm doing wrong ?
    Thanks,
    Brent

    I have also tried using "usesCurrency=true" in the bc4j registry def and then using ViewObject.getCurrentRow() in my Java and was not working. I realised then that my method call was outisde the view object scope so once I moved it back in (just before the </bc4j:findViewObject> tag) it worked !. However I could still not get the findByKey to work - the same error message was displayed ??
    Thanks
    Brent

  • MovieClip coding questions

    I'm only a few days into Flash 8, and I'm a little confused
    about conceptually what "MovieClips" should be, and was hoping to
    get a few quick answers:
    1) I was looking through the sample code and it looks like
    they are creating new graphical items through this.attachMovie(),
    and I'm not sure what "this" is since the code is just written in
    the actions panel in frame 1. (I know what "this" means from a
    programming standpoint; I'm just not sure what object scope the
    code that's running there is in). What object am I "in" in code
    that's just sitting around at frame 1 of the main scene timeline?
    2) It says I can make a subclass of a MovieClip, which is
    what I want to do to make little animated controllable characters
    (e.g. "class Car extends MovieClip", but I don't understand how to
    instantiate them within actionscript. According to the docs, you
    don't use constructor methods to make MovieClips, but instead use
    attachMovie() or createEmptyMovieClip() or duplicateMovieClip(). So
    how do I make an object of class Car? attachMovie() returns a
    MovieClip, and I can't cast that to a Car class.
    3) Just curious how people generally organize their code (and
    Symbols) with respect to MovieClips, in the case of, say a moving
    car in a game application. Do MovieClips tend to represent single
    animations (e.g. one MovieClip of a car with the wheels rotating
    left, one where the wheels rotate right, one where it crashes, and
    they get created and destroyed every time the car's state changes)?
    or single objects (e.g. one MovieClip containing many short
    animations along the timeline: one rolling left, one right, one
    crashing, with labels and "goto" action scripts to loop animation,
    etc.)?
    4) What is the purpose of empty movie clips? Do people use
    them like I would use a transform node in Maya or a null node in
    Lightwave (e.g. just a pivot to stack transformations?)?
    Thanks, and pardon the screen name - I was having issues
    choosing a screenname with Firefox and tried a gibberish test in IE
    and oops, it worked, and I can't figure out how to change it to a
    real screenname. So apparently I am stuck as "asdfhabsaf".
    Ken

    1. The main timeline is itself a MovieClip. So, 'this' on the
    main timeline
    refers to the main timeline... It just removes any ambiguity.
    2. In the library, right-click the movieClip and select
    linkage. There you
    click 'export for ActionScript' and the class field will
    become available.
    That's where you put a reference to your class.
    3. Really depends on you and the projects needs.
    4. Empty clips are useful for place holders, to load external
    content into.
    And yes, somewhat like Maya... you can load multiple clips
    into one clip,
    and then move all clips by moving the one parent.
    Dave -
    Head Developer
    http://www.blurredistinction.com
    Adobe Community Expert
    http://www.adobe.com/communities/experts/

  • Dynamic class loading problem using unknown JAR archive and directory names

    I read the following article, which enlightened me a lot:
    Ted Neward: Understanding Class.forName().
    However, it took me some while to understand that my problem is the other way around:
    I know the name of the class, I know the name of the method,
    but my program/JVM does not know where to load the classes from.
    Shortly, my problem is that the server engine that I am writing
    uses two different versions of the same library.
    So I am trying out the following solution:
    My program is named TestClassPathMain.java
    Assume the two libraries are named JAR1.jar and JAR2.jar
    and the class/instance method that should
    be exposed to TestClassPathMain.java by them is named
    TestClass1.testMethod().
    As long as I was depending on just one library,
    I put JAR1.jar in the classpath before starting java,
    and I was happy for a while.
    At the moment I got the need to use another version of
    TestClass1.testMethod() packaged in JAR2.jar,
    a call would always access JAR1.jar's
    TestClass1.testMethod().
    I then decided to remove JAR1.jar from the classpath,
    and programmatically define two separate ClassLoaders, one for use
    with JAR1.jar and the other for use with JAR2.jar.
    However, the problem is only partly solved.
    Please refer to the enclosed code for details.
    (The code in the JAR1.jar/JAR2.jar is extremely simple,
    it just tells (by hardcoding) the name of the jar it is packaged in
    and instantiates another class packaged in the same jar using
    the "new" operator and calls a method on it. I don't enclose it.)
    The TestClassPathMain.java/UC1.java/UC2.java code suite was
    successfully compiled with an arbitrary of JAR1 or JAR2 in the classpath,
    however removed from the classpath at runtime.
    (I know that this could have been done (more elegantly...?) by producing an Interface,
    but I think the main problem principle is still untouched by this potential lack of elegancy(?))
    1) This problem should not be unknown to you experts out there,
    how is it generally and/or most elegantly solved?
    The "*** UC2: Variant 2" is the solution I would like best, had it only worked.
    2) And why arent "*** UC2: Variant 2" and
    "*** static UC2: Variant 2" working,
    while "*** Main: Variant 2" is?
    3) And a mal-apropos:
    Why can't I catch the NoClassDefFoundError?
    The output:
    *** Main: Variant 1 JAR 1 ***:
    Entering TestClass1.testMethod() packaged in JAR1.jar
    About to instantiate TestClass2 with the new operator
    About to call TestClass2.testMethod()
    Entering TestClass2.testMethod() packaged in JAR1.jar
    *** Main: Variant 1 JAR 2 ***:
    Entering TestClass1.testMethod() packaged in JAR2.jar
    About to instantiate TestClass2 with the new operator
    About to call TestClass2.testMethod()
    Entering TestClass2.testMethod() packaged in JAR2.jar
    *** Main: Variant 2 JAR 1 ***:
    Entering TestClass1.testMethod() packaged in JAR1.jar
    About to instantiate TestClass2 with the new operator
    About to call TestClass2.testMethod()
    Entering TestClass2.testMethod() packaged in JAR1.jar
    *** Main: Variant 2 JAR 2 ***:
    Entering TestClass1.testMethod() packaged in JAR2.jar
    About to instantiate TestClass2 with the new operator
    About to call TestClass2.testMethod()
    Entering TestClass2.testMethod() packaged in JAR2.jar
    *** UC1: Variant 1 JAR 1 ***:
    Entering TestClass1.testMethod() packaged in JAR1.jar
    About to instantiate TestClass2 with the new operator
    About to call TestClass2.testMethod()
    Entering TestClass2.testMethod() packaged in JAR1.jar
    *** UC1: Variant 1 JAR 2 ***:
    Entering TestClass1.testMethod() packaged in JAR2.jar
    About to instantiate TestClass2 with the new operator
    About to call TestClass2.testMethod()
    Entering TestClass2.testMethod() packaged in JAR2.jar
    *** static UC2: Variant 2 JAR 1 ***:
    Exception in thread "main" java.lang.NoClassDefFoundError: TestClass1
            at UC2.runFromJarVariant2_static(UC2.java:56)
            at TestClassPathMain.main(TestClassPathMain.java:52)
    TestClassPathMain.java
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
    public class TestClassPathMain {
        public static void main(final String args[]) throws MalformedURLException, ClassNotFoundException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
                // Commented out because I cannot catch the NoClassDefFoundError.
                // Why?
                try {
                    final TestClass1 testClass1 = new TestClass1();
                    System.out.println(
                        "\nThe class TestClass1 is of some unexplicable reason available." +
                        "\nFor the purpose of the test, it shouldn't have been!" +
                        "\nExiting");
                    System.exit(1);
                } catch (NoClassDefFoundError e) {
                    System.out.println("\nPositively confirmed that the class TestClass1 is not available:\n" + e);
                    System.out.println("\n\nREADY FOR THE TEST: ...");
                // Works fine
                System.out.println("\n*** Main: Variant 1 JAR 1 ***:");
                runFromJarVariant1("file:/W:/java/eclipse/workspaces/simped_test/CP1/JAR1.jar");
                System.out.println("\n*** Main: Variant 1 JAR 2 ***:");
                runFromJarVariant1("file:/W:/java/eclipse/workspaces/simped_test/CP2/JAR2.jar");
                // Works fine
                System.out.println("\n*** Main: Variant 2 JAR 1 ***:");
                runFromJarVariant1("file:/W:/java/eclipse/workspaces/simped_test/CP1/JAR1.jar");
                System.out.println("\n*** Main: Variant 2 JAR 2 ***:");
                runFromJarVariant1("file:/W:/java/eclipse/workspaces/simped_test/CP2/JAR2.jar");
                // Works fine
                final UC1 uc1 = new UC1();
                System.out.println("\n*** UC1: Variant 1 JAR 1 ***:");
                uc1.runFromJarVariant1("file:/W:/java/eclipse/workspaces/simped_test/CP1/JAR1.jar");
                System.out.println("\n*** UC1: Variant 1 JAR 2 ***:");
                uc1.runFromJarVariant1("file:/W:/java/eclipse/workspaces/simped_test/CP2/JAR2.jar");
                // Crashes
                System.out.println("\n*** static UC2: Variant 2 JAR 1 ***:");
                UC2.runFromJarVariant2_static("file:/W:/java/eclipse/workspaces/simped_test/CP1/JAR1.jar");
                System.out.println("\n*** static UC2: Variant 2 JAR 2 ***:");
                UC2.runFromJarVariant2_static("file:/W:/java/eclipse/workspaces/simped_test/CP2/JAR2.jar");
                // Crashes
                final UC2 uc2 = new UC2();
                System.out.println("\n*** UC2: Variant 2 JAR 1 ***:");
                uc2.runFromJarVariant2("file:/W:/java/eclipse/workspaces/simped_test/CP1/JAR1.jar");
                System.out.println("\n*** UC2: Variant 2 JAR 2 ***:");
                uc2.runFromJarVariant2("file:/W:/java/eclipse/workspaces/simped_test/CP2/JAR2.jar");
        private static void runFromJarVariant1(final String jarFileURL)
            throws MalformedURLException,
                   ClassNotFoundException,
                   InstantiationException,
                   IllegalArgumentException,
                   IllegalAccessException,
                   InvocationTargetException,
                   SecurityException,
                   NoSuchMethodException {
            final URL url = new URL(jarFileURL);
            final URLClassLoader cl =
                new URLClassLoader(new URL[]{url},
                                   Thread.currentThread().getContextClassLoader());
            final Class clazz = cl.loadClass("TestClass1");
            final Object testClass1 = clazz.newInstance();
            final Method testMethod1 = clazz.getMethod("testMethod", null);
            testMethod1.invoke(testClass1, null);
        private static void runFromJarVariant2(final String jarFileURL)
            throws MalformedURLException,
                   ClassNotFoundException,
                   InstantiationException,
                   IllegalArgumentException,
                   IllegalAccessException,
                   InvocationTargetException,
                   SecurityException,
                   NoSuchMethodException {
            final URL url = new URL(jarFileURL);
            final URLClassLoader cl =
                new URLClassLoader(new URL[]{url},
                                   Thread.currentThread().getContextClassLoader());
            final Class clazz = cl.loadClass("TestClass1");
            final TestClass1 testClass1 = new TestClass1();
            testClass1.testMethod();
    UC1.java
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
    public class UC1 {
        public void runFromJarVariant1(final String jarFileURL)
            throws MalformedURLException,
                   ClassNotFoundException,
                   InstantiationException,
                   IllegalArgumentException,
                   IllegalAccessException,
                   InvocationTargetException,
                   SecurityException,
                   NoSuchMethodException {
            final URL url = new URL(jarFileURL);
            final URLClassLoader cl =
                new URLClassLoader(new URL[]{url},
                                   Thread.currentThread().getContextClassLoader());
            final Class clazz = cl.loadClass("TestClass1");
            final Object testClass1 = clazz.newInstance();
            final Method testMethod1 = clazz.getMethod("testMethod", null);
            testMethod1.invoke(testClass1, null);
    UC2.java
    import java.lang.reflect.InvocationTargetException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
    public class UC2 {
        public void runFromJarVariant2(final String jarFileURL)
        throws MalformedURLException,
               ClassNotFoundException,
               InstantiationException,
               IllegalArgumentException,
               IllegalAccessException,
               InvocationTargetException,
               SecurityException,
               NoSuchMethodException {
            final URL url = new URL(jarFileURL);
            final URLClassLoader cl =
                new URLClassLoader(new URL[]{url},
                                   Thread.currentThread().getContextClassLoader());
            final Class clazz = cl.loadClass("TestClass1");
            final TestClass1 testClass1 = new TestClass1();
            testClass1.testMethod();
         * Identic to the "runFromJarVariant2" method,
         * except that it is static
        public static void runFromJarVariant2_static(final String jarFileURL)
        throws MalformedURLException,
               ClassNotFoundException,
               InstantiationException,
               IllegalArgumentException,
               IllegalAccessException,
               InvocationTargetException,
               SecurityException,
               NoSuchMethodException {
            final URL url = new URL(jarFileURL);
            final URLClassLoader cl =
                new URLClassLoader(new URL[]{url},
                                   Thread.currentThread().getContextClassLoader());
            final Class clazz = cl.loadClass("TestClass1");
            final TestClass1 testClass1 = new TestClass1();
            testClass1.testMethod();
    }

    2. i need to load the class to the same JVM (i.e. to
    the same environment) of the current running
    aplication, so that when the loaded class is run, it
    would be able to invoke methods on it!!!
    ClassLoader(s) do this. Try the URLClassLoader.
    (I was talking about relatively esoteric "security"
    issues when I mentioned the stuff about Class objects
    "scope".) You might use the URLClassLoader kind of
    like this.
    Pseudo-code follows:
    // setup the class loader
    URL[] urls = new URL[1];
    urls[0] = new URL("/path/to/dynamic/classes");
    URLClassLoader ucl = new URLClassLoader(urls);
    // load a class & use make an object with the default constructor
    Object tmp = ucl.loadClass("dynamic.class.name").newInstance();
    // Cast the object to a know interface so that you can use it.
    // This may be used to further determine which interface to cast
    // the class to. Or it may simply be the interface to which all
    // dynamic classes have to conform in your program.
    InterfaceImplementedByDynamicClass loadedObj =
        (InterfaceImplementedByDynamicClass)tmp;It's really not as hard as it sounds, just write a little test of
    this and you will see how it works.

  • TEI class- want to instantiate a Bean into the page

    I have a TEI class which I am using to add an object to the page.
              I am able to address this object by using (psuedo code below)
              <%= object.getName() %>
              however, if I try to call the object with a usebean tag, like
              <jsp:getProperty name="object" property="Name"/>
              I get an error:
              /myfile.jsp(40): object is not defined as bean
              probably occurred due to an error in /myfile.jsp line 40:
              <jsp:getProperty name="object" property="Name"/>
              any ideas on how to instantiate an object into the page so that it is a
              bean?
              right now I am using the code from the API_taglib.html document:
              public VariableInfo[] getVariableInfo(TagData data) {
              return new VariableInfo[] {
              new VariableInfo("object",
              "fully.qualified.classfilename",
              true,
              VariableInfo.NESTED),
              

    Josh, I think you have to use "useBean". i.e. <jsp:useBean id="object"
              class="java.lang.Object" scope="page | request | session | application">
              before you can reference.
              -E
              Josh Lannin wrote:
              > I have a TEI class which I am using to add an object to the page.
              > I am able to address this object by using (psuedo code below)
              >
              > <%= object.getName() %>
              >
              > however, if I try to call the object with a usebean tag, like
              >
              > <jsp:getProperty name="object" property="Name"/>
              > I get an error:
              >
              > /myfile.jsp(40): object is not defined as bean
              > probably occurred due to an error in /myfile.jsp line 40:
              > <jsp:getProperty name="object" property="Name"/>
              >
              > any ideas on how to instantiate an object into the page so that it is a
              > bean?
              >
              > right now I am using the code from the API_taglib.html document:
              >
              > public VariableInfo[] getVariableInfo(TagData data) {
              > return new VariableInfo[] {
              > new VariableInfo("object",
              > "fully.qualified.classfilename",
              > true,
              > VariableInfo.NESTED),
              > };
              > }
              

  • Can not boost

    macbook pro 15'  it won't start up, just showing a gray screen with apple logo on it, a runing wheel..... for 30 minutes.
    help, urgent!

    Kind of late, but I noticed this thread is marked as unanswered.
    Just a quick note. Simon's blob doesn't report it, so that might not even be necessary:
    If you build boost from scratch, you need to patch libs/python/src/object/class.cpp
    453:  object module_prefix()
    454:  {
    455:      return object(
    456:          PyObject_IsInstance(scope().ptr(), upcast<PyObject>(&PyModule_Type))
    457:          ? object(scope().attr("__name__"))
    458:          : api::getattr(scope(), (const char*)"__module__", str()) // Added the cast to const char*
    459:          );
    460:  }After that, just type make and wait until everything is built.

  • UIX-XML BC4J - Unexpected errors using paths and DeltaTree on a particular UIX page

    We are using a PageDescription to dynamically change a UIX tree using the DeltaTree technique described in the Dynamic Structure for For UIX Pages chapter of the UIX Developers Guide.
    We search for a particular node using PathUtils.FindPathWithNodeID(RenderingContext context, UINode from, java.lang.String nodeID), but this fails when the page contains nested ViewObjectScopes.
    The method throws a NullPointerException, and the render fails:
    29/08/02 9.08 Valutazioni: java.lang.NullPointerException
         oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList(oracle.cabo.ui.RenderingContext)
         int oracle.cabo.ui.collection.DataObjectListNodeList.size(oracle.cabo.ui.RenderingContext)
         int oracle.cabo.ui.BaseUINode.getIndexedChildCount(oracle.cabo.ui.RenderingContext)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils.findPathWithNodeID(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, java.lang.String)
         oracle.cabo.ui.UINode com.websiteitalia.wsdk.uix.pageflow.PageFlowManager.getRootUINode()
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageDescriptionProxy.getRootUINode()
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.HTMLUINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
         void oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
         void oracle.cabo.servlet.AbstractPageBroker.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
         oracle.cabo.servlet.Page oracle.cabo.servlet.PageBrokerHandler.handleRequest(oracle.cabo.servlet.BajaContext)
         void oracle.cabo.servlet.BajaServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
         void com.evermind.util.ThreadPoolThread.run()
    We found the element of the UIX page that causes the problem:
    <bc4j:viewObjectScope name="ElementsView" >
    <contents>
         <bc4j:rowScope name="NewElement" >
         <contents>     
              <bc4j:region automatic="false" >
                   <bc4j:key>
                        <bc4j:rowKey name="keyElement"/>
                   </bc4j:key>
                   <contents>
                        <bc4j:attrScope name="FlgState">
                        <contents>
                             <messageChoice name="FlgState" prompt="State" >
                                  <boundAttribute name="selectedValue">
                                       <concat>
                                            <bc4j:attrProperty name="value"/>
                                            <fixed text=""/>
                                       </concat>
                                  </boundAttribute>
                                  <contents>
                                       <!-- This is the nested vo scope causing the error -->
                                       <bc4j:viewObjectScope name="DecodeStateView" >
                                       <contents data:childData="list@DecodeState">
                                            <option data:value="StateCode"
                                                 data:text="StateDescription"/>
                                       </contents>
                                       </bc4j:viewObjectScope>
                                  </contents>
                             </messageChoice>
                        </contents>
                        </bc4j:attrScope>
                   </contents>
              </bc4j:region>
         </contents>
         </bc4j:rowScope>
    </contents>
    </bc4j:viewObjectScope>
    This usage of nested view object scopes has been explained in reply of a previous post, How to databind the children of a UIX XML choice, and before ours attempts to modify the tree it worked fine. Removing the nested view object scope the page makes the page render correctly, but we need it to retrieve the description of its state.
    We get the same behaviour (and a much similar stack trace, with the same oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList (oracle.cabo.ui.RenderingContext) throwing a NullPointerException) if we use NodeUtils.createPreorderDescendentAttributeEnumeration method instead of PathUtils.

    It's a bug in the DataObjectListNodeList class that's up at the top of
    the stack. It's been fixed for 9.0.3. The bit of XML that's triggering
    it isn't the <viewObjectScope>s, but the "data:childData".
    I believe you can workaround this bug by not passing a null RenderingContext to
    findPathWithNodeID(). Now, you don't have a real RenderingContext, and we
    don't especially need one - "null" is legit here, but I think if
    you just pass "new oracle.cabo.ui.RootRenderingContext()" then you'll
    get around this bug.

  • Script Libraries

    I'm attempting to load the resulting swf of a swc build manually. Due to my particular environment, we have a need to segregate class definitions into swcs (where it makes sense) to remove redundant code from output swfs.
    In a nutshell, I'm defining a class (LibA) in a swf that I'm building with compc. I'm compiling it both into swc and directory formats so I can easily extract library.swf from the directory to load at runtime (external linkage) and use the swc to compile out from any swf's built either with Flash CS5 or mxmlc.
    LibA.as:
    package
        public class LibA
            public function LibA()
                trace("*** LibA()");
    Main.as:
    package
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.net.URLRequest;
        import flash.system.LoaderContext;
        public class Main extends Sprite
            private var self:Main;
            private var context:LoaderContext;
            public function Main()
                var l:Loader = new Loader();
                self = this;
                l.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event) {
                    self.addChild(l.content);
                    var liba:LibA = new LibA();
                l.load(new URLRequest("./libs/build/liba.swf"));
    I build the swc/directory swc with
    compc -output libs/build/liba.swc -include-sources libs/LibA.as -debug=true
    and I set the appropriate linkage in AS3 settings in Flash CS5 when building Main (class linked directly to the stage).
    Everything publishes without an issue.
    However, at runtime I get VerifyError: Error #1014: Class LibA could not be found.
    What am I missing here? I want to be able to load and use classes defined within liba.swf from myMain.swf.
    Full trace dump:
    verify Function/<anonymous>()
                            stack:
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      0:getlex 4
                            stack: Main?
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      2:getlex 7
                            stack: Main? flash.display::Loader?
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      4:getproperty content
                            stack: Main? flash.display::DisplayObject?
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      6:callpropvoid addChild 1
                            stack:
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      9:findpropstrict LibA
                            stack: Object
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      11:constructprop 10 0
                            stack: *
                            scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ Main$ Main Main]
                             locals: Object flash.events::Event? *
      14:coerce LibA
    VerifyError: Error #1014: Class LibA could not be found.

    If I understand your posting correctly.. then I have a problem with it. Your "correct answer" is based on the assumption that you know what the interviewer meant by "what script libraries are in Oracle?". It also assumes that the interviewer places more worth in copying and pasting the work of others than learning by simply trying something yourself*.
    And Mrs Assumption is the mother of the Fubar kids.
    The correct response would have been to asked the interviewer to explain what he meant by "script libraries in Oracle".
    * E.g. in an interview, I will hold a candidate in much higher esteem if he knows RFC821 because he struggled with UTL_SMTP, versus having copied and pasted someone elses code (from a script library), writing something that worked 1st time around.
    In the first instances the candidate shows proper problem analysis skills. In the latter situation, he simply shows he capable of copying others work. The first type of candidate I will be able to assign complex tasks too as he has the tools and mindset to deal with resolving complex problems. The latter type of candidate is a dime a dozen and nothing special - simply pulling a 9 to 5 job without demonstrating any skills worth noticing (or paying extra for).

  • Memory Leak with JDialog in Java 1.4.2_07

    Hello!
    All books I have read say to close a JDialog, it is enough to call the Method "dispose". Now I have written my first applikation an with every Dialog I open, the Software needs more RAM. With every Dialog I open, my software needs 1,5 MB RAM.
    I can`t reuse the Dialogs, because the user needs to look at view at the same time
    The Question is, how to close a JDialog correct that the GC can clean all Objects in RAM.
    Here are my Example Programm where you can view the differences. I tryed a view things out. With every Dialog the software needs xxx kb of RAM (its only a little example).
    Look at the Task Manager to look the real RAM needage.
    Thanks for Help
    Rainer
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    public class TestRAMUsage extends JFrame {
         private JPanel jContentPane = null;
         private JMenuBar jJMenuBar = null;
         private JMenu fileMenu = null;
         private JMenuItem exitMenuItem = null;
         private JButton jB_showandclose_normal = null;
         private JButton jB_showandclose_advanced = null;
          * This method initializes jB_showandclose_normal     
          * @return javax.swing.JButton     
         private JButton getJB_showandclose_normal() {
              if (jB_showandclose_normal == null) {
                   jB_showandclose_normal = new JButton();
                   jB_showandclose_normal.setBounds(new java.awt.Rectangle(43,30,214,18));
                   jB_showandclose_normal.setText("open/close Dialog normal x 50");
                   jB_showandclose_normal.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                             for (int i = 0; i < 50; i++) {
                                  TestDialog td = new TestDialog();
                                  td.show();
                                  td.close_normal();
                             System.gc();
              return jB_showandclose_normal;
          * This method initializes jB_showandclose_advanced     
          * @return javax.swing.JButton     
         private JButton getJB_showandclose_advanced() {
              if (jB_showandclose_advanced == null) {
                   jB_showandclose_advanced = new JButton();
                   jB_showandclose_advanced.setBounds(new java.awt.Rectangle(16,76,260,18));
                   jB_showandclose_advanced.setText("open/close Dialog advanced x 50");
                   jB_showandclose_advanced.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                             for (int i = 0; i < 50; i++) {
                                  TestDialog td = new TestDialog();
                                  td.show();
                                  td.close_advanced();
                             System.gc();
              return jB_showandclose_advanced;
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              TestRAMUsage application = new TestRAMUsage();
              application.show();
          * This is the default constructor
         public TestRAMUsage() {
              super();
              initialize();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              this.setJMenuBar(getJJMenuBar());
              this.setSize(300, 200);
              this.setContentPane(getJContentPane());
              this.setTitle("Application");
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private JPanel getJContentPane() {
              if (jContentPane == null) {
                   jContentPane = new JPanel();
                   jContentPane.setLayout(null);
                   jContentPane.add(getJB_showandclose_normal(), null);
                   jContentPane.add(getJB_showandclose_advanced(), null);
              return jContentPane;
          * This method initializes jJMenuBar     
          * @return javax.swing.JMenuBar     
         private JMenuBar getJJMenuBar() {
              if (jJMenuBar == null) {
                   jJMenuBar = new JMenuBar();
                   jJMenuBar.add(getFileMenu());
              return jJMenuBar;
          * This method initializes jMenu     
          * @return javax.swing.JMenu     
         private JMenu getFileMenu() {
              if (fileMenu == null) {
                   fileMenu = new JMenu();
                   fileMenu.setText("File");
                   fileMenu.add(getExitMenuItem());
              return fileMenu;
          * This method initializes jMenuItem     
          * @return javax.swing.JMenuItem     
         private JMenuItem getExitMenuItem() {
              if (exitMenuItem == null) {
                   exitMenuItem = new JMenuItem();
                   exitMenuItem.setText("Exit");
                   exitMenuItem.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                             System.exit(0);
              return exitMenuItem;
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    public class TestDialog extends JDialog {
         private static final long serialVersionUID = -4326706771573368209L;
         private JPanel jContentPane = null;
         private JButton jB_drucken = null;
         private JTextField jTF_hallo = null;
         private JButton jB_close = null;
          * This is the default constructor
         public TestDialog() {
              super();
              initialize();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setSize(541, 255);
              this.setTitle("Speicher Dialog");
              this.setContentPane(getJContentPane());
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private JPanel getJContentPane() {
              if (jContentPane == null) {
                   jContentPane = new JPanel();
                   jContentPane.setLayout(null);
                   jContentPane.add(getJB_drucken(), null);
                   jContentPane.add(getJTF_hallo(), null);
                   jContentPane.add(getJB_close(), null);
              return jContentPane;
          * This method initializes jB_drucken
          * @return javax.swing.JButton
         private JButton getJB_drucken() {
              if (jB_drucken == null) {
                   jB_drucken = new JButton();
                   jB_drucken.setBounds(new java.awt.Rectangle(45, 88, 211, 19));
                   jB_drucken.setText("Sag Hallo Welt");
              return jB_drucken;
          * This method initializes jTF_hallo
          * @return javax.swing.JTextField
         private JTextField getJTF_hallo() {
              if (jTF_hallo == null) {
                   jTF_hallo = new JTextField();
                   jTF_hallo.setBounds(new java.awt.Rectangle(269, 88, 228, 19));
              return jTF_hallo;
          * This method initializes jB_close
          * @return javax.swing.JButton
         private JButton getJB_close() {
              if (jB_close == null) {
                   jB_close = new JButton();
                   jB_close.setBounds(new java.awt.Rectangle(196, 179, 109, 22));
                   jB_close.setText("Schlie�en");
                   jB_close.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                             try {
                                  // setVisible(false);
                                  dispose();
                                  removeAll();
                                  // getContentPane().removeAll();
                                  // finalize();
                             } catch (Throwable e1) {
                                  // TODO Auto-generated catch block
                                  e1.printStackTrace();
              return jB_close;
          * Dispose the Dialog
         public void close_normal() {
              dispose();
          * Set all Variables to null
          * Remove all Container
          * dispose the Dialog
          * and finalize it!
         public void close_advanced() {
              // System.out.println(this.);
              dispose();
              // show();
              jContentPane = null;
              jB_drucken = null;
              jTF_hallo = null;
              jB_close = null;
              getContentPane().removeAll();
              removeAll();
              try {
                   finalize();
              } catch (Throwable e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    } // @jve:decl-index=0:visual-constraint="10,10"

    I have use Methods in some Software Produkts. But if your Software
    use 30 MB in RAM the Runtime classes say 12 MB used. I don`t think
    that this works hereThe 12 MB is the memory used of the available 30 MB memory available. Once the VM get its memory from the OS, it does not have to return the memory back to the OS right away.
    By calling System.gc() does nt guarentee the garbage collector to be activated right away. you are just asking the garbage collector to run when it get a chance. Since the emeory is not near the max memory available...the gc is likely not going to run. Futhermore, if your application is running..the gc is likely wont run, unless memory is needed when you reach the max limit.
    because the user want to view at more than one Dialog at the same
    timeunderstandable..i just hope the 50 dialogs is just for testing the memory. i can't imagine any user would want to open 50 dialog at the same time =)
    And the other is, that the Variables in the Dialog class wouldn`t clean
    in RAM (that was the reason to set all to null!)why would it not be? When you dispose the dialog, the object will be null out..so when the garbage collector kick in, it will reclaim the memory. Now, if you have references to object in the dialog, that reference will be null out as well..the object may still exist (by having another live object having a reference to it)...the garbage collector would reclaim the dialog memory..but not the "live" object that the dialog has reference to.
    I ran the application..testing both button.
    The top button..there were little memory consumption..the second button consume a little memory bit-by-bit. I see no memory leak here. What happens is you called GC() 50 times..but it will only run one time when it get a chance...by nulling out the variables, and calling finalize()..it actually slow down the garbage collecting...that's why you should not even obther with having those two method. Furthermore, finalize method may not even be called.
    Memory leak occurs when you have a reference from an object still hanging around, but that object is no longer needed. This is a design issue.
    example
    public class A{
        Item item = new Item();
        public void getItem(){ return item; };
    public class B{
        Item item;
        public B(A a){
            item = a.getItem();
    A a = new A();
    B b = new B(a);
    a = null;when a is null out..the item reference is null, but the actual object still exist and 'b' has a reference to it. so by nulling out those object does not mean you just got rid of the object. it's better to let the object scope run out..and the garbage collector to collect it.. When you null out the object, you could accidentally null out an object that some other object may be using.

  • Bw implementation phases

    Hi gurus,
      In a bw implementation project 5 phases are there.
    As a bw consultant in that five phases what is our responcibilities.
    points will be assigned.
    Thanku

    Hi Chinnu,
    Phase 1: Upgrade Project Preparation -
    The purpose of this phase is to provide initial planning and preparation for your R/3 upgrade project. Although each upgrade project has unique objectives, scope and priorities, the steps in Phase 1 help identify and plan the primary topics that must be considered.
    Phase 2: Business Blueprint -
    The purpose of this phase is to establish a common understanding in your company about how the new R/3 release will handle your current business processes after the R/3 upgrade.
    Phase 3: Realization of DEV and QAS -
    The purpose of this phase is to perform the upgrade of all non-production R/3 Systems, which normally include development (DEV) and quality assurance (QAS) systems, and to ensure the quality of this upgrade process by comprehensive testing. You need to upgrade your DEV and QAS systems before performing the upgrade for your production system (PRD). Furthermore, you will develop your end user documentation and training in this phase.
    Phase 4: Realization of Production -
    The purpose of this phase is to complete the final preparation for the upgrade of the production R/3 System, and end user training, if necessary. On the successful completion of this phase, you are ready to run your business in your upgraded production R/3 System.
    Phase 5: Go Live and Support -
    The purpose of this phase is the transition from your previous R/3 System to a newly upgraded and improved R/3 System. Be aware that you must set up an ongoing support organization to service your R/3 users, both during the first few days of your upgraded production operations, and on an ongoing basis.
    For Roles & Resposibilities:
    check these links:
    http://help.sap.com/bp_biv335/BI_EN/documentation/BW_ROLES_SKILLS.doc
    /people/mary.huang/blog/2005/06/01/bw-project-management-as-a-jigsaw-puzzle
    /people/marc.bernard/blog/2005/02/08/follow-me-into-the-world-of-business-intelligence
    /people/arunkumar.sampathkumar/blog/2006/09/08/configuring-ep-for-connecting-to-bw
    Also check:
    http://help.sap.com/bp_biv135/html/index.htm
    Go through these links:
    http://csc-studentweb.lrc.edu/swp/Berg/articles/Managing%20SAP%20BW%20projects%20part-1%20v7.ppt
    http://csc-studentweb.lrc.edu/swp/Berg/articles/Managing%20SAP%20BW%20projects%20part-2%20v15.ppt
    Standard business content queries, cubes etc. depending on application you can find here:
    http://help.sap.com/saphelp_nw04/helpdata/en/37/5fb13cd0500255e10000000a114084/frameset.htm
    Responsibilities of an implementation project...
    For ex, Lets say If its a fresh implementation of BI or for that matter you are implementing SAP...
    First and foremost will be your requirements gathering from the client. Depending upon the requirements you will creat a business blueprint of the project which is the entire process from the start to the end of an implementation...
    After the blue print phase sign off we start off with the realization phase where the actual development happens... In our example after installing the necessary softwares, patches for BI we need to discuss with the end users who are going to use the system for inputs like how they want a report to look like and what are the Key Performance Indicators(KPI) for the reports etc., basically its a question and answer session with the business users... After collecting those informations the development happens in the development servers...
    After the development comes to an end the same objects are tested in quality servers for any bugs, errors etc., When all the tests are done we move all the objects to the production environment and test it again whether everything works fine...
    The Go-Live of the project happens where the actually postings happen from the users and reports are generated based on those inputs which will be available as an analytical report for the management to take decisions...
    The responsibilites vary depending on the requirement... Initially the business analyst will interact with the end users/managers etc., then on the requirements the software consultants do the development, testers do the testing and finally the go-live happens...
    BW Data Architect
    Description
    The BW Data Architect is responsible for the overall data design of the BW project. This includes the design of the:
    » BW InfoCubes (Basic Cubes, Multi-cubes, Remote cubes, and Aggregates)
    » BW ODS Objects
    » BW Datamarts
    » Logical Models
    » BW Process Models
    » BW Enterprise Models
    The BW Data Architect plays a critical role in the BW project and is the link between the end user’s business requirements and the data architecture solution that will satisfy these requirements. All other activities in the BW project are contingent upon the data design being sound and flexible enough to satisfy evolving business requirements.
    Time Commitment
    – the time which must be committed to this Role to ensure the project requirements are met
    Project Complexity Time Commitment
    Low If the BW project utilizes standard BW content and InfoCubes, this role can be satisfied by the BW Application Consultant.
    Medium If the BW project requires enhancements to the standard BW content and InfoCubes and/or requires the integration of non-SAP data, this role may require a committed resource.
    High If the BW project requires significant modification and enhancement to standard BW content and InfoCubes, it is highly recommended that an experienced resource be committed full-time to the project.
    Key Attributes
    The BW Data Architect must have:
    » An understanding of the BW data architecture
    » An understanding of multidimensional modeling
    » An understanding of the differences between operational systems data modeling and data warehouse data modeling
    » An understanding of the end user’s data
    » An understanding of the integration points of the data (e.g., customer number, invoice number)
    » Excellent troubleshooting and analytical skills
    » Excellent communication skills
    » Technical competency in data modeling
    » Multi-language skills, if an international implementation
    » Working knowledge of the BW and R/3 application(s)
    » Experience with Data Modeling application software (i.e., ERWIN, Oracle Designer, S-Designer, etc.)
    Key Tasks
    The BW Data Architect is responsible for capturing the business requirements for the BW project. This effort includes:
    » Planning the business requirements gathering sessions and process
    » Coordinating all business requirements gathering efforts with the BW Project Manager
    » Facilitating the business requirements gathering sessions
    » Capturing the information and producing the deliverables from the business requirements gathering sessions
    » Understanding and documenting business definitions of data
    » Developing the data model
    » Ensuring integration of data from both SAP and non-SAP sources
    » Fielding questions concerning the data content, definition and structure
    This role should also address other critical data design issues such as:
    » Granularity of data and the potential for multiple levels of granularity
    » Use of degenerate dimensions
    » InfoCube partitioning
    » Need for aggregation at multiple levels
    » Need for storing derived BW data
    » Ensuring overall integrity of all BW Models
    » Providing Data Administration development standards for business requirements analysis and BW enterprise modeling
    » Provide strategic planning for data management
    » Impact analysis of data change requirements
    As stated above, the BW Data Architect is responsible for the overall data design of the BW project. This includes the design of the:
    » BW InfoCubes (Basic Cubes, Multi-cubes, Remote cubes, and Aggregates)
    » BW ODS Objects
    » BW Datamarts
    » Logical Models
    » BW Process Models
    » BW Enterprise Models
    BW Project Implementation and Rollout
    Global IDs uses a modified version of the ASAP methodology to ensure a robust BW environment is implemented, tested, and delivered. The project milestones include the following:
    Blueprinting
    Realization
    Roll Out
    Post-Implementation Support
    Organizational Change Management
    BW Maintenance
    Once the BW environment is implemented, tested, and delivered, we can perform the maintenance using both onsite and offsite resources. Our maintenance contracts ensure that the customer can depend on us for:
    Troubleshooting and Error Correction
    Creation of New Infocubes
    Customization of reports
    Archiving and Storage
    Data Maintenance
    Focus
    Also Check the below Links:
    Check this link for GAP Analysis:
    Hope this helps
    Regards,
    Ravikanth

  • Nested methods

    I'm missing this programming techinque very much. I find 3 reasons to use nested methods: hierarchic code is easier to understand, no need to pass local variables as paraters and resulting speedup.
    Here is an example from one of the replays on the topic:
    class Foo {
         int num;
         void foo() {
              num = 3;
              class MethodClass {
                   void printHI() { System.out.println("HI"); }
              MethodClass.printHI();
              MethodClass.printHI();
    }The author of this example stated that it's very un-OO, meantime Java doesn't support nested methods.
    Is it really bad OO practise? I suppose that having nested methods makes reflection more complex, in place of class methods we would have hierarchy of methods. In fact Java classes should already have hirearcy of nested variables (classes). Why not to make the same thing for methods? I'm not sure wheter it's correct Dephi's RTTI and reflection but methods nesting doesn't harm to RTTI.
    I see that creating an instance of class just for calling one of its methods is not very effective and slows down the execution even more than passing local variables as parameters in the case of non-nested functions.

    Does this code looks like algorithm?
    method1() {
         do(1);
         do(2);
         do(3);
         do(1);
         do(2);
         do(3);
    }When do you define new procedure? IMO a procedure is a snippet of reusable code. Thus I would define procedure do123() {
         do(1);
         do(2);
         do(3);
    }and would write
    method1() {
         do123();
         do123();
    }Imagine that this sequence (do 1, do2, do3, do1, do2, do3) is not used only by method1. In this case procedure do123 is (re)used only by method1 scope. I can't find any reason to define this procedure in the object scope, even specifying it as private. do123 should be defined in the scope of method1. Even worse, when you want to use method1 local variables from do123.
    proposed.
    advantages:
         1) the procedure do123() is defined and
            used only at metod1 scope
         2) no need to pass parameter a into the procedure
            do123
    void method1() {
         int a = x;
         void do123() {
              use(a);
         do123();
    /*Java implementation 1.
    disadvantages:
         1) the procedure do123() is used only from method1 scope
            while it is defined at object scope
         2) we need to pass parameter a into the procedure do123 that
            is verbose too and sows down run time
    private void do123(int a) {
         use(a);
    void method1() {
         int a = x;
         do123(a);
    /*Java implementation 2.
    disadvantages:
         1) the procedure do123() is used only from the scope of
            method1 but is defined at the object scope
         2) we need to define variable a at the object scope while it
            is used only in method1
    private int a = x;
    private void do123() {
         use(a);
    void method1() {
         do123();
    }They told that private methods are inlined, but it is not possible for recursive calls and it is not true for normal privates, because there is a special bytecode to invoke private methods. Because methods are not inlined all parameters must be copied into new stack frame.
    Objects can incapsulate data and methods, methods incapsulate only local variables. If incapsulation is a key OOP notion then why we can't incapsulate methods onto methods?
    I'm trying to tell that nested methods is an extremly powerful feature in describing algoritms. Using local methods would lead to less verbose, easier to maintain and faster code.

  • UIX/XML BC4J - Controlling page flow in event handlers

    We have an event handler that executes some data processing using bc4j tags, and need to redirect the flow to another page, based on the value of some parameters. For example, we have a checkbox Prepare for another insert, and we want to check for its state in the event handler to determine which page to display.
    We tried the following code
    UIX page event handler:
    <event name="saveEvent" >
         <bc4j:findRootAppModule name="TipoPunteggioViewAppModule" >
              <bc4j:findViewObject name="TipoPunteggioView" >
                   <bc4j:findRow name="CreateTipoPunteggioView" >
                        <bc4j:setPageProperty name="keyTipoPunteggio" >
                             <bc4j:stringKey />
                        </bc4j:setPageProperty>
                        <bc4j:setAttribute name="FlgObsoleto" />
                        <bc4j:setAttribute name="Firma" />
                        <bc4j:setAttribute name="TitTipoPunteggio" />
                        <bc4j:insertRow/>
                        <bc4j:commit/>
                        <bc4j:executeQuery/>
                        <ctrl:method class="com.websiteitalia.valutazioni.handlers.Handlers"
                             method="anotherInsertEventHandler" />
                   </bc4j:findRow>
              </bc4j:findViewObject>
         </bc4j:findRootAppModule>
    </event>
    Java method event handler:
    public static EventResult anotherInsertEventHandler(BajaContext bCtx,
                                       Page page,
                                       PageEvent event) {
         // AnotherInsert is the name of the checkbox on the page
    if ("on".equals(event.getParameter("AnotherInsert"))) {
              return new EventResult(page);
         } else {
              return new EventResult(new Page("ListPage"));
    When we return the same page, things work fine, but when we return another page we get an ArrayIndexOutOfBoundException. We have also noticed that if we return a simple page, without data scopes and bc4j tags, we get the correct result. We are probably wrong in the manner we do the redirect inside of a java event handler, because seems that the page we return is not completely processed.
    Can anyone explain the available techniques to control the page flow, using UIX XML tags or Java APIs alone or both of these together? For example, how can be replicated the <ctrl:go> behavior using Java APIs?

    The UIX page works correctly if loaded directly, the error takes place only when we redirect in this manner from a page that has a different application module / view object scopes. In fact, when we redirect to a page that have the same scopes of the first (or when the second page has not scopes at all the simple page) the error doesnt occur. Thats why we suppose that some step of the page rendering process arent executed correctly, it seems that the new page still finds some of the old page (the scopes)..
    To redirect to a page from a java event handler we have returned an event result with the next page (see above post for a code snippet), is this the correct way? Can we simulate the ctrl:go tag from the java code (with the redirect=true option)? There are any other?

Maybe you are looking for

  • Composer Process Report XML Format

    Hi, We generated 'Process Report' -- XML format in Oracle BPM Composer. After generating saved content in a xml file. When tried to open this file, getting error message like not in proper xml format etc., Have we missed any thing in installing or co

  • Creating fields in BI server

    hi all  expert can anybody give me answer how to create fields in BI server . I m new in BI. Avadhesh

  • When using classic dialog controls in labview 7.1 why does the text color that I have selected always stays black?

    I have an older program created in LV 6.0.2 that uses dialog buttons. The text color is red or blue. When I load it into LV 7.1 the color stays black. When I edit text I can see that the color is correct but it will not display the color when I leave

  • MIDI In button (Step entry) in Piano Roll editor

    I'm observing a behavior in the Piano Roll editor that does not seem to be documented in the user manual. If I double-click on it fast enough, it turns red with the MIDI plug graphic filled in black. In this state, it will not accept MIDI input from

  • Calling the T code from the reprt

    Hi, I am displaying the list of materials.if the user clicks on the particular material. The material number shd copy in MM03 Tcode intial screen and the user can see full details of the material. <<removed_by_moderator>> Regards, Rasheed. Edited by: