Invalid Classes ( Objects)

I am running 8.1.7 and I just look for all Objects that are Java classes and found that I have alot as INVALID, how can I recompile them or REVALIDATE them ?
Any help will be great

Hi Francisco,
If the invalid classes are ones that you explicitly loaded using the
"loadjava" tool, then the only way I know how to "revalidate" those
classes would be to first remove them from the database (using the "dropjava"
tool) and then reload them (using the "loadjava" tool).
When you load the classes, make sure you use the "-resolve" flag, since
this forces "validation" of the classes as they are loaded.
You don't say what database version you are using, but you should look
at the "Java Developer's Guide" (if you haven't already done so). It
is available from here:
http://tahiti.oracle.com
If the "invalid" classes are those that get loaded as part of the
database installation process, then you may need to re-install java
in the database. This usually means executing the "initjvm.sql" script.
Again, there are more details in the documentation available from
the above-mentioned URL.
Hope this has helped you.
Good Luck,
Avi.

Similar Messages

  • Invalid Class Exception problem

    Hi whenever i try to run this method from a different class to the one it is declared in it throws invalid class exception, (in its error it says the class this method is written in is the problem) yet when i run it from its own class in a temporary main it works fine, perhaps someone can see the problem in the method code. All its doing is reading from a few different txt files, deserializing the objects and putting them into arraylists for future access.
    public void readCourseData()
              CourseArrayLengths cal;
              try
                   FileInputStream fis = new FileInputStream("arraylengths.txt");
                   ObjectInputStream ois = new ObjectInputStream(fis);
                   cal = ((CourseArrayLengths) ois.readObject());     
                   ois.close();
                   FileInputStream fis1 = new FileInputStream("units.txt");
                   ObjectInputStream ois1 = new ObjectInputStream(fis1);
                   for(int i=0;i<cal.getUnitArrayLength();i++)
                        units.add((Unit) ois1.readObject());
                   ois1.close();
                   FileInputStream fis2 = new FileInputStream("sections.txt");
                   ObjectInputStream ois2 = new ObjectInputStream(fis2);
                   for(int i=0;i<cal.getSectionArrayLength();i++)
                        sections.add((Section) ois2.readObject());
                   ois2.close();
                   FileInputStream fis3 = new FileInputStream("files.txt");
                   ObjectInputStream ois3 = new ObjectInputStream(fis3);
                   for(int i=0;i<cal.getFileArrayLength();i++)
                        files.add((Filetype) ois3.readObject());
                   ois3.close();
              catch(FileNotFoundException exception)
              System.out.println("The File was not found");
              catch(IOException exception)
              System.out.println(exception);
              catch(ClassNotFoundException exception)
              System.out.println(exception);
         }

    import java.util.ArrayList;
    import java.io.*;
    import javax.swing.*;
    public class Unit implements Serializable
    ArrayList units = new ArrayList();
    ArrayList sections = new ArrayList();
    ArrayList files = new ArrayList();
    String unitName;
    int sStart=0,sEnd=0,sIndex=0,fIndex=0,subIndex=0;
         public Unit(String unitNamec,int sStartc,int sEndc)
              unitName = unitNamec;
              sStart = sStartc;
              sEnd = sEndc;
         public Unit()
         public String getUnitName()
              return unitName;
         public Unit getUnit(int i)
              return (Unit)units.get(i);
         public Section getSection(int i)
              return (Section)sections.get(i);
         public ArrayList getUnitArray()
              return units;
         public int getSectionStart()
              return sStart;
         public int getSectionEnd()
              return sEnd;
         public void setSectionStart(int i)
              sStart = i;
         public void setSectionEnd(int i)
              sEnd = i;
         public void addUnit(String uName)
              units.add(new Unit(uName,sections.size(),sIndex));
              sIndex++;
         public void addSection(String sName,Unit u)
              //problem lies with files.size()
              sections.add(new Section(sName,files.size(),files.size()));
              u.setSectionEnd(u.getSectionEnd()+1);
              //fIndex++;
         public void addFile(String fName,File fPath,Section s)
              files.add(new Filetype(fName,fPath));
              s.setFileEnd(s.getFileEnd()+1);
         public void display(Unit u)
              System.out.println(u.getUnitName());
              for(int i=u.getSectionStart();i<u.getSectionEnd();i++)
                   System.out.println(((Section)sections.get(i)).getSectName());
                   for(int j=((Section)(sections.get(i))).getFileStart();j<((Section)(sections.get(i))).getFileEnd();j++)
                        System.out.println(((Filetype)files.get(j)).getFileName());
         public void writeCourseData()
         //writes 3 arrays to 3 different files
    try
    FileOutputStream fos = new FileOutputStream("units.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
         for(int i=0;i<units.size();i++)
         oos.writeObject((Unit)units.get(i));
         oos.close();
    catch (Exception e)
    System.err.println ("Error writing to file");
    try
    FileOutputStream fos = new FileOutputStream("sections.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
         for(int i=0;i<sections.size();i++)
         oos.writeObject((Section)sections.get(i));
         oos.close();
    catch (Exception e)
    System.err.println ("Error writing to file");
    try
    FileOutputStream fos = new FileOutputStream("files.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
         for(int i=0;i<files.size();i++)
         oos.writeObject((Filetype)files.get(i));
         oos.close();
    catch (Exception e)
    System.err.println ("Error writing to file");
    try
    FileOutputStream fos = new FileOutputStream("arraylengths.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
         oos.writeObject(new CourseArrayLengths(units.size(),sections.size(),files.size()));
         oos.close();
    catch (Exception e)
    System.err.println ("Error writing to file");
         public void readCourseData()
              CourseArrayLengths cal;
              try
                   FileInputStream fis = new FileInputStream("arraylengths.txt");
                   ObjectInputStream ois = new ObjectInputStream(fis);
                   cal = ((CourseArrayLengths) ois.readObject());     
                   ois.close();
                   FileInputStream fis1 = new FileInputStream("units.txt");
                   ObjectInputStream ois1 = new ObjectInputStream(fis1);
                   for(int i=0;i<cal.getUnitArrayLength();i++)
                        units.add((Unit) ois1.readObject());
                   ois1.close();
                   FileInputStream fis2 = new FileInputStream("sections.txt");
                   ObjectInputStream ois2 = new ObjectInputStream(fis2);
                   for(int i=0;i<cal.getSectionArrayLength();i++)
                        sections.add((Section) ois2.readObject());
                   ois2.close();
                   FileInputStream fis3 = new FileInputStream("files.txt");
                   ObjectInputStream ois3 = new ObjectInputStream(fis3);
                   for(int i=0;i<cal.getFileArrayLength();i++)
                        files.add((Filetype) ois3.readObject());
                   ois3.close();
              catch(FileNotFoundException exception)
              System.out.println("The File was not found");
              catch(IOException exception)
              System.out.println(exception);
              catch(ClassNotFoundException exception)
              System.out.println(exception);
         /*public static void main(String args[])
              Unit u1 = new Unit();
              u1.addUnit("Cmps2a22");
              u1.addSection("Section1",u1.getUnit(0));
              //u1.addSubSection("Subsect1",u1.getSection(0));
              u1.addFile("File1",null,u1.getSection(0));
              u1.addFile("File2",null,u1.getSection(0));
              u1.addSection("Section2",u1.getUnit(0));
              u1.addFile("NF",null,u1.getSection(1));
              u1.addFile("NF2",null,u1.getSection(1));
              u1.addFile("NF3",null,u1.getSection(1));
              u1.addSection("Section3",u1.getUnit(0));
              u1.addFile("NF",null,u1.getSection(2));
              u1.addFile("NF2",null,u1.getSection(2));
              u1.addFile("NF4",null,u1.getSection(2));
              u1.display(u1.getUnit(0));
              u1.writeCourseData();
              u1.readCourseData();
              u1.display(u1.getUnit(0));
    import java.util.ArrayList;
    import java.io.*;
    public class Section implements Serializable
    private String sectName,subSectName;
    private int fpStart=0,fpEnd=0,subSectStart=0,subSectEnd=0;
    private Section s;
    private boolean sub;
         public Section(String sectNamec,int fpStartc,int fpEndc,int subSectStartc,int subSectEndc,Section sc,boolean subc)
              sectName = sectNamec;
              fpStart = fpStartc;
              fpEnd = fpEndc;
              subSectStart = subSectStartc;
              subSectEnd = subSectEndc;
              s = sc;
              sub = subc;
         public Section(String sectNamec,int fpStartc,int fpEndc)
              sectName = sectNamec;
              fpStart = fpStartc;
              fpEnd = fpEndc;
         public Section getParent()
              return s;
         public boolean isSub()
              return sub;
         public String getSubName()
              return subSectName;
         public int getSubStart()
              return subSectStart;
         public int getSubEnd()
              return subSectEnd;
         public void setSubStart(int i)
              subSectStart = i;
         public void setSubEnd(int i)
              subSectEnd = i;
         public int getFileStart()
              return fpStart;
         public int getFileEnd()
              return fpEnd;
         public String getSectName()
              return sectName;
         public void setFileStart(int i)
              fpStart = i;
         public void setFileEnd(int i)
              fpEnd = i;
         public void addSection(String sectName)
         /*public static void main(String args[])
    import java.io.*;
    public class Filetype implements Serializable
         private String name;
         private File filepath;
         public Filetype(String namec, File filepathc)
              name = namec;
              filepath = filepathc;
         public String getFileName()
              return name;
         public File getFilepath()
              return filepath;
    import java.io.*;
    public class CourseArrayLengths implements Serializable
    private int ul,sl,fl;
         public CourseArrayLengths(int ulc,int slc,int flc)
              ul = ulc;
              sl = slc;
              fl = flc;
         public int getUnitArrayLength()
              return ul;
         public int getSectionArrayLength()
              return sl;
         public int getFileArrayLength()
              return fl;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.ArrayList;
    import java.io.*;
    public class OrganiserGui implements ActionListener
    int width,height;
    JFrame frame;
         public OrganiserGui()
              width = 600;
              height = 500;
         public void runGui()
              //Frame sizes and location
              frame = new JFrame("StudentOrganiser V1.0");
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
              frame.setSize(width,height);
              frame.setLocation(60,60);
              JMenuBar menuBar = new JMenuBar();
              //File menu
              JMenu fileMenu = new JMenu("File");
              menuBar.add(fileMenu);
              fileMenu.addSeparator();
              JMenu addSubMenu = new JMenu("Add");
              fileMenu.add(addSubMenu);
              JMenuItem cwk = new JMenuItem("Coursework assignment");
              addSubMenu.add(cwk);
              JMenuItem lecture = new JMenuItem("Lecture");
              lecture.addActionListener(this);
              addSubMenu.add(lecture);
              JMenuItem seminar = new JMenuItem("Seminar sheet");
              addSubMenu.add(seminar);
              //Calendar menu
              JMenu calendarMenu = new JMenu("Calendar");
              menuBar.add(calendarMenu);
              calendarMenu.addSeparator();
              JMenu calendarSubMenu = new JMenu("Edit Calendar");
              calendarMenu.add(calendarSubMenu);
              JMenuItem eventa = new JMenuItem("Add/Remove Event");
              eventa.addActionListener(this);
              calendarSubMenu.add(eventa);
              JMenuItem calClear = new JMenuItem("Clear Calendar");
              calClear.addActionListener(this);
              calendarSubMenu.add(calClear);
              JMenu calendarSubMenuView = new JMenu("View");
              calendarMenu.add(calendarSubMenuView);
              JMenuItem year = new JMenuItem("By Year");
              year.addActionListener(this);
              calendarSubMenuView.add(year);
              JMenuItem month = new JMenuItem("By Month");
              month.addActionListener(this);          
              calendarSubMenuView.add(month);
              JMenuItem week = new JMenuItem("By Week");
              week.addActionListener(this);
              calendarSubMenuView.add(week);
              //Timetable menu
              JMenu timetableMenu = new JMenu("Timetable");
              menuBar.add(timetableMenu);
              timetableMenu.addSeparator();
              JMenu stimetableSubMenu = new JMenu("Social Timetable");
              timetableMenu.add(stimetableSubMenu);
              JMenu ltimetableSubMenu = new JMenu("Lecture Timetable");
              timetableMenu.add(ltimetableSubMenu);
              frame.setJMenuBar(menuBar);
    frame.setVisible(true);
         public void actionPerformed(ActionEvent e)
              JMenuItem source = (JMenuItem)(e.getSource());
              System.out.println(source.getText());     
              Calendar c = new Calendar();
              if(source.getText().equalsIgnoreCase("By Year"))
                   System.out.println("INSIDE");
                   c.buildArray();
                   c.calendarByYear(Calendar.calendarArray);     
              if(source.getText().equalsIgnoreCase("Add/Remove Event"))
                   c.eventInput();
              if(source.getText().equalsIgnoreCase("clear calendar"))
                   c.buildYear();
                   c.writeEvent(Calendar.calendarArray);
                   c.buildArray();
              if(source.getText().equalsIgnoreCase("lecture"))
                   System.out.println("Nearly working");
                   //JFileChooser jf = new JFileChooser();
                   //jf.showOpenDialog(frame);
                   FileManager fm = new FileManager();
                   //choose unit to add file to
                   JOptionPane unitOption = new JOptionPane();
                   Unit u = new Unit();
                   u.readCourseData();
                   //u.display(u.getUnit(0));
                   System.out.println((u.getUnit(0)).getUnitName());
                   String[] unitNames = new String[u.getUnitArray().size()];
                   for(int i=0;i<unitNames.length;i++)
                        //unitNames[i] = (((Unit)u.getUnitArray().get(i)).getUnitName());
                        //System.out.println(unitNames);
                        System.out.println((u.getUnit(i)).getUnitName());
                   //unitOption.showInputDialog("Select Unit to add lecture to",unitNames);
                   //needs to select where to store it
                   //fm.openFile(jf.getSelectedFile());
         public static void main(String args[])
              OrganiserGui gui = new OrganiserGui();
              gui.runGui();
    java.io.invalidclassexception: Unit; local class incompatible: stream classdesc serialversionUID = 3355176005651395533, local class serialversionUID = 307309993874795880

  • Delphi 3 or Delphi XE gives Invalid class string error

    I have Delphi 3 and a runtime error occurs when I RUN this project. No build errors...
    The form appears correctly and I put the path to the GroupWise domain directory :
    F:\opt\novell\groupwise\mail\dom1
    I click on the CONNECT button and the error is :
    "Project admin_api.exe raised an exception class EOleSysError with message 'Invalid class string'. Process stopped. Use Step or Run to Continue"
    For Delphi XE the error is only "Invalid class string".
    What am I doing wrong ?
    Thank You
    Have downloaded the same GroupWise Administrative Object API code
    https://www.novell.com/developer/ndk...bject_api.html
    unit App_obj;
    interface
    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, OleAuto, Ole2;
    type
    TForm1 = class(TForm)
    Button1: TButton;
    Label6: TLabel;
    UserID: TEdit;
    Label7: TLabel;
    LastName: TEdit;
    Label8: TLabel;
    FirstName: TEdit;
    UserDistinguishedName: TEdit;
    Label10: TLabel;
    SystemInfo: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    SystemDescription: TEdit;
    SystemDistinguishedName: TEdit;
    SystemLastModifiedBy: TEdit;
    ConnectedDomainName: TEdit;
    SystemObjectID: TEdit;
    PostOfficeList: TComboBox;
    Label11: TLabel;
    Label9: TLabel;
    UserContext: TEdit;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    DomainPath: TEdit;
    Button2: TButton;
    procedure Initialize(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    var
    Form1: TForm1;
    vSystem:variant;
    vDomain:variant;
    const
    ADMIN_NAME = 'Admin';
    sDOT = '.';
    implementation
    {$R *.DFM}
    procedure TForm1.Initialize(Sender: TObject);
    begin
    //Initialize controls
    DomainPath.Text:='';
    SystemDescription.Text:='';
    SystemDistinguishedName.Text:='';
    SystemLastModifiedBy.Text:='';
    ConnectedDomainName.Text:='';
    SystemObjectID.Text:='';
    UserID.Text:='';
    LastName.Text:='';
    FirstName.Text:='';
    UserDistinguishedName.Text:='';
    UserContext.Text:='';
    UserID.SetFocus;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
    vUsers:variant;
    vUser:variant;
    stemp:string;
    idotpos:integer;
    SelectedPO:string;
    sAdmin:string;
    begin
    //Get Selected PostOffice
    SelectedPO:=PostOfficeList.Items[PostOfficeList.ItemIndex];
    //Get Users Object
    vUsers:=vDomain.Users;
    //Find Admin user object
    vUser:=vUsers.Item(ADMIN_NAME,SelectedPO,Connected DomainName.Text);
    If UserContext.Text = '' then begin
    //Get Admin Context and use as Default
    sAdmin:=vUser.NetID;
    idotpos:=Pos(sDOT,sAdmin);
    stemp:=Copy(sAdmin,idotpos,256); //Copy everything after first dot include dot
    UserContext.Text:=stemp;
    end else begin
    //Use context string
    stemp:=UserContext.Text;
    end;
    //Make Distinguished name by adding UserID and admin context
    stemp:=UserID.Text+stemp;
    //Display User distinguished name
    UserDistinguishedName.Text:=stemp;
    //Add user
    vUser:=vUsers.Add(UserID.Text,LastName.Text,stemp,
    '',SelectedPO);
    //Set User first name
    vUser.GivenName:=FirstName.Text;
    //Commit User first name to system
    vUser.Commit;
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    var
    vPostOffice:variant;
    vPostOffices:variant;
    vPOIterator:variant;
    begin
    //Get GroupWise Admin Object and connect to it
    if(DomainPath.Text = '') then begin
    ShowMessage('You must enter a valid Domain Path. Then press Login');
    exit;
    end;
    vSystem:=CreateOleObject('NovellGroupWareAdmin');
    vSystem.Connect(DomainPath.Text);
    //Get the connected Domain
    vDomain:=vSystem.ConnectedDomain;
    //List some Domain properties
    SystemDescription.Text:=vDomain.Description;
    SystemDistinguishedName.Text:=vDomain.Distinguishe dName;
    SystemLastModifiedBy.Text:=vDomain.LastModifiedBy;
    ConnectedDomainName.Text:=vDomain.Name;
    SystemObjectID.Text:=vDomain.ObjectID;
    //Initialize controls
    UserID.Text:='';
    LastName.Text:='';
    FirstName.Text:='';
    UserDistinguishedName.Text:='';
    UserContext.Text:='';
    UserID.SetFocus;
    //Get list of PostOffices for connected Domain
    vPostOffices:=vDomain.PostOffices;
    vPOIterator:=vPostOffices.CreateIterator;
    vPostOffice:=vPOIterator.Next;
    PostOfficeList.Clear;
    While( (NOT VarIsNULL(vPostOffice)) And (NOT varisempty(vPostOffice))) do begin
    PostOfficeList.Items.Add(vPostOffice.Name);
    vPostOffice:=vPOIterator.Next;
    end;
    //Set index to first item in list
    PostOfficeList.ItemIndex:=0;
    end;
    end.

    On 9/24/2013 10:46 PM, bperez wrote:
    >
    > I have Delphi 3 and a runtime error occurs when I RUN this project. No
    > build errors...
    >
    > The form appears correctly and I put the path to the GroupWise domain
    > directory :
    >
    > F:\opt\novell\groupwise\mail\dom1
    >
    > I click on the CONNECT button and the error is :
    >
    > "Project admin_api.exe raised an exception class EOleSysError with
    > message 'Invalid class string'. Process stopped. Use Step or Run to
    > Continue"
    >
    > For Delphi XE the error is only "Invalid class string".
    >
    > What am I doing wrong ?
    >
    > Thank You
    >
    > Have downloaded the same GroupWise Administrative Object API code
    > https://www.novell.com/developer/ndk...bject_api.html
    >
    > {/************************************************** *************************
    >
    > ************************************************** **************************/}
    > unit App_obj;
    >
    > interface
    >
    > uses
    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
    > Dialogs,
    > StdCtrls, OleAuto, Ole2;
    >
    > type
    > TForm1 = class(TForm)
    > Button1: TButton;
    > Label6: TLabel;
    > UserID: TEdit;
    > Label7: TLabel;
    > LastName: TEdit;
    > Label8: TLabel;
    > FirstName: TEdit;
    > UserDistinguishedName: TEdit;
    > Label10: TLabel;
    > SystemInfo: TGroupBox;
    > Label1: TLabel;
    > Label2: TLabel;
    > Label3: TLabel;
    > Label4: TLabel;
    > Label5: TLabel;
    > SystemDescription: TEdit;
    > SystemDistinguishedName: TEdit;
    > SystemLastModifiedBy: TEdit;
    > ConnectedDomainName: TEdit;
    > SystemObjectID: TEdit;
    > PostOfficeList: TComboBox;
    > Label11: TLabel;
    > Label9: TLabel;
    > UserContext: TEdit;
    > Label12: TLabel;
    > Label13: TLabel;
    > Label14: TLabel;
    > Label15: TLabel;
    > Label16: TLabel;
    > DomainPath: TEdit;
    > Button2: TButton;
    > procedure Initialize(Sender: TObject);
    > procedure Button1Click(Sender: TObject);
    > procedure Button2Click(Sender: TObject);
    > private
    > { Private declarations }
    > public
    > { Public declarations }
    > end;
    >
    > var
    > Form1: TForm1;
    > vSystem:variant;
    > vDomain:variant;
    >
    > const
    > ADMIN_NAME = 'Admin';
    > sDOT = '.';
    >
    > implementation
    >
    > {$R *.DFM}
    >
    > procedure TForm1.Initialize(Sender: TObject);
    > begin
    > //Initialize controls
    > DomainPath.Text:='';
    > SystemDescription.Text:='';
    > SystemDistinguishedName.Text:='';
    > SystemLastModifiedBy.Text:='';
    > ConnectedDomainName.Text:='';
    > SystemObjectID.Text:='';
    >
    > UserID.Text:='';
    > LastName.Text:='';
    > FirstName.Text:='';
    > UserDistinguishedName.Text:='';
    > UserContext.Text:='';
    > UserID.SetFocus;
    >
    > end;
    >
    > procedure TForm1.Button1Click(Sender: TObject);
    > var
    > vUsers:variant;
    > vUser:variant;
    > stemp:string;
    > idotpos:integer;
    > SelectedPO:string;
    > sAdmin:string;
    > begin
    > //Get Selected PostOffice
    > SelectedPO:=PostOfficeList.Items[PostOfficeList.ItemIndex];
    >
    > //Get Users Object
    > vUsers:=vDomain.Users;
    >
    > //Find Admin user object
    > vUser:=vUsers.Item(ADMIN_NAME,SelectedPO,Connected DomainName.Text);
    >
    > If UserContext.Text = '' then begin
    >
    > //Get Admin Context and use as Default
    > sAdmin:=vUser.NetID;
    > idotpos:=Pos(sDOT,sAdmin);
    > stemp:=Copy(sAdmin,idotpos,256); //Copy everything after first dot
    > include dot
    > UserContext.Text:=stemp;
    >
    > end else begin
    > //Use context string
    > stemp:=UserContext.Text;
    > end;
    >
    > //Make Distinguished name by adding UserID and admin context
    > stemp:=UserID.Text+stemp;
    >
    > //Display User distinguished name
    > UserDistinguishedName.Text:=stemp;
    >
    > //Add user
    > vUser:=vUsers.Add(UserID.Text,LastName.Text,stemp,
    > '',SelectedPO);
    >
    > //Set User first name
    > vUser.GivenName:=FirstName.Text;
    >
    > //Commit User first name to system
    > vUser.Commit;
    > end;
    >
    >
    >
    > procedure TForm1.Button2Click(Sender: TObject);
    > var
    > vPostOffice:variant;
    > vPostOffices:variant;
    > vPOIterator:variant;
    >
    > begin
    > //Get GroupWise Admin Object and connect to it
    > if(DomainPath.Text = '') then begin
    > ShowMessage('You must enter a valid Domain Path. Then press
    > Login');
    > exit;
    > end;
    > vSystem:=CreateOleObject('NovellGroupWareAdmin');
    >
    >
    > vSystem.Connect(DomainPath.Text);
    > //Get the connected Domain
    > vDomain:=vSystem.ConnectedDomain;
    >
    > //List some Domain properties
    > SystemDescription.Text:=vDomain.Description;
    > SystemDistinguishedName.Text:=vDomain.Distinguishe dName;
    > SystemLastModifiedBy.Text:=vDomain.LastModifiedBy;
    > ConnectedDomainName.Text:=vDomain.Name;
    > SystemObjectID.Text:=vDomain.ObjectID;
    >
    > //Initialize controls
    > UserID.Text:='';
    > LastName.Text:='';
    > FirstName.Text:='';
    > UserDistinguishedName.Text:='';
    > UserContext.Text:='';
    > UserID.SetFocus;
    >
    > //Get list of PostOffices for connected Domain
    > vPostOffices:=vDomain.PostOffices;
    > vPOIterator:=vPostOffices.CreateIterator;
    > vPostOffice:=vPOIterator.Next;
    > PostOfficeList.Clear;
    > While( (NOT VarIsNULL(vPostOffice)) And (NOT
    > varisempty(vPostOffice))) do begin
    > PostOfficeList.Items.Add(vPostOffice.Name);
    > vPostOffice:=vPOIterator.Next;
    > end;
    >
    > //Set index to first item in list
    > PostOfficeList.ItemIndex:=0;
    > end;
    >
    > end.
    >
    >
    gw client installed? Novell client installed?

  • Invalid class file format... major.minor version '49.0' is too recent ...

    I am using the Eclipse 3.1 and Oracel BPEL designer 0.9.13
    After I created a new BPEL process (named: trybpel), I got the following output in the console:
    uildfile: D:\eclipse\workspace\trybpel\build.xml
    main:
    [bpelc] &#27491;&#22312;&#39564;&#35777; "D:\eclipse\workspace\trybpel\trybpel.bpel" ...
    [bpelc] error: Invalid class file format in D:\Java\jre1.5.0\lib\rt.jar(java/lang/Object.class). The major.minor version '49.0' is too recent for this tool to understand.
    [bpelc] error: Class java.lang.Object not found in class com.collaxa.cube.engine.core.BaseCubeProcess.
    [bpelc] 2 errors
    BUILD FAILED: D:\eclipse\workspace\trybpel\build.xml:28: ORABPEL-01005
    Total time: 8 seconds
    I am puzzled with the information in bold. Would anyone tell me how to fix this problem? Thank you very much.

    the same error ORABPEL-01005, but not the same error message,
    Errors occurred when compile the bpel process using bpel designer for Eclipse:
    (com.oracle.bpel.designer_0.9.13)
    using PM: bpel_jboss_101200
    More error infomation following:
    Buildfile: E:\OraBpelDEclipse3.2\workspace\AboutTest\build.xml
    main:
    [bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:835: Invalid expression statement.
    [bpelc] retun true;
    [bpelc] ^
    [bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:835: ';' expected.
    [bpelc] retun true;
    [bpelc] ^
    [bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:208: Method setPartneLinkBinding(com.collaxa.cube.rm.suitcase.PartnerLinkBindingDescriptor) not found in class com.collaxa.cube.engine.types.bpel.CXPartnerLink.
    [bpelc] __pl.setPartneLinkBinding(getProcessDescriptor().getPartnerLinkBindings().getPartnerLinkBinding(__pl.getName()));
    [bpelc] ^
    [bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:584: Undefined variable: __ctx
    [bpelc] __setOutgoingLinks(__sc, __ctx);
    [bpelc] ^
    [bpelc] 4 errors
    BUILD FAILED
    E:\OraBpelDEclipse3.2\workspace\AboutTest\build.xml:28: ORABPEL-01005
    Error in java files auto-generated when compiling ,why?
    Thanks!

  • BindingException - Invalid Class Received

    Hello friends -
    I'm currently getting the following error at servicegen ant time:
    weblogic.xml.schema.binding.BindingExceptio
    n: Invalid class received: interface java.util.Enumeration loaded from file:/C:/bea/jdk1
    41_05/jre/lib/rt.jar!/java/util/Enumeration.class. All classes that will be serialized
    or deserialized must be non-interface, non-abstract classes that provide a public default constructor
    I've done some reading, but most of what I find seems to indicate that this is an issue with wanting to return an unserializable object type from a web service. In my case, I simply want to use a Properties object inside of my web service to retrieve values that would be useful to change without a recompilation. My input and output do not include Enumeration type objects. If I modify my methods to use hardcoded values instead of opening a file using Properties, servicegen will compile the web service fine.
    I've also seen some postings indicating this could be a classpath related issue, but have yet to make progress on that end either.
    Is it impossible to use / reference any object which does not implement serializable within a web service, even if your input or return types do not utilize these objects?
    Any and all guidance is appreciated.
    Thanks!
    cm

    I think it is too late to respond but this is what i relize at this point.I am getting the same error but with java.util.Map the reason is these are not supported data types by servicegen so you need to write a data type.Please let me know if you resolved this issue if so How?

  • MakePersistent exception and second class object value

    1. When makePersistent is called on an object with application id that
    already exists in the database, a JDOFatalDataStoreException is thrown.
    The JDO specification calls for a JDOUserException (17.1.4).
    2. If there are stray data for a second class field (e.g. Hashtable)
    before the object is created, the stray data will become part of the value
    of the second class object.
    Suggestion: Delete statements should be issued to delete stray values for
    second class fields.
    ---------- Program output -------------
    After makePersistent: Persistent-Dirty-New
    After add inside transaction: Persistent-Dirty-New
    [ C:9; S:58; T:5; D:11/29/02 9:47 PM ] INSERT INTO PORTFOLIOX(JDOLOCKX,
    JDOCLASSX, NAMEX) VALUES (0, 'quocp.ent.Portfolio', 'TESTPF')
    [ C:9; T:5; D:11/29/02 9:47 PM ] roll back data store transaction
    javax.jdo.JDOFatalDataStoreException:
    com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper: [SQL=INSERT INTO
    PORTFOLIOX(JDOLOCKX, JDOCLASSX, NAMEX) VALUES (0, 'quocp.ent.Portfolio',
    'TESTPF')] Invalid argument value: Duplicate entry 'TESTPF' for key 1
    [code=1062;state=S1009]
    NestedThrowables:
    com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper: [SQL=INSERT INTO
    PORTFOLIOX(JDOLOCKX, JDOCLASSX, NAMEX) VALUES (0, 'quocp.ent.Portfolio',
    'TESTPF')] Invalid argument value: Duplicate entry 'TESTPF' for key 1
    end trans[11/29 21:47:28:913]

    Well, you can always do this type of cleanup manually if you so desire.
    Having Kodo automatically guess about what constitutes valid data seems
    pretty dangerous though.
    I'd suggest that you put the appropriate deferred referential integrity
    checks on your schema instead. This will let the database guarantee the
    consistency of the data.
    -Patrick
    Quoc Pham wrote:
    If the data for the second class member somehow are there in the table
    (maybe someone deleted the owning instance without cleaning up the owned
    data), then it woul be picked up. It would be safer to have an option to
    issue an SQL statement to clean up the data.
    "Patrick Linskey" wrote in message
    news:asegfu$9r0$[email protected]..
    Quoc Pham wrote:
    2. If there are stray data for a second class field (e.g. Hashtable)
    before the object is created, the stray data will become part of the
    value
    of the second class object.What do you mean by 'stray data?'
    -Patrick
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com
    Patrick Linskey [email protected]
    SolarMetric Inc. http://www.solarmetric.com

  • Creating New Class Object progmatically

    Instead of uploading an XML for a new type definition, I want to create a new class object progmatically.
    In my code, I basically set up a ClassObjectDefinition, set the attributes, then call createSchemaObject.
    I'm getting an exception saying that I have an invalid or missing option.
    What is the bare minimum needed to create a new Class Object?
    null

    First - you must be admin mode to create any subclasses. Minimally, you need to set:
    - ClassName
    - SuperClass
    - your custom attributes
    If you have created your own java class which is optional, you will need to set:
    - BeanClassPath
    Then there's optional settings such as Description.
    If this doesn't help, is it possible to post your code setting the ClassObject Definition attribute Values (AVs) and the create?
    As a guide, you should set all the AVs that you used to create a subclass via XML.
    Another note - once you create subclass named FOO, you will not be able to create another subclass named FOO.
    Another note (!): by default, iFS will use your class name to create the DBMS table. If you have a particularly long class name which will exceed the DBMS limits for table names, then you will want to set:
    - DatabaseObjectName
    hope this helps.
    -S
    null

  • ASP Error message: Invalid class string

    Server object, ASP 0177 (0x800401F3)
    Invalid class string
    /asap/admin/insert.asp
    I have seen that the installation of MSXML 2.0 may be the solution to this error message I am getting. How do I go about installing this? I have downloaded and thought I installed, but still get this message. Anybody else seen this and know of possible solution?
    Please help...

    I just noticed the customer is on PL39 and the version I am on here is PL43.  Could that be presenting a problem?
    Thanks,
    EJD

  • Operations Manager failed to run a WMI query-Invalid class

    Hi Team,
    may of the windows 2008 R2 sp1 and sp2 servers getting below SCOM 2012 alert. Please help me to fix the same.
    SCOM version : SCOM 2012 R2
    Alert: Operations Manager failed to run a WMI query
    Source: server Name
    Path: server Name
    Last modified by: System
    Last modified time: 2/6/2014 8:33:22 AM
    Alert description: Object enumeration failed
    Query: 'SELECT * FROM MetaFrame_Server WHERE ServerName="server Name"'
    HRESULT: 0x80041010
    Details: Invalid class
    One or more workflows were affected by this.
    Workflow name: Citrix.PresentationServer.ActiveSessions.PerformanceMonitor

    First try it with WBEMTEST to see what is going with the WMI class. The error you are getting usually means WMI misses that class and you should load the mof again/ maybe rebuild the entire repository (careful as the windows files are all located
    on 1 folder, but applications tend to store it in their own folders, like citrix, ibm, etc).
    Try to run this command:
    mofcomp "<Programfiles>\Citrix\System32\Citrix\WMI\ .Mof file for citrix"
    {citrixProv.XP10FR3.mof, metaframeProv.XP10FR3.mof, and mgmt.XP10FR4.mof files}
    Then, run the WBEMTest again and the namespace should be returned successfully. Then restarting the health service on agent.
    Also you can refer below link
    https://support.citrix.com/article/CTX122283
    Please remember, if you see a post that helped you please click (Vote As Helpful) and if it answered your question, please click (Mark As Answer).

  • Problem with Dynamically accessing EJB Class objects in WL 7.0 SP1

    I am trying to build a component which has the ability to instantiate and execute
    an known EJB method on the fly.
    I have managed to build the component but when I try and execute it I get a ClassNotFoundException.
    I know that the EJB I am trying to invoke is deployed and available on the server,
    as I can see it in the console, I also seen to have been able to get the remote
    interface of the object, my problem occurs when I try and access the class object
    so I can perform a create on the object and then execute my method
    The code I have written is below:
    private Object getRemoteObject(Context pCtx, String pJNDIName, String pHomeBean)
    throws Exception {
         String homeCreate = "create";
         Class []homeCreateParam = { };
         Object []homeCreateParamValues = {};           
    try {  
    //This call seems to work and doesn't throw an exception     
    Object home = pCtx.lookup(pJNDIName);
    //However this call throws a java.lang.ClassNotFoundException
    Class homeBean = Class.forName(pHomeBean);
    Method homeCreateMethod = homeBean.getMethod(homeCreate,homeCreateParam);
    return homeCreateMethod.invoke(home, homeCreateParamValues);
    } catch (NamingException ne) {             
    logStandardErrorMessage("The client was unable to lookup the EJBHome.
    Please make sure ");
    logStandardErrorMessage("that you have deployed the ejb with the JNDI
    name "+pJNDIName+" on the WebLogic server ");
    throw ne;
    } catch (Exception e) {
    logStandardErrorMessage(e.toString());
    throw e;     
    Any advice would be really appreciated, I'm fast running out of ideas, I suspect
    it has something to do with the class loader but I'm not sure how to resolve it
    Regards
    Jo Corless

    Hello Joanne,
    Congratulations! I'm very happy that you've managed to fix your problem. It's
    always essential to understand how to package applications when deploying on BEA
    WebLogic. Usually, by throwing everything into an EAR file solves just about all
    the class loader problems. :-) Let us know if you have any further problems that
    we can assist you with.
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Joanne Corless" <[email protected]> wrote:
    >
    >
    I've fixed it!!!!!!!!
    Thanks to everyone who gave me help!!!!
    The class loader was the culprit which is what I suspected all along.
    As soon
    as I put the 2 jar files I was using into an EAR file the problem went
    away!!!!!
    Thanks again
    Jo Corless
    "Ryan LeCompte" <[email protected]> wrote:
    Hello Joanne,
    As Mr. Woollen mentioned, I also believe it's a problem with the class
    loader.
    You need to be careful how you arrange your EJBs, because WebLogic has
    a specific
    method in which it loads classes in an EAR, JAR, and WAR file(s). Please
    refer
    to http://dev2dev.bea.com/articles/musser.jsp for more information about
    BEA WebLogic
    class loading mechanisms and caveats. Also, try printing out the various
    methods
    that are available on the object that was returned to you via reflection.
    For
    example, use the getMethods() method, which returns an array of Method
    objects
    that you can subsequently cycle through and print out the various method
    names.
    This way you can discover if the class found/returned to you is indeed
    the one
    you intend to locate.
    Hope this helps,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    Rob Woollen <[email protected]> wrote:
    I believe the issue is the home interface class for this EJB is not
    available in the class loader which is doing the reflection.
    If you do:
    getClass().getClassLoader().loadClass(homeInterfaceClassName)
    I suspect it will fail. Reflection still requires that the class be
    loadable.
    -- Rob
    Joanne Corless wrote:
    Hi Slava,
    If I make my code look like you describe below I get a compliationerror telling
    me that
    home.getMethod() is not recognised (no such method)
    If I change it slightly and use
    Method homeCreateMethod =
    home.getClass().getMethod(homeCreate,homeCreateParam);
    The code will compile OK but when executed it still throws a NoSuchMethodException
    Any ideas ?
    Thanks for your help so far
    Regards
    Jo Corless
    Your code should look like
    Object home = pCtx.lookup(pJNDIName);
    Method homeCreateMethod =
    home.getMethod(homeCreate,homeCreateParam);
    return homeCreateMethod.invoke(home, homeCreateParamValues);
    Regards,
    Slava Imeshev
    "Joanne Corless" <[email protected]> wrote in message
    news:[email protected]...
    Hi Ryan,
    I also wanted to mention that if you do a "header search" in this
    particular
    newsgroup
    with the search query as "reflection", you will see many previousmessages
    regarding
    reflection and EJBs. I believe you could learn a lot from thedifficulties
    that
    others have faced and solved.I tried that and although there was a number of similar cases noneof them
    actually
    seem to fix my issue. Thanks for the suggestion though
    Are the EJBs that you are trying to access accessible via your
    system
    classpath?
    Try to avoid having them accessible via the main system classpath,and
    only bundle
    them in your appropriate EJB jar files (contained in an EAR file,for
    example).Maybe I should have laid the problem out a little clearer.
    I have a number of EJB's bundled up in a JAR file which is hot deployedto
    the
    server. Within this first JAR file is an EJB (SSB) component that
    needs
    to
    be
    able to invoke a known method on another EJB. This second EJB may
    or
    may
    not be
    within the first JAR file but it also will be hot deployed.
    The component trying to invoke the method on the 2nd EJB has to
    be
    able to
    create
    an instance of the 2nd EJB without actually knowing anything bar
    a
    JNDI
    Name which
    is passed in at runtime.
    I can get as far as doing the
    Object home = pCtx.lookup(pJNDIName);
    This returned a class with the name
    "com.csc.edc.projects.allders.httppostoffice.postman.PostmanBean_mp8qy2_Home
    Impl_WLStub"
    My problem seems to occur when I try and invoke the create method
    Method homeCreate = home.getClass().getMethod("create", new Class[0]);
    My code throws a java.lang.NoSuchMethodException at this point so
    I
    am
    unable
    to progress to the next step of :
    Object bean = homeCreate.invoke(home, null);
    So I can return the instantiated bean back to the calling client.
    Why am I getting the NoSuchMethodException, is is because I am gettinga
    stub
    back rather than the home interface and if so how do I get the truehome
    interface
    from the bean
    Thanks in advance
    Jo Corless

  • Converting a class object back to a .class file

    Hi,
    How can i convert a class object back to a .class file ? Thanks

    any pointers on how to do it then ? i don't have
    access to the native codeIf I have understood you correctly, you have native code that generates bytecode. Currently you load the class this bytecode represents right into the classloader, but you want to save it to disk as a .class file. Right?
    If so, you just have to get hold of that bytecode before it "disappears" into the classloader, and save it to disk. How you can best do this depends on exactly how you communicate with that native code.
    If I have misunderstood your problem (and that's not unlikely), please try to be clearer.

  • How to use two activex class objects in same vi

    HI
    I am using labview to read ECU data from INCA software .INCA providing COMTOOL API(incacom.dll). I am using ACTIVEX for  communication between INCA & Labview. My problem is If I have used single activex class object  I am able to read Inca version, getting the database path etc. If I have used two activex class in same vi (one to open Inca & other one is to read the folder structure) I am not getting output.I have attached snapshot for referance
    Attachments:
    activex1.JPG ‏114 KB
    activex2.JPG ‏107 KB

    It wasnt in the first two images you posted, or I couldnt see it anyway! That was the only reason.
    Did you try the database block on its own, just to confirm that it is working?
    Beginner? Try LabVIEW Basics
    Sharing bits of code? Try Snippets or LAVA Code Capture Tool
    Have you tried Quick Drop?, Visit QD Community.

  • How can i add custom attributes to a new Class Object using the API ?

    Hello everyone,
    Here is my problem. I just created a subclass of Document using the API (not XML), by creating a ClassObjectDefinition and a ClassObject. Here is the code :
    // doc is an instance of Document
    ClassObject co = doc.getClassObject();
    ClassObjectDefinition cod = new ClassObjectDefinition(ifsSession);
    cod.setSuperclass(co);
    cod.setSuperclassName(co.getName());
    cod.setName("MYDocument");
    ClassObject c = (ClassObject)ifsSession.createSchemaObject(cod);
    Everything seems to be OK since i can see the new class when i use ifsmgr. But my question is : how can i add custom attributes to this new class ? Here is what i tried :
    AttributeDefinition value = new AttributeDefinition(ifsSession);
    value.setAttribute("FOO", AttributeValue.newAttributeValue("bar"));
    c.addAttribute(value);
    But i got the following error message :
    oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
    java.sql.SQLException: ORA-01400: impossible d'insirer NULL dans ("IFSSYS"."ODM_ATTRIBUTE"."DATATYPE")
    oracle.ifs.server.S_LibraryObjectData oracle.ifs.beans.LibrarySession.DMNewSchemaObject(oracle.ifs.server.S_LibraryObjectDefinition)
    oracle.ifs.beans.SchemaObject oracle.ifs.beans.LibrarySession.NewSchemaObject(oracle.ifs.beans.SchemaObjectDefinition)
    oracle.ifs.beans.SchemaObject oracle.ifs.beans.LibrarySession.createSchemaObject(oracle.ifs.beans.SchemaObjectDefinition)
    void fr.sword.ifs.GestionDocument.IFSDocument.createDocument(java.lang.String)
    void fr.sword.ifs.GestionDocument.IFSDocument.main(java.lang.String[])
    So, what am i doing wrong ?
    More generally, are we restricted in the types of the attributes ? (for example, would it be possible to add an attribute that would be an inputStream ? Or an object that i have already created ?).
    Any help would be appreciated. Thanks in advance.
    Guillaume
    PS : i'm using Oracle iFS 1.1.9 on NT4 SP6 and Oracle 8.1.7
    null

    Hi Guillaume,
    you're welcome. Don't know exactly, but assume that ATTRIBUTEDATATYPE_UNKNOWN
    is used to check for erronous cases only
    and it shouldn't be used otherwise.
    Creating your own objects could be simply done via
    ClassObject ifsClassObject;
    DocumentDefinition ifsDocDef = new DocumentDefinition(ifsSession);
    // get class object for my very own document
    ifsClassObject = ClassObject.getClassObjectFromLabel(ifsSession, "MYDOCUMENT");
    // set the class for the document i'd like to create
    ifsDocDef.setClassObject(ifsClassObject);
    // set attributes and content for the document...
    ifsDocDef.setAttribute("MYFOO_ATTRIBUTE",....);
    ifsDocDef.setContent("This is the content of my document");
    // create the document...
    PublicObject doc = ifsSession.createPublicObject(ifsDocDef);
    null

  • How to get a LabVIEW class object to expose an invoke-node method?

    Hi,
          I like the property/invoke-node "paradigm" used for interacting with "objects".  Can LabVIEW-class objects expose their properties and methods this way?  Can one or more LabVIEW-class objects be compiled into a library or "assembly" (or other distrubution format) that allows the property/invoke-node usage?
    I've looked at (but not completely understood) "Creating LabVIEW Classes".  Have also searched for related posts.
    The pic below shows an invoke node wired to a class with a Public VI "VAT.Status.Hello.vi".  I'd like to see VAT.Status.Hello show-up as a Method.  (I just tried "Select Method", and selected "VAT.Status.Hello.vi" but dialog's "OK" button stays greyed-out.)
    Cheers.
    Message Edited by tbd on 03-29-2007 03:15 PM
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
    Attachments:
    VATStat.JPG ‏54 KB

    Hi Aristos,
          Thanks for the reply!  It was a bit dissappointing, though.
    It appears the LabVIEW-class object will be moving away from (what seems to me) a convenient object-interface presented by the invoke-node/method paradigm - which allows us to interface with a large set of "objects" (.NET, ActiveX, LabVIEW GUI, VISA Resource, ?) in a similar manner and independent of the object's origin.  Being able to read the methods and parameters that appear in these nodes is also helpful for understanding diagram logic!
    I do like the option of dropping a friendly "VI looking" icon on the diagram, but perhaps an optional - even default - VI-icon representation for a class-object invoke-node is feasible - so the LabVIEW class-object could be the more generic object first, but with a traditional-G representation(?)
    Given the answer "We would like, someday, to support the property node"
    and "in the next version of LV, wiring the LV class to the property/invoke nodes will break the wire so we'll avoid confusion in the future",
    ... I guess you'll break the wire in the next version, but (perhaps) allow it again - if support of the property node is ever implemented?
    Regards.
    P.S. For the record, huge THANKS to whoever it was that straightened-out enumerated-types (somewhere) between LV4.1 and LV6.1.  Every time I add or remove an enumeration in a typedef, I silently give thanks to the bright and thoughtful soul(s) who made this valuable tool work so well!
    Hello. This is your friendly neighborhood R&D guy for LabVIEW classes.
    Regarding your request about property and invoke nodes as relates to LV classes....
    Short story: We would like, someday, to support the property node. We have no intention of ever supporting the invoke node.
    Long story: As we were creating LV classes, we had to evaluate the right programming interface for these things. We wanted LV classes to behave as new data types in LV. A developer should be able to create a LV class, then give it to someone who doesn't even know OO programming, and that second programmer could use the new data type without learning a lot of new concepts. From this principle, we held fast to the idea that the programming interface should be subVI calls whereever possible. The invoke node is really nothing more than a VI minus the icon. If you want, you can popup on any subvi node and uncheck the option "View as Icon". This will make the node display in a way that has the terminals listed as text, like the invoke node. So, at the end of the day, the invoke node is simply a subroutine call in LV that is language dependent, as opposed to the language independent iconography of LV generally.
    The property node is a slightly different story -- the functionality of a property node is actually different than an invoke node as its terminals are various subsets of the properties available, not a fixed list of parameters like the invoke node. The property node provides a nice interface for setting multiple properties in a block and only having to check a single error return. Very friendly. Our intent is to allow you to create a VI that has 5 terminals: object in, object out, error in, error out, and either a single input or a single output of your chosen type. VIs with this conpane could be marked as "properties" of the class and would show up when you wire the class wire to the property node. We would call the subVIs behind the scenes as needed to get/set the properties.
    This is on the longer term roadmap because it is "syntactic sugar" -- it sweetens the programming style, but it is not necessary to program effectively. You can get the same effect by writing those same VIs and stringing them along on a block diagram "railroad track" style. We'll probably get around to it in three or four versions of LV -- there are some major user requests that impact functionality that have to get done first.
    PS -- in the next version of LV, wiring the LV class to the property/invoke nodes will break the wire so we'll avoid confusion in the future of people thinking there's a way to use these nodes.
    Message Edited by Aristos Queue on 04-02-2007 09:56 AM
    Message Edited by tbd on 04-03-2007 12:39 PM
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

  • What is the advantage of using IB to create XIBs/Class Objects over coding?

    Hi all,
    I hoping someone can provide me some pros and cons as to when I should use IB to create XIBs and/or class objects as opposed to directly coding them.
    For example, if I choose Apple's Template for creating a Navigation Based Application (cocoa touch), the project creates two NIB files - MainMenu and RootViewController.
    However looking at one of demo apps SimpleDrillDown, it does not have a RootViewController XIB and instead creates it via code.
    Another example from the same two apps is that the template generates a "Navigation Controller" class object in the Mainmenu.xib. SimpleDrillDown does not bother with this in the XIB, but uses code to generate the controller:
    - (void)applicationDidFinishLaunching:(UIApplication *)application {
    // Create the navigation and view controllers
    RootViewController *rootViewController = [[RootViewController alloc] init];
    UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
    self.navigationController = aNavigationController;
    [aNavigationController release];
    [rootViewController release];
    // Configure and show the window
    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
    as opposed to the template which only needs this:
    - (void)applicationDidFinishLaunching:(UIApplication *)application {
    // Configure and show the window
    // Navigation Controller is defined in MainWindow.xib
    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
    So what are the advantages of each approach. Why does apple suggest one approach and yet all its demos use another.
    Any thoughts, answers gratefully received.
    TIA, Michael.

    You can do whatever you're comfortable with, but most of the best Cocoa programmers--the ones on the Mac, I mean--recommend putting everything you can into Interface Builder.
    It's a little like the difference between writing a program to do a bunch of financial calculations and using a spreadsheet. Yeah, the program can do everything the spreadsheet can--and more besides--but you'll find it far easier to create, use and modify the spreadsheet.
    Interface Builder takes away a lot of completely meaningless choices ("What order should I create the objects in? How should I name the variables? How should I create their frames? What order should I set the attributes in?"), leaving you with an interface optimized for creating and arranging objects, and allowing your code to focus on what you really do need to think about--your application's logic.
    (By the way--part of the reason Apple's demos don't all use Interface Builder is that the very first SDK releases didn't have it. Back then, you had to create all your views programatically. Believe me, I have no wish to go back to setting autoresize masks manually. Now get off my lawn, whippersnapper.)

Maybe you are looking for

  • Material Ledger WIP Revaluation OBYC

    Hi Can anyone please give example or documentations regarding OBYC for transaction key WPM (WIP from Price Differences ) and PRM (Price Difference from Exploded WIP) ? And what the accounting journal would be like for those 2 transactions? Thanks

  • Convert from IPv6 to IPv4

    Hi, when using: request.getRemoteAddr() I get the ip in IPv6 format. But, I am using maxmind to get geo information, which needs ip in IPv4 format. How can I convert from IPv6 to IPv4? Thanks.

  • Strange error illustrator cs5

    Hello I was testing the master suite cs5 everythings goes fine except Illustrator. when I run it I have a window that says: "This application does not support the current language of the operating system open the Regional Options control panel and li

  • Dates and dynamic queries

    Hi. I am retrieving Entity EJBs using dynamic queries. I had some troubles working with dates. This is an example about the kind of query I am talking about: SELECT OBJECT(a) FROM Payment AS a WHERE a.date <= '2/3/2005' It worked prefectly fine in de

  • Que hace este diagrama de bloques?

    Que hace este diagrama de bloques?? Corresponde a un VI de la libreria de Modbus. Pero tengo porque si se configura el bloque para escribir en multiples bobinas porque Read Coils vale 1?? Como funciona toda esta parte? Perdonad si la pregunta es de p