Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

von Java aus auf Notes-DB zugreifen

<< < (5/9) > >>

Ralf_M_Petter:
Muss mich Axel anschliessen, denn wen du noch gar keine Erfahrungen in Lotus script hast, ist sicher der Besuch eines Kurses zu diesem Thema oder ein externes Consulting sinnvoller. Sonst kann dir Axel eventuell auch ein gutes Buch empfehlen.

Grüße

Ralf

mlschach:
Hallo,

habt ja recht, will ja auch gar keine Lösung von Euch, sondern Ansatzpunkte. Hab aber inzwischen selbst ein wenig ausprobiert. Bin dabei schnell auf nen Fehler gestoßen, der mir die Nerven raubt. Vielleicht wisst ihr rat:

Benutzte Netbeans und Java in der jeweils aktuellsten Version. Habe in Netbeans die Notes.jar wie in dem von euch empfohlenen Thread eingetragen. Dann wollte ich folgendes Progi starten:


/*
* test.java
*
*/
import lotus.domino.*; //Anweisung um den Java Compiler mitzuteilen, wo er die Notesklassen findet.
/**
*
*/
public class test {
   
    /** Creates a new instance of testprogramm In unserem Beispiel brauchen wir keine Instance */
    public test() {
    }
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
        NotesThread.sinitThread(); //Beim lokalen Zugriff nicht DIIOP muss der Thread erst für Domino initialisiert werden.
        Session ses=null; //Sessionvariable definieren.
        try { //Da Notes Klassen Exceptions werfen können sollte man diese auch abfangen.
            ses = NotesFactory.createSession(); //Erzeugen eines Sessionobjekts
            Database db=ses.getDatabase("","TUTOR2.NSF"); // Öffnen einer Datenbank bitte das anpassen an euer Umfeld z. B. Maildatenbank.
            System.out.println("Datenbank hat folgenden Dateiname: "+db.getFileName());
            //Anzahl Dokumente und Betreffzeilen
            //Hier immer Fehler beim Start!!:
DocumentCollection dc = db.getAllDocuments();
            //System.out.println("Database \"" +
            //db.getFileName() + "\" has " + dc.getCount() + " documents");
            //int n = 0;
           // Document doc = dc.getFirstDocument();
            /*while (doc != null) {
                n++;
                System.out.println
                ("Document # " + n + ": " +
                doc.getItemValueString("Subject"));
                doc = dc.getNextDocument();
            }*/
 

        }
       
        catch (Exception e){
            System.out.println("Es ist ein Fehler aufgetreten");
            e.printStackTrace();
        }
 
   
}
}



Dabei bereitet mir folgende simple Zeile Kopfschmerzen:

DocumentCollection dc = db.getAllDocuments();
           
Da kann man ja nich viel falsch machen. Kompilieren kann ich mein Programm problemlos. Beim Start tritt jedoch folgender Fehler auf:

Datenbank hat folgenden Dateiname: TUTOR2.NSF
Es ist ein Fehler aufgetreten
lotus.domino.NotesException
        at lotus.domino.local.NotesBase.PropGetAdt(Native Method)
        at lotus.domino.local.Database.getAllDocuments(Database.java:1152)
        at test.main(test.java:27)

Kann mir jemand mal bitte sagen, woran das liegt?? Fehlt da irgendwo im System oder in Netbeans noch ne Einstellung? Denn Fehler in meinem Code ist das doch wohl nicht, oder?!

Hab echt keine Idee mehr. Meine Datenbank TUTOR2.NSF liegt übrigens erstmal einfach lokal im gleichen Verzeichnis wie mein Java-Progi.

Michael

mlschach:
ok, vergeßt die frage. ich sollte erst denken, dann posten.  >:(

die DB gehört ins Notes/Data bzw mit relativen pfad von dort aus angegeben, ne?!

inzwischen hab ich ein progi, dass mir alle dokumente der DB ausliest und die subject-zeile ausgibt.

eine frage: wie kann ich herauskriegen, ob ein dokument in einem bestimmten folder liegt bzw. in welchem folder ein dokument liegt?? ich hab nur nen befehl gefunden, um ein dokument in einen bestimmten folder zu schieben, aber nix ala "getDocumentLiegtInFolder()". Kleiner Tip??  ???

Axel_Janssen:
normalerweise geht man den umgekehrten Weg.

Du fragst einen Folder nach einem Dokument.
Ein Folder ist vom programmatischen Zugriff eine View.

Also:

--- Code: ---View folder = db.getView("Folder1");
DocumentCollection dc = folder.getAllDocumentsByKey(key);
// wobei key ein Schlüssel auf die erste sortierte Spalte des Folders ist.

--- Ende Code ---

hoffe es hilft

gruss Axel

mlschach:
danke. das ist schon mal ein ansatz. vielleicht gehts auch so.

allerdings wär das was ich brauche jedoch tatsächlich andersrum. ich hab ziemlich komplexe ordnerstrukturen in meiner DB und will nun einfach rauskriegen, ob dokument xy  nun in einem ganz bestimmten ordner abc liegt. geht das vielleicht auch? kann man vielleicht den ordner-pfad irgendwie abfragen?

ganz konkret:
dokument xy liegt im ordner ab, der wiederum im ordner cd liegt und so weiter.  will nun wissen, ob xy wirklich im ordner ab liegt OHNE dabei über den von dir vorgeschlagenen ansatz alle möglichen ordner(views) abzufragen. geht das????

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln