How to detect an object on a JPanel??

Hi everyone,
I have a question that might have been answered before but unfortunately I did not find it in Java forums.
Actually I have a panel that my contains some objects with different shapes. I am looking for a way to detect these objects when the mouse is over them. (For example to get the class or the properties of these objects).
Does any body have any idea how can I do this? Even if it is a link to previous answers I would be glad to have it.
Sorry to bother and have a nice day.
Pishi

how are you adding these objects or whatever to the UI? are you painting them in yourself?Its a bit complicated.. I create some shapes in a drawing panel and I save them as a sort of hematoma (bruise) object that has this shape.
In another panel I will upload this object and the user should detect this object by moving his mouse on the panel. (This Panel is not shown to the user and he has to detect it by the variation of the cursor head).
someone has proposed a solution but do u have other ones? that would be welcome :)
tnx

Similar Messages

  • How to detect session objects in a project

    Hi,
    There are many session objects in our project which has over 1000 classes. What would you suggest as the best practice to identify all of them. I am using eclipse. How to detect they are serialized or not. If not serialized how could i make sure they are serializable or not.?
    Appreciate your time.
    Pralav

    If not serialized how could i make sure they are serializable or not.?By implementing the Serializable interface.
    If you want to ensure they can't be serialised, then you implement Externalisable and throw exceptions when you override readExternal() and writeExternal()
    As for identifying the objects that are added to a session.... do a search for things like session.setAttribute() on your code. No easy way.
    regards,
    Owen

  • How to detect the object or session in a database with library cache lock

    Hi Everyone,
    We've been experiencing frequent and high time waits for this event: library cache lock.
    - What causes this?
    - Is there a way to detect the object being locked?
    (this doesnt show up in V$LOCK)
    - Is there a way to detect the session that is causing the lock? aka blocking session?
    (I can detect the objects being blocked, they show up in v$session)
    thanks,

    Similar post is here, maybe that helps already:
    library cache lock
    And You can read this as well:
    http://www.ixora.com.au/q+a/0101/19235723.htm

  • How to detect modifications in an ABAP Object?

    Hi all,
    I was wondering if there's a simple way of detecting modifications in an ABAP Object.
    Imagine an ABAP entity object which holds several attributes and you need to know if this object has been modified. Instead of having to check attribute by attribute to compare it's previous value with the new one I came with the idea of calculating a HASH code for the object before the execution of the application which can change the object attributes and comparing it with the HASH calculated for the same object after the execution.
    That way, checking only two hashes simplifies a lot the code. So.... is there any way of calculating a HASH for any object instance? if not... any other approach?
    Thanks in advance.

    Sorry Hüseyin Dereli, but I'm not talking about source version control, but how to detect attribute modifications of an ABAP Object Instance.
    for example, suppose you have a program which reads data from DataBase and stores temporally that data into an ABAP Object like this:
    ABAP Object AAAA{
       private attr1
       private attr2
    and passes this ABAP Object into a screen for user interaction, or even a FunctionModule or Method or anything else...
    data: myObject type ref to AAAA.
    myObject-attr1 = 1
    myObject-attr2 = 2.
    CallFunction AnyFunction Changing data = myObject
    After the execution of AnyFunction I would like to know if myObject has been changed but I'm trying not to check attribute by attribute because if myObject has a lot of attributes (not in this example but in the real source code)
    It would be great if we could do something like this:
    data: myObject type ref to AAAA,
              oldHash type hash,
               newHash type hash.
    myObject-attr1 = 1
    myObject-attr2 = 2.
    oldHash = myObject->get_hash()
    CallFunction AnyFunction Changing data = myObject
    newHash = myObject->get_hash()
    if oldHash NE newHash.
    * MyObject has been modified
    endif.

  • How to make a code in which i have to detect 3 objects

    Hello everyone,
    I am new in Labview. I want to make a code in which i have to detect 3 objects and they are in different shapes (rectangle, triangle etc).
    1. How many objects in image.
    2. What is the size of each object in image
    3. At what position they are laying.
    4. Data array of histogram of each object.
    5. What is the color of each object.
    Please help me out. I am confused with the tool. Which tool i will use for this Vision Assistant or Vision Builder AI or if i use labview directly to make the code what steps should follow to make this code.
    Thanks
    Zeeshan

    Hello Zeeshan,
    this is Vanessa, AE from Germany. I really like to help you with your project but like the other members already told you it would be easier if you have a certain problem.
    Using your Shapes.jpg you have several options in the Vision Assistant. For identifiying circular objects of different size the tool "Find circular Edge" from the "Machine Vision" tab is the right choice (see screenshot attached). The result will be the center position and the radius so on. The pattern match function is not the right option because each of your objects has a different shape. In order to use this tool you need several copies of your object.
    Do you really need colored images? For most application it is sufficient to use grayscale images. Be aware that some functions are only available for grayscale and your program will speed up.
    Please tell us more details about your project.
    Kind regards,
    Vanessa
    Attachments:
    vision assistant.PNG ‏305 KB

  • How to Get object that a JPanel belongs to.

    I created an object that has a JPanel. When that JPanel is clicked, how can I get the object to which its a GUI data member of?

    Hi,
    If you try JPanel.getParent() it will return the Container that it is in.
    If what you want is the creator you can derive from JPanel and add a constructor that has the creator as its only parm.
      JPanel panel = new JPanel(this);
    public class MyPanel extends JPanel {
      Object myCreator;
      public JPanel(Object creator) {
         super();
         myCreator = creator;
    }Now you can use myCreator to access that class that created it.
    Paul

  • How to pass/share components between different JPanels/Container

    Dear Friends,
    I know here a lot Java Guru, I met a problem below.
    How can I pass components between different JPanels??
    here, ListPanelMain.java is main,
    When I click a tree node in splitPane, I can see all its children on the right splitpane, but I hope they can be seen on another Panel called "ListRightPane.java"
    How to do it??
    Why cannot pass??
    [1]. main Program:
    package swing.com.test.test;
    import javax.swing.JFrame;
    import java.awt.BorderLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;
    import java.io.Serializable;
    import swing.com.test.test.ListPanel;
    import java.awt.GridLayout;
    public class ListPanelMain implements java.io.Serializable{
         private JFrame frame;
         * Launch the application
         * @param args
         public static void main(String args[]) {
              try {
                   ListPanelMain window = new ListPanelMain();
                   window.frame.setVisible(true);
              } catch (Exception e) {
                   e.printStackTrace();
         * Create the application
         public ListPanelMain() {
              initialize();
         * Initialize the contents of the frame
         private void initialize() {
              frame = new JFrame("FileTreePanelMain");
              frame.setBounds(100, 100, 900, 675);
         //     FieTreePanelComm      ftreecomm                = new      FieTreePanelComm();
              ListPanel                ftree                     = new      ListPanel("C:\\");
    //          ListAllFile           ftree                     = new      ListAllFile("C:\\");
         //     FileTreePanelText      fileTreePanelText      = new      FileTreePanelText(ftreecomm);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              final JPanel panel = new JPanel();
              panel.setLayout(new GridLayout(0, 2));
              frame.getContentPane().add(panel, BorderLayout.CENTER);
         //     final JSplitPane splitPane = new JSplitPane();
         //     frame.getContentPane().add(splitPane, BorderLayout.CENTER);
         //     splitPane.setLeftComponent(ftree);
              panel.add(ftree);
              final ListRightPanel listRightPanel = new ListRightPanel(ftree);
              //splitPane.setRightComponent(listRightPanel);
              panel.add(listRightPanel);
         frame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
         System.exit(0);
         frame.pack();
         frame.setVisible(true);
    [2]. Program 2:
    package swing.com.test.test;
    //File System Tree
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.io.File;
    import java.util.Iterator;
    import java.util.Vector;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;
    import javax.swing.JTree;
    import javax.swing.JPanel;
    import javax.swing.event.TreeModelEvent;
    import javax.swing.event.TreeModelListener;
    import javax.swing.event.TreeSelectionEvent;
    import javax.swing.event.TreeSelectionListener;
    import javax.swing.tree.TreeModel;
    import javax.swing.tree.TreePath;
    import java.io.Serializable;
    public class ListPanel extends JPanel implements Serializable{
    protected JTree fileTree;
    private FileSystemModel fileSystemModel;
    private JTextArea ltextArea = new JTextArea();
    protected JTextArea fileDetailsTextArea = new JTextArea();
    private String str = "";
         public String getlTextArea() {
                   //textArea.getText();
                   return str;
         public String setlTextArea(String ta) {
                   ltextArea.setText(ta);
                   str = ta;
                   return str;
    public ListPanel(String directory) {
    //super("JTree FileSystem Viewer");
                   setLayout(new BorderLayout());
                   final JPanel panel = new JPanel();
                   panel.setLayout(new BorderLayout());
              add(panel, BorderLayout.CENTER);
    fileDetailsTextArea.setEditable(false);
    fileSystemModel = new FileSystemModel(new File(directory));
    fileTree = new JTree(fileSystemModel);
    fileTree.setEditable(true);
    fileTree.addTreeSelectionListener(new TreeSelectionListener() {
    public void valueChanged(TreeSelectionEvent event) {
    System.out.println("1. What we save is: getlTextArea() =" + getlTextArea() );
    File file = (File) fileTree.getLastSelectedPathComponent();
    fileDetailsTextArea.setText(getFileDetails(file));
    final ListRightPanel lrp = new ListRightPanel(this);
    lrp.textArea.setText(getFileDetails(file));
    setlTextArea(getFileDetails(file));
    System.out.println("2. What we save is: getlTextArea() =" + getlTextArea() );
              final JSplitPane splitPane = new JSplitPane();
              panel.add(splitPane, BorderLayout.CENTER);
              final JPanel panel_1 = new JPanel();
              splitPane.setLeftComponent(panel_1);
              panel_1.add(new JScrollPane(fileTree));
              final JPanel panel_2 = new JPanel();
              splitPane.setRightComponent(panel_2);
              panel_2.add(new JScrollPane(fileDetailsTextArea));
    setVisible(true);
    private String getFileDetails(File file) {
    if (file == null)
    return "";
    StringBuffer buffer = new StringBuffer();
    if (file.listFiles()!=null){
         for (int i=0; i< file.listFiles().length; i++){
         buffer.append(((file.listFiles())) + "\n");
         System.out.println("List all files");
    return buffer.toString();
    public static void main(String args[]) {
    new ListPanel("c:\\");
    class FileSystemModel implements TreeModel {
    private File root;
    private Vector listeners = new Vector();
    public FileSystemModel(File rootDirectory) {
    root = rootDirectory;
    public Object getRoot() {
    return root;
    public Object getChild(Object parent, int index) {
    File directory = (File) parent;
    String[] children = directory.list();
    return new TreeFile(directory, children[index]);
    public int getChildCount(Object parent) {
    File file = (File) parent;
    if (file.isDirectory()) {
    String[] fileList = file.list();
    if (fileList != null)
    return file.list().length;
    return 0;
    public boolean isLeaf(Object node) {
    File file = (File) node;
    return file.isFile();
    public int getIndexOfChild(Object parent, Object child) {
    File directory = (File) parent;
    File file = (File) child;
    String[] children = directory.list();
    for (int i = 0; i < children.length; i++) {
    if (file.getName().equals(children[i])) {
    return i;
    return -1;
    public void valueForPathChanged(TreePath path, Object value) {
    File oldFile = (File) path.getLastPathComponent();
    String fileParentPath = oldFile.getParent();
    String newFileName = (String) value;
    File targetFile = new File(fileParentPath, newFileName);
    oldFile.renameTo(targetFile);
    File parent = new File(fileParentPath);
    int[] changedChildrenIndices = { getIndexOfChild(parent, targetFile) };
    Object[] changedChildren = { targetFile };
    fireTreeNodesChanged(path.getParentPath(), changedChildrenIndices, changedChildren);
    private void fireTreeNodesChanged(TreePath parentPath, int[] indices, Object[] children) {
    TreeModelEvent event = new TreeModelEvent(this, parentPath, indices, children);
    Iterator iterator = listeners.iterator();
    TreeModelListener listener = null;
    while (iterator.hasNext()) {
    listener = (TreeModelListener) iterator.next();
    listener.treeNodesChanged(event);
    public void addTreeModelListener(TreeModelListener listener) {
    listeners.add(listener);
    public void removeTreeModelListener(TreeModelListener listener) {
    listeners.remove(listener);
    private class TreeFile extends File {
    public TreeFile(File parent, String child) {
    super(parent, child);
    public String toString() {
    return getName();
    [3]. Program 3:
    package swing.com.test.test;
    import java.awt.BorderLayout;
    import java.io.File;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTree;
    import javax.swing.event.TreeModelEvent;
    import javax.swing.event.TreeModelListener;
    import javax.swing.event.TreeSelectionEvent;
    import javax.swing.event.TreeSelectionListener;
    import javax.swing.tree.TreeModel;
    import javax.swing.tree.TreePath;
    import java.io.Serializable;
    public class ListRightPanel extends JPanel implements TreeSelectionListener, Serializable{
         protected JTextArea textArea;
    //     protected ListAllFile laf;
    private String str = "";
              public String getlTextArea() {
                        //textArea.getText();
                        return str;
              public String setlTextArea(String ta) {
                        str = ta;
                        return str;
         * Create the panel
         public ListRightPanel(ListPanel laff) {
              super();
              setLayout(new BorderLayout());
              final JPanel panel = new JPanel();
              panel.setLayout(new BorderLayout());
              add(panel, BorderLayout.CENTER);
              textArea = new JTextArea();
    final String st = laff.getlTextArea();
    System.out.println("####################################");
    System.out.println("st=" + st);
         laff.fileTree.addTreeSelectionListener(new TreeSelectionListener() {
         public void valueChanged(TreeSelectionEvent event) {
         //laff.textArea.setText(getFileDetails(file));
              textArea.setText(getlTextArea());
         System.out.println("ListRightPanel Was Invoked from ListPanel!!getlTextArea() =" + getlTextArea() );
         System.out.println("st=" + st);
              panel.add(textArea, BorderLayout.CENTER);
         public void valueChanged(TreeSelectionEvent e){};
    It is runnable program, just compile and run it in Console is ok,
    Regards
    Sunny

    Thnaks, code post again, see
    [1]. package swing.com.test.test;
    import javax.swing.JFrame;
    import java.awt.BorderLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;
    import java.io.Serializable;
    import swing.com.test.test.ListPanel;
    import java.awt.GridLayout;
    public class ListPanelMain implements java.io.Serializable{
         private JFrame frame;
          * Launch the application
          * @param args
         public static void main(String args[]) {
              try {
                   ListPanelMain window = new ListPanelMain();
                   window.frame.setVisible(true);
              } catch (Exception e) {
                   e.printStackTrace();
          * Create the application
         public ListPanelMain() {
              initialize();
          * Initialize the contents of the frame
         private void initialize() {
              frame = new JFrame("FileTreePanelMain");
              frame.setBounds(100, 100, 900, 675);
         //     FieTreePanelComm      ftreecomm                = new       FieTreePanelComm();
              ListPanel                 ftree                     = new      ListPanel("C:\\");
    //          ListAllFile            ftree                     = new      ListAllFile("C:\\");
         //     FileTreePanelText      fileTreePanelText      = new      FileTreePanelText(ftreecomm);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              final JPanel panel = new JPanel();
              panel.setLayout(new GridLayout(0, 2));
              frame.getContentPane().add(panel, BorderLayout.CENTER);
         //     final JSplitPane splitPane = new JSplitPane();
         //     frame.getContentPane().add(splitPane, BorderLayout.CENTER);
         //     splitPane.setLeftComponent(ftree);
              panel.add(ftree);
              final ListRightPanel listRightPanel = new ListRightPanel(ftree);
              //splitPane.setRightComponent(listRightPanel);
              panel.add(listRightPanel);
                frame.addWindowListener(new WindowAdapter() {
                     public void windowClosing(WindowEvent e) {
                         System.exit(0);
                 frame.pack();
                 frame.setVisible(true);
    }[2] Program 2
    package swing.com.test.test;
    //File System Tree
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.io.File;
    import java.util.Iterator;
    import java.util.Vector;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;
    import javax.swing.JTree;
    import javax.swing.JPanel;
    import javax.swing.event.TreeModelEvent;
    import javax.swing.event.TreeModelListener;
    import javax.swing.event.TreeSelectionEvent;
    import javax.swing.event.TreeSelectionListener;
    import javax.swing.tree.TreeModel;
    import javax.swing.tree.TreePath;
    import java.io.Serializable;
    public class ListPanel extends JPanel implements Serializable{
      protected JTree fileTree;
      private FileSystemModel fileSystemModel;
      private JTextArea ltextArea = new JTextArea();
      protected JTextArea fileDetailsTextArea = new JTextArea();
      private String str = "";
         public  String getlTextArea()  {
                   //textArea.getText();
                      return str;
         public  String setlTextArea(String ta)  {
                   ltextArea.setText(ta);
                   str = ta;
                      return str;
      public ListPanel(String directory) {
        //super("JTree FileSystem Viewer");
                   setLayout(new BorderLayout());
                   final JPanel panel = new JPanel();
                   panel.setLayout(new BorderLayout());
                  add(panel, BorderLayout.CENTER);
        fileDetailsTextArea.setEditable(false);
        fileSystemModel = new FileSystemModel(new File(directory));
        fileTree = new JTree(fileSystemModel);
        fileTree.setEditable(true);
        fileTree.addTreeSelectionListener(new TreeSelectionListener() {
          public void valueChanged(TreeSelectionEvent event) {
            System.out.println("1. What we save is: getlTextArea() =" + getlTextArea() );
            File file = (File) fileTree.getLastSelectedPathComponent();
            fileDetailsTextArea.setText(getFileDetails(file));
            final ListRightPanel lrp = new ListRightPanel(this);
            lrp.textArea.setText(getFileDetails(file));
            setlTextArea(getFileDetails(file));
            System.out.println("2. What we save is: getlTextArea() =" + getlTextArea() );
              final JSplitPane splitPane = new JSplitPane();
              panel.add(splitPane, BorderLayout.CENTER);
              final JPanel panel_1 = new JPanel();
              splitPane.setLeftComponent(panel_1);
              panel_1.add(new JScrollPane(fileTree));
              final JPanel panel_2 = new JPanel();
              splitPane.setRightComponent(panel_2);
              panel_2.add(new JScrollPane(fileDetailsTextArea));
        setVisible(true);
      private String getFileDetails(File file) {
        if (file == null)
          return "";
        StringBuffer buffer = new StringBuffer();
        if (file.listFiles()!=null){
             for (int i=0; i< file.listFiles().length; i++){
             buffer.append(((file.listFiles())) + "\n");
         System.out.println("List all files");
    return buffer.toString();
    public static void main(String args[]) {
    new ListPanel("c:\\");
    class FileSystemModel implements TreeModel {
    private File root;
    private Vector listeners = new Vector();
    public FileSystemModel(File rootDirectory) {
    root = rootDirectory;
    public Object getRoot() {
    return root;
    public Object getChild(Object parent, int index) {
    File directory = (File) parent;
    String[] children = directory.list();
    return new TreeFile(directory, children[index]);
    public int getChildCount(Object parent) {
    File file = (File) parent;
    if (file.isDirectory()) {
    String[] fileList = file.list();
    if (fileList != null)
    return file.list().length;
    return 0;
    public boolean isLeaf(Object node) {
    File file = (File) node;
    return file.isFile();
    public int getIndexOfChild(Object parent, Object child) {
    File directory = (File) parent;
    File file = (File) child;
    String[] children = directory.list();
    for (int i = 0; i < children.length; i++) {
    if (file.getName().equals(children[i])) {
    return i;
    return -1;
    public void valueForPathChanged(TreePath path, Object value) {
    File oldFile = (File) path.getLastPathComponent();
    String fileParentPath = oldFile.getParent();
    String newFileName = (String) value;
    File targetFile = new File(fileParentPath, newFileName);
    oldFile.renameTo(targetFile);
    File parent = new File(fileParentPath);
    int[] changedChildrenIndices = { getIndexOfChild(parent, targetFile) };
    Object[] changedChildren = { targetFile };
    fireTreeNodesChanged(path.getParentPath(), changedChildrenIndices, changedChildren);
    private void fireTreeNodesChanged(TreePath parentPath, int[] indices, Object[] children) {
    TreeModelEvent event = new TreeModelEvent(this, parentPath, indices, children);
    Iterator iterator = listeners.iterator();
    TreeModelListener listener = null;
    while (iterator.hasNext()) {
    listener = (TreeModelListener) iterator.next();
    listener.treeNodesChanged(event);
    public void addTreeModelListener(TreeModelListener listener) {
    listeners.add(listener);
    public void removeTreeModelListener(TreeModelListener listener) {
    listeners.remove(listener);
    private class TreeFile extends File {
    public TreeFile(File parent, String child) {
    super(parent, child);
    public String toString() {
    return getName();
    [3] Program 3:
    package swing.com.test.test;
    import java.awt.BorderLayout;
    import java.io.File;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTree;
    import javax.swing.event.TreeModelEvent;
    import javax.swing.event.TreeModelListener;
    import javax.swing.event.TreeSelectionEvent;
    import javax.swing.event.TreeSelectionListener;
    import javax.swing.tree.TreeModel;
    import javax.swing.tree.TreePath;
    import java.io.Serializable;
    public class ListRightPanel extends JPanel implements TreeSelectionListener, Serializable{
         protected JTextArea textArea;
    //     protected ListAllFile  laf;
        private String str = "";
              public  String getlTextArea()  {
                        //textArea.getText();
                           return str;
              public  String setlTextArea(String ta)  {
                        str = ta;
                           return str;
          * Create the panel
         public ListRightPanel(ListPanel  laff) {
              super();
              setLayout(new BorderLayout());
              final JPanel panel = new JPanel();
              panel.setLayout(new BorderLayout());
              add(panel, BorderLayout.CENTER);
              textArea = new JTextArea();
            final String st = laff.getlTextArea();
            System.out.println("####################################");
            System.out.println("st=" + st);
             laff.fileTree.addTreeSelectionListener(new TreeSelectionListener() {
                 public void valueChanged(TreeSelectionEvent event) {
                   //laff.textArea.setText(getFileDetails(file));
                      textArea.setText(getlTextArea());
                     System.out.println("ListRightPanel Was Invoked from ListPanel!!getlTextArea() =" + getlTextArea() );
                     System.out.println("st=" + st);
              panel.add(textArea, BorderLayout.CENTER);
           public void valueChanged(TreeSelectionEvent e){};
    }You can try this one, thanks again
    sunny

  • How to detect the path of Temp directory

    I am writing a class library which allows users to manipulate a database in the web server java applications/applets. In my logic the Application/Applet communicate with a CGI script/Servlet in the server and that do all the database handling. My objective is to make the Client independant from the Database Drivers, and to some restrictions and possible security threats that can arrice when accessing the database directly.
    99% of the work is done and now I am doing the fine tuning.
    My Problem:
    When the user downloading a blob object from the server database. each time the program read the blob it will get a new copy from the server. This is not good if the blob is large (few 100 megs) . So I am going to implement a cache system. but the problem is If I am caching in the memory it will not support large objects (Memory is a limited factor). So the preferance is use the Temperary files but I do not know how to detect the path to temperary folder.
    And my 2nd questions is are the applets allowed to write and read in temperary folder.

    The Java default temporary file path can be determined with
    System.getProperty("java.io.tmpdir")This is typically the same value as the os environment variable

  • How to detect color pages in a PDF?

    I am using a C++ Acrobat plug-in do read/edit a PDF file.
    I need to get the total number of pages in the PDF as well as the page numbers of color pages.
    So far I have been able to get the total number of pages using PDDocGetNumPages() without any trouble.
    However, I cant seem to find an API that lets me know whether a particular page is color or not. Is there a way to do this?
    Thanks in advance!

    But what if there is RGB data that means black or gray (R == G == B), does that mean black or RGB?
    There is some sample code in the SDK for iterating over the content in the PDF, and then you can get the colorspace and the color of each object.
    But you really need to do some background research on colors & colorspaces to properly achieve this goal.
    From: Sachintha81 <[email protected]<mailto:[email protected]>>
    Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>>
    Date: Wed, 8 Feb 2012 16:57:10 -0800
    To: Leonard Rosenthol <[email protected]<mailto:[email protected]>>
    Subject: How to detect color pages in a PDF?
    Re: How to detect color pages in a PDF?
    created by Sachintha81<http://forums.adobe.com/people/Sachintha81> in Acrobat SDK - View the full discussion<http://forums.adobe.com/message/4194889#4194889

  • How to detect is flash player is idle

    How to detect whether flash player is playing any animation
    like moving an object or it is static like an image for .swf file.
    I want to know the duration of the .swf file played.

    is is as2, yes I have to detect animation duration achieved
    via action script, for example there is only one frame in the .swf
    in that frame there is movieclip it will change its _x positon
    using scripting upto 500 pixel and come back to 0 position it may
    loop for 3 times or 4 times and stops. I want to detect duration of
    the movie clip played till it stops. I have only .swf file no
    fla.

  • ANSWER: HOW TO DETECT Java Plugin from JavaScript

    I created a new topic because the questions about
    how to detect Java Plugin in browsers are scattered
    thoughout this forum.
    Basically you need to employ two approaches for IE and NS.
    In IE you need to try to instantiate a small applet
    (not your production applet) in order to see if browser
    can do it. if the browser can do it, you can make a
    call applet from JavaScript in order to find version of
    JRE (as well as a host of other things).
    In NS you can write a simple JavaScript which will
    interrogate the browser for all plugins installed. Then
    ypu can make a desicion whether to pass execution to
    the next(or generated) page which hosts your applet,
    or ask the user to download/install a plugin.
    I ecourage everybody to host a plugin on your site
    rather leave default link to it which is generated by
    html converter.
    In order to run sample,
    Prerequisites:
    Java Plugin 1.3.
    If you have a different version of plugin,
    substitute hardcoded plugin version in JavaScript for
    value that you have.
    1. compile java file
    2. put class file in the same directory with html file
    3. load html file into the browser.
    4. press "Check Java Plugin.." button
    5. see it work
    6. examine code
    7. uninstall plugin
    8. repeat steps 1 - 4
    9. see it work
    10. install plugin.
    Sample code follows:
    **********************HTML FILE BEGIN***********
    <HTML>
    <HEAD>
    <!-- Generated by Kawa IDE -->
    <TITLE>Detect Java Runtime</TITLE>
    </HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    var browsername;
    function doNetscape()
    for (i=0; i < navigator.plugins.length; i++)
    for (j = 0; j < navigator.plugins.length; j++)
    if(navigator.plugins[i][j].type == "application/x-java-applet;version=1.3")
    alert("You are running Netscape with Java Plugin 1.3.0 - OK");
    return;
    alert("You are running Netscape\nPlease, install Java Runtime Environment 1.3.0");
    function doMicrosoft()
    var applet = document.myApplet;
    if(applet == null)
    alert("You are running Microsoft Browser.\nPlease, install Java Runtime Environment 1.3.0");
    return;
    var version = applet.getJavaVersion();
    if(version == "1.3.0")
    alert("You are running IE, Java Plugin 1.3.0 installed - OK");
    else
    alert("You are running IE, other plugin installed - mybe OK if later that 1.3.0\nYour version: " + version);
    function getJava()
    var applet = document.myApplet;
    if(applet == null)
    alert("Please, install Java Runtime Environment");
    return;
         alert("JRE Version: " + document.myApplet.getJavaVersion());
    function checkJavaPlugin()
         browsername = navigator.appName;
         if(browsername.indexOf("Netscape")!= -1)
              browsername="NS";
              doNetscape();
         else
              if(browsername.indexOf("Microsoft")!=-1)
                   browsername="MSIE";
                   doMicrosoft();
              else
                   browsername="N/A";
                   alert("Unknown browser: " + browsername);
    </SCRIPT>
    <body>
    <Strong>Check Java Plugin</strong>
    <OBJECT id="myApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
         WIDTH = 1
         HEIGHT = 1 >
         <PARAM NAME = CODE VALUE = "DetectPluginApplet.class" >
         <PARAM NAME="scriptable" VALUE="true" >
         <embed type="application/x-java-applet;version=1.3"
              code = DetectPluginApplet width = 2 height = 2 MAYSCRIPT = "true" >
         </embed>
         </EMBED>
    </object>
    <FORM>
         <INPUT TYPE="button" value="Get Plugin Version in IE" onClick="getJava()">
         <INPUT TYPE="button" value="Check Java Plugin in NS and IE" onClick="javascript:checkJavaPlugin()">
    </FORM>
    </BODY>
    </HTML>
    **********************HTML FILE END***********
    ***************APPLET FILE BEGIN***********
    import java.awt.*;
    public class DetectPluginApplet extends java.applet.Applet
         public void init()
              add(new Label("DetectPluginApplet"));
    public String getJavaVersion()
    return System.getProperty("java.version");
    **************APPLLET FILE END************

    Try following java script, it works on new browsers (NS 4+, IE5+). For IE you have to enable 'ActiveX objects creation' in security options.
    var agt=navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);
    var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
    && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
    && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
    var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.0") !=-1));
    var is_ie5up = (is_ie && (is_major == 4)
    && ( (agt.indexOf("msie 5.0")!=-1)
    || (agt.indexOf("msie 5.5")!=-1)
    || (agt.indexOf("msie 6.0")!=-1) ) );
    var pluginDetected = false;
    var activeXDisabled = false;
    // we can check for plugin existence only when browser is 'is_ie5up' or 'is_nav4up'
    if(is_nav4up) {
    // Refresh 'navigator.plugins' to get newly installed plugins.
    // Use 'navigator.plugins.refresh(false)' to refresh plugins
    // without refreshing open documents (browser windows)
    if(navigator.plugins) {
    navigator.plugins.refresh(false);
    // check for Java plugin in installed plugins
    if(navigator.mimeTypes) {
    for (i=0; i < navigator.mimeTypes.length; i++) {
    if( (navigator.mimeTypes[ i].type != null)
    && (navigator.mimeTypes[ i].type.indexOf(
    "application/x-java-applet;jpi-version=1.3") != -1) ) {
    pluginDetected = true;
    break;
    } else if (is_ie5up) {
    var javaVersion;
    var shell;
    try {
    // Create WSH(WindowsScriptHost) shell, available on Windows only
    shell = new ActiveXObject("WScript.Shell");
    if (shell != null) {
    // Read JRE version from Window Registry
    try {
    javaVersion = shell.regRead("HKEY_LOCAL_MACHINE\\Software\\JavaSoft\\Java Runtime Environment\\CurrentVersion");
    } catch(e) {
    // handle exceptions raised by 'shell.regRead(...)' here
    // so that the outer try-catch block would receive only
    // exceptions raised by 'shell = new ActiveXObject(...)'
    } catch(e) {
    // Creating ActiveX controls thru script is disabled
    // in InternetExplorer security options
    // To enable it:
    // a. Go to the 'Tools --> Internet Options' menu
    // b. Select the 'Security' tab
    // c. Select zone (Internet/Intranet)
    // d. Click the 'Custom Level..' button which will display the
    // 'Security Settings' window.
    // e. Enable the option 'Initialize and script ActiveX controls
    // not marked as safe'
    activeXDisabled = true;
    // Check whether we got required (1.3+) Java Plugin
    if ( (javaVersion != null) && (javaVersion.indexOf("1.3") != -1) ) {
    pluginDetected = true;
    if (pluginDetected) {
    // show applet page
    } else if (confirm("Java Plugin 1.3+ not found, Do you want to download it?")) {
    // show install page
    } else {
    // show error page
    }

  • How to migrate the Objects from 3.1c to BI7

    Hi,
    We are in Functional Upgradation.
    How to Migrate the Objects( Infocubes,DSO,Datasources,Rules...etc...) from 3.1C to BI 7.0
    Please help me to doing this....
    regards,
    anil

    BW Upgrade tasks (BW 3.1C to BI 7.0)
    Prepare Phase:
    Task     How-To     Who
    Review BI 7.0 feature lists     Review BI 7.0 feature lists for possible inclusion in developments.     Basis/BW
    Obtain the BI 7.0 upgrade guide     Download the upgrade guide from http://service.sap.com/inst-guides -> SAP NetWeaver -> Upgrade
         Basis/BW
    Review all upgrade SAP notes     In addition to the upgrade guide, check, download, and review all SAP notes for your upgrade
         BI 7.0 Upgrade notes
         SAP Web Application Server 6.40 upgrade notes
         OS and DB specific upgrade notes
         SAP BW Add-on upgrade notes
    (e.g. SAP SEM, ST-PI, etc)
         Plug-In upgrade SAP notes
         Other notes identified in above notes and/or upgrade guides.
         Basis/BW
    Check DB and OS requirements for the target SAP BW release     Check DB version/patch level and OS version/patch level required for upgrade
         First check the most current information from the SAP BW homepage http://Service.sap.com/BW  -> <SAP BW release> -> Availability
         Additionally, the u201CPlatformsu201D link will take you to the main DB/OS page for BI 7.0 and SAP Web AS 6.40.
         Note: In some cases there are differing requirements for SAP BW 3.0B/SAP BW 3.1 Content and BI 7.0
         Basis
    Check SAP BW Add-on upgrade requirements     Do you have SAP BW add-ons installed that require additional handling (e.g. SAP SEM, Enterprise Portal Plug-in, etc)?
         SAP SEM (SAP BW based components) requires SAP SEM 4.0 which is part of the mySAP ERP 2004 suite.
         WP-PI release must be at 6.00 before the upgrade begins. As mentioned before this add-on is merged with PI_Basis after the upgrade.
         Basis
    Check SAP BW upgrade requirements          Minimum Support Package and kernel levels for upgrade
         SAP BW Frontend requirements for new SAPGUI, SAP BW BEx Frontend and SAP BW Web applications.
         Source system Plug-In requirements     Basis
    Check compatibility requirements with 3rd party software          3rd Party Reporting tools (example: Crystal)
         ETL Tools (example:  Ascential, DataStage, etc)
         Scheduling tools (example. Control-M, Maestro, etc)
         Monitoring tools (example: HP OpenView, Patrol, etc)
         Other OS or DB related tools     Basis
    Check new component requirements for BI 7.0          If SAP BW web reports were developed in SAP BW 2.x, a windows version of IGS 6.40 (Internet Graphics Service) is required for conversion and future rendering of web graphics (i.e. Charts and GIS Maps).
    The IGS chart migration will also be required after the SAP BW web report conversion.
         If you used or activated any SAP BW Web Applications in SAP BW 3.x, or if you have used charts in SAP BW 2.x web reports, you will need a windows version of IGS 6.40 (Internet Graphics Service) to execute the IGS chart migration after the upgrade.
         If ESRI GIS software is in use, a different version of ESRI software maybe required for BI 7.0.  (ArcView 8.2?).
         If you plan to use Information Broadcasting, please review the requirement for additional infrastructure components such as EP, KMC, Workbook pre-calculation service, and Web AS connectivity to your mail servers.
    Detailed information is available in the SAP NetWeaver u201904 master planning guide (http://service.sap.com/instguides  -> SAP NetWeaver).
         Basis
    Test and distribute new SAP BW Frontend
              Install and test the new BI 7.0 Frontend (including the new version of SAPGUI for Windows if applicable).
         A detailed FAQ on the new BI 7.0 Frontend is available on the SAP service marketplace alias BWFAQ (http://service.sap.com/BWFAQ).
         After successful testing, the new SAPGUI for Windows and SAP BW Frontend can be distributed to the BW teams and end users.
         Basis
    Alpha Conversion:
    Ensure that your InfoObject data is consistent from a u201Cconversionu201D perspective (Alpha Converter tool)      Check that you have executed the Alpha Converter tool to check the consistency of your InfoObject definitions and data for InfoObjects that utilize the ALPHA, NUMCV and GJAHR conversion exits.
    Note: The Alpha conversion is not part of the SAP BW upgrade itself, but the upgrade simply checks to ensure you have successfully executed the check tool.
    Transaction RSMDCNVEXIT
    Check the system status:
         u201CAll Characteristics Have Correct Internal Valuesu201D: The Alpha converter has been successful executed. The upgrade preparation can continue.
         u201CNo Check yet/Inconsistent Internal Vales existu201D:
    The Alpha converter check has not been executed.
         u201CCharacteristics have Inconsistent Internal Valuesu201D:
    The Alpha converter tool check has been executed and data problems have been detected. The InfoObject and data must be processed before the upgrade can be started.
         BW
    Upgrade SAP Note updates     Check for newer versions of your SAP notes for the Upgrade.
    Tip: The SAP service marketplace offers an option to subscribe to OSS notes so you can be notified of changes when you log on.
         Basis/BW
    Confirm SAP BW support package, kernel and DB/OS configuration     Analyze current Support Package and DB/OS/Kernel configurations in your SAP BW landscape in relation to the SAP BW 3.x upgrade requirements.
         Apply necessary support packages, kernel patches, and DB and OS patches to meet upgrade requirements
         Basis
    Alignment of SAP BW objects within your SAP BW system landscape     Check and, where required, re-align SAP BW Objects and developments in your SAP BW system landscape (Development, Quality Assurance and Production).
    SAP BW Object differences can impact the quality of testing in the Development and Test environment and can lead to change management issues.
         This check is to minimize risk and ensure productive objects are being tested prior to the Production upgrade.
    Where alignment issues exist and realignment is not possible, alternative testing plans should be devised.
         Basis/BW
    Confirm all developments are deployed.     Ensure that all SAP BW developments are deployed or they are to be re-developed/tested after the upgrade.
         In the DEV system, all SAP BW development transports should be released (i.e. transport created and released) and imported to all downstream systems (i.e. QAS and PRD systems).
    For SAP BW developments not already collected in the transport collector, a decision must be made:
    Deploy the developments or wait until the upgrade has completed to deploy.
    o     Development to be deployed should be collected, released, and imported into the QAS and PRD systems.
    o     Developments that should be deployed after the upgrade should be re-tested/re-developed after the upgrade.
         In the QAS or PRD systems, ensure that all SAP BW development transports have been imported prior to the upgrade.
         BW
    Implement BI 7.0 Business Explorer Frontend     Install, evaluate, test and distribute the new BI 7.0 Business Explorer Frontend.
         Basis/BW
    Pre-upgrade Process:
    Download required BI 7.0 support package Stack for inclusion in the upgrade     Determine the equivalent support package level of the source SAP BW release and the target SAP BW release.
         There is a minimum requirement that you upgrade to at least the equivalent support package level on the target SAP BW release so that you do not lose functionality, corrections, and data.
         It is recommended to upgrade to the latest version of all support packages during the upgrade via the upgradeu2019s support package binding functionality.
         BI 7.0 Support Packages are delivered via SAP NetWeaver u201904 Support Package stacks (SP-Stacks). It is not recommended to partially apply some of the SP-Stacksu2019 individual support packages. You should apply all of the SP-Stacks support packages at once.
    For more information on the SP-Stacks and SAP NetWeaver SP-Stacks, please see the SAP service marketplace alias SP-Stacks (http://service.sap.com/sp-stacks)
         You should also review, download, and bind in support packages for all add-on components that are installed on SAP BW and will be upgraded during the SAP BW upgrade (e.g. SEM-BW, ST-PI, etc)
         Basis
    Apply latest Support Package tool patch     Apply latest SPAM patch before executing PREPARE     Basis
    Validate the SAP BW (ABAP) Data Dictionary and the Database Data Dictionary for consistency     Check Database consistency
         Transaction DB02:
    o     Execute ABAP SAP_UPDATE_DBDIFF and re-execute DB02 check. This gives a truer view of the SAP BW objects in DB02.
    o     Check missing database objects (indices, tables, etc)
    o     Missing indices may identify erred data loads or process problems
    Tip: Missing indices on InfoCubes can be restored by RSRV or ABAP SAP_INFOCUBE_INDEXES_REPAIR
    Note: check for running data loads before executing a repair!
    o     Check DDIC/DB consistency
         Verify database objects and consistency
    (e.g. SAPDBA check for offline data files)
         BW
    Remove unnecessary SAP BW temporary database objects     Delete all SAP BW temporary database objects:
         Execute routine housekeeping ABAP SAP_DROP_TMPTABLES.
         This reduces the numbers of database objects that need to be copied during the upgrade.
         Note: take care not to delete objects that are in use as this will cause queries, compressions, etc to terminate.
         BW
    Validate your SAP BW Objects for correctness prior to your upgrade     Using the SAP BW Analysis Tool (transaction RSRV), perform extensive tests on all important SAP BW Objects to ensure their correctness prior to the upgrade.
    Note: this test should be repeatable so you can re-validate after the upgrade!
         Ensure that any inconsistencies are identified and corrected
         RSRV has a number of extensive tests and if all checks are executed will consume a large amount of time. Multiple tests can be performed in parallel.
         Tip: Some corrections in development can be deployed to other systems via transport in advance of the next upgrade.
         BW
    Ensure DB Statistics are up to date prior to the upgrade          Check DB statistics for all tables.
    Tables without statistics, especially system tables, can seriously impact upgrade runtimes.
         Check DB statistics for missing Indexes for InfoCubes and Aggregates
    o     User transaction RSRV to check      BW
    Check SAP BW Support Package status     Check the status of all support packages (via transaction SPAM)
         Ensure the Support Package queue is empty
         Confirm all applied Support Packages     Basis
    Check all u2018Repairsu2019     Check for unreleased repair transports
         Release all unreleased transports
    In your QAS and PRD system, check if all repair transports have been imported (i.e. systems are aligned)
         Import missing repair transports into down stream systems. This will avoid differing message and/or errors during the upgrade.
         BW
    Check InfoObject status          Check for revised (modified) InfoObjects that have not been activated.
    All InfoObjects should be active or saved (not activate):
    o     Check all inactive InfoObjects:
    Transaction RSD1 (Edit InfoObjects),
    click on u201CAll InfoObjectsu201D radio button and click the u201CDisplayu201D button.
    Modified InfoObjects are denoted by yellow triangles!
    o     Determine if revision should be activated or removed.
         'Reorgu2019 or u2018Repairu2019 all InfoObjects
    This checks and repairs any discrepancies in the InfoObject definition and structures. It is common to have obsolete DDIC and table entries for InfoObjects after multiple upgrades and definition changes. These obsolete entries normally do not effect normal SAP BW operations.
         Transaction RSD1 (Edit InfoObjects), Select u201CExecute Repairu201D or u201CExecute Reorgu201D Use expert mode for selective executions.
         BW
    All ODS data loads must be activated.          Activate all inactivated ODS Object requests.
    All ODS u2018Mu2019 tables must be emptied prior to the upgrade as a new activate process is implemented
    o     Inactivated ODS request can be located via the Admin workbench -> u2018Monitoringu201D button -> u2018ODS Status Overviewu201D
         BW
    All Transfer and Update rules should be active          Check for inactive Update and Transfer Rules
    o     All update rules and transfer rules should be active or deleted.
    o     Look into the table RSUPDINFO for update rules and search for the version "not equal" to "A". Likewise use the table RSTS for Transfer rules/structure.     BW
    All InfoCubes should be active          Check for inactive InfoCubes and Aggregates (Aggregates are InfoCubes too!)
    o     All InfoCubes should be activated or deleted.
    o     Execute ABAP RSUPGRCHECK to locate any inactive InfoCubes. See SAP note 449160.
         BW
    All Web Report objects should be consistent prior the upgrade.          Check the consistency of your SAP BW web objects (web reports, web templates, URLs, roles, etc). All objects should be consistent prior to web object conversion after the upgrade. It is recommended to ensure consistency before the upgrade.
    o     For Original release SAP BW 3.x:
    A SAP BW web reporting objects check can be executed via a new check in RSRV. This is provided via a SAP BW support package.
    Please see SAP note 484519 for details.
         BW
    Backup your system before starting PREPARE     Before execution PREPARE, perform a full database backup (including File system). Ensure you can recover to the point in time before PREPARE was executed.
         Database admin
    Address any instructions/errors generated by PREPARE          Address any issues listed in log files Checks. Log generated by PREPARE.
    o     Repeat PREPARE until all checks are successful.     Basis
    Complete any Logistic V3 data extractions and suspend V3 collection processes          Extract and empty Logistics V3 extractor queues on SAP R/3 source systems.
    o     The V3 extraction delta queues must be emptied prior to the upgrade to avoid any possible data loss. V3 collector jobs should be suspended for the duration of the upgrade.
    They can be rescheduled after re-activation of the source systems upon completion of the upgrade.
         Note: If you perform any data loads after executing PREPARE, re-check the status of all delta queues in SAP BW and the source systems(s).
         BW
    Complete any data mart data extractions and suspend any data mart extractors          Load and Empty all Data mart Delta Queues in SAP BW. (e.g. for all export DataSources)
    o     The SAP BW Service SAPI, which is used for internal and u2018BW to BWu2019 data mart extraction, is upgraded during the SAP BW upgrade. Therefore, the delta queues must be emptied prior to the upgrade to avoid any possibility of data loss.
         Note: If you perform any data loads after executing PREPARE, re-check the status of all delta queues in SAP BW and the source systems(s).
         BW
    Check that your customer defined data class definitions conform to SAP standards          Check all customer created Data classes used by SAP BW Objects (i.e. InfoCubes, ODS Objects, Aggregates, InfoObjects, and PSAs) to ensure they conform to SAP standards.
    o     Check your data class definitions as detailed in SAP Notes 46272 and 500252.
    o     Incorrect data classes could create activation errors during the upgrade.
         BW
    Remove unnecessary SAP BW temporary database objects     Delete all SAP BW temporary database objects:
         Execute routine housekeeping ABAP SAP_DROP_TMPTABLES.
    For more information see SAP note 308533 (2.x) and 449891 (3.x).
         This reduces the numbers of database objects that need to be copied during the upgrade.
         Note: take care not to delete objects that are in use as this will cause queries, compressions, etc to terminate.
         Basis/BW
    Backups!     Before executing the upgrade, ensure that you have a backup strategy in place so you can return to the point where loading was completed and the upgrade started.
    Ensuring you can return to a consistent point in time (without having to handle rollback or repeats of data loads) is key to having a successful fallback plan.
         Database Admin
    Before Execution:
    All SAP BW administration tasks should have ceased          Cease all SAP BW administration tasks such as Object maintenance, query/web template maintenance, data loads, transports, etc at the beginning of the upgrade.
    The Administrators Workbench and the Data Dictionary are locked in the early phases of the upgrade.
         Reminder: Users can execute queries until the time that the upgrade determines that the SAP BW System should be closed*
    - timing depends on the type of upgrade selected
         Basis/Admin
    Remove unnecessary SAP BW temporary database objects     Repeat the deletion of all SAP BW temporary database objects after you have stopped using the SAP BW Admin workbench*
         Execute routine housekeeping ABAP SAP_DROP_TMPTABLES.
    For more information see SAP note 308533 (2.x) and 449891 (3.x).
    - timing depends on the type of upgrade selected
         BW
    Check system parameters     Check OS, DB, and Instance profile parameters.
         Check System Instance parameters for new BI 7.0 specific parameters. See SAP note 192658 for details
         Check for any DB specific parameters for BI 7.0
         Check for any new OS parameters     Basis
    Check Database archiving mode     Turn database archive log mode back on if it was disabled during the upgrade!
         Database Admin
    After Execution:
    Check the systemu2019s installation consistency     Execute Transaction SICK to check installation consistency
         BW
    Check the system logs     Perform a technical systems check.
         Example: Check system and all dispatcher logs (inc. ICM logs)
         Basis
    Apply latest executable binaries     Apply the latest 6.40 Basis Kernel for all executables
         Tip: use the SAP NetWeaver u201904 SP-Stack selection tool to find all binaries. (http://service.sap.com/swdc)
         Basis
    Review BI 7.0 Support Packages for follow-up actions.          Review SAP Notes for all SAP BW Support packages applied during (bound into the upgrade) and applied after the upgrade:
    o      Search for Note with the keyword u201CBWu201D, u201CSAPBWNEWSu201D, and u201C<BW release>u201D
    o     Follow any required instructions identified in the SAP Notes
         Basis
    Apply latest patches          Apply the latest SPAM patch
         Apply any required support packages that were not bound into the upgrade.
         Basis
    Apply additional BI 7.0 Support Packages
    (if required)          SAP recommends that customer remain current on SAP Support Packages.
         Review SAP Notes for all SAP BW Support packages applied in previous task.
    o      Search for Notes with the keyword u201CBWu201D, u201CSAPBWNEWSu201D, and u201C<BW release>u201D
    o     Follow any required instructions identified in the SAP Notes
         Basis
    Resolve any modified SAP delivered Role issues      If SAP delivered Roles were modified, then these modifications may incorrectly appear in the upgrade modification adjustment tool (SPAU).
         Review and implement SAP note 569128 as required     Basis
    Configuring Information Broadcasting EP/KMC Connections
         If you plan to use the EP integration functionality of Information broadcasting (Broadcast to the EPu2019s PCD, Broadcast to KMC, or Broadcast to Collaboration Rooms):
         Ensure the SAP EP is at the same SP-Stack level as your SAP BW system.
         Follow the online help documentation to configure and connect the SAP BW system and the SAP EP system. (http://help.sap.com).
         For broadcasting to KMC, ensure that KM has the u2018BEx Portfoliou2019 content available.
         Basis
    Re-check SAP BW Object and consistency     Execute RSRV to check SAP BW Object consistency
         Repeat tests that we executed prior to the upgrade.
         Validate results      BW
    Check InfoCube views for consistency     Check consistency of InfoCube fact table views
         It is possible that fact table view /BIC/V<InfoCube>F is missing if a number of SAP BW upgrades have been performed before. See SAP Note 525988 for instructions for the check and repair program.
         BW
    Perform SAP BW Plug-in (SAPI) upgrade follow-up tasks          If required, Re-activate the SAP BW u201CMyselfu201D source system in SAP BW.
         The SAP BW internal plug-in (SAPI), which is used for internal data mart extraction and u2018BW to BWu2019 communication, is upgraded during the SAP BW upgrade. The source system is de-activated to prevent extractions and loading during the upgrade.
         It may be required to replicate export DataSources and reactivate transfer structures/rules for internal data loads (i.e. ODS Object to InfoCube objects).
    o     Tip: It is advised to do this step for all export DataSources to avoid possible errors during execution of InfoPackages
         Check that all other Source Systems are active.
    o     Activate as required.     Basis/BW
    Check SAP BW Personalization is implemented     (SAP BW 2.X upgrades will have performed this in the previous task).
    Validate that personalization has been activated in your SAP BW system.
    Note: It has been observed that in some cases, BEx Personalization has to be re-activated after an upgrade from SAP BW 3.x to BI 7.0. It is advised to check the status of personalization after the upgrade.
         Enter the IMG (transaction SPRO), select SAP Business Warehouse -> Reporting relevant settings -> General Reporting Settings -> Activate Personalization in BEx
    Check the status of the Personalization settings. All entries should be active u2013 highlighted by an unchecked check box.
         To activate highlighted Personalization, click Execute.     BW
    For SAP BW 2.0B/2.1C -> BI 7.0 Upgrades:
    Convert ODS secondary indexes to new standard     For SAP BW 2.0B/2.1C -> BI 7.0 Upgrades:
    Convert any customer created ODS Object secondary indexes to the new ODS Object index maintenance process.
         Re-create all indexes in the ODS Object definition screen in transaction RSA1.
         ODS indexes must conform to the new naming convention
         BW
    Converting IGS chart settings
         Convert you existing IGS chart settings (converts IGS chart settings from BLOB to new XML storage format)
         Ensure you have the latest SAP Web AS 6.40 IGS (stand alone windows version) installed and working
    o      Test via transaction RSRT
         Execute the conversion process as directed the BI 7.0 upgrade guide.
         Note: This step is required for all BI 7.0 upgrades     Basis
    Backup your SAP BW system     Perform a full database backup (including the File system)
    Remember to adjust your backup scripts to include new components such as the J2EE engine, pre-calculation service, etc.
         Database Admin

  • How can detect and remove scanned white pages in an OCRd pdf file?

    How can detect and remove scanned white pages in an OCRd pdf file?

    Acrobat does not support an automated way of doing this directly. You can
    remove completely blank pages (pages that don't have any "marking
    objects"), but a scanned page does contain an image, so Acrobat won't help
    you here. There are a number of 3rd party applications and plug-ins
    available. Try a Google search for
    remove blank pages from scanned
    pdf<http://www.google.com/search?client=safari&rls=en&q=removeblankpagesfromscanned+pdf&ie=UTF-8&oe=UTF-8>
    This will bring up a few different solutions.
    Another way is to use JavaScript to find text. You say that these documents
    are OCRed, so if you have a blank page, it should not have any text on it.
    With some JavaScript, you can identify pages that don't contain text. This
    may however fail if you have a page that contains just e.g. a photographic
    image. There won't be any text, but the page is certainly not blank.
    Karl Heinz Kremer
    [signature removed by host]

  • Trigger invalidations, how to detect cause?

    Hello,
    is it possible to somehow detect what causes object(PKG/PRC/FNC/TRG) invalidations?
    Application users doesn't have righst to compile the object. After invalidation object can be again successfuly recompiled by ALTER XXX COMPILE; command. For example we are using after logon trigger for application users, this trigger gets sometimes invalidated for no obvious reasons, users are unable to login to the database because they're hitting permission denied upon trying to compile this trigger. Any hints on how to detect what is the cause of these invalidations?
    Thank you,
    D.

    Hm, what if I found out that last DDL time with the latest date were the following objects:
    SYS.DBMS_STANDARD
    SYS.DICTIONARY_OBJ_NAME
    SYS.DICTIONARY_OBJ_TYPE
    SYS.STANDARD

  • How to return java objects on the button click

    hello all,
    i wonder if any body let me know ,how to return java objects on button click,
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    class base
         base()
              JFrame frame = new JFrame("Base class Message Dialog Box");
              JPanel panel = new JPanel();
              JButton buttonchildone = new JButton("Child class one");
              buttonchildone.addActionListener(new ActionListener(){
                   public actionPerformed(ActionEvent e)
                        childone ch1=new childone();
                   return ch1;
              JButton buttonchildtwo = new JButton("Child class two");
              buttonchildtwo.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent e)
                        childtwo ch2=new childtwo();
                        return ch2;
              panel.add(buttonchildone);
              panel.add(buttonchildtwo);
              frame.add(panel);
              frame.setSize(300, 300);
              frame.setVisible(true);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         void show()
              System.out.println("Base class show() method");
    public class mainmethod
         public static void main(String[] args)
              base baseobj=new base();
    here my aim is to achieve dynamic polymorphism by button click's ,where based on the button click i can send back an object of childone or childtwo classes
    thanks and regard
    Mac
    Message was edited by:
    LoveOpensource

    You probably need to rethink your design. Where are these child classes going? What is using or consuming them? I agree with the message above about a button instantiating a parent field variable to one child or the other depending on which button is pressed.
    Message was edited by:
    petes1234

Maybe you are looking for

  • Hp officejet 6500a won't scan to computer without ink cartridge installed?

    Why do I need an ink cartridge installed to scan a pdf to computer?

  • White Pixels on Dark Screen

    I purchased the 30" Mac monitor and noticed that when the screen is black, there seems to be white flickering pixels across the screen. It looks similar to interference or slight static. Does this mean my monitor has a problem? Thanks for the help.

  • Program  with a name starting with '!'

    Hi, I have a problem with a progam. In fact, I want to delete an include but this include is used in a program with a name starting with '!' like !ZMM_PR_TEST. I can't open this program or delete it. What can I do ? Must I delete this "strange" progr

  • How coherence 3.5 can be configured with weblogic

    Hi Guys, Can anyone help me, how to setup the coherence and configure with the weblogic server. Thank you.

  • Fresh SL install question

    I'm about to do a fresh install of SL. Is there anything on the Leopard drive besides iLife that I need to reinstall? I ask because I have a copy of iLife 2009 and can just install that on my own. thanks, tom