Beiträge von GerdH

    Hallo,


    in einer Notes-Datenbank möchte ich Informationen in ein PDF-Dokument exportieren. Dazu habe ich einen Java-Agenten entwickelt, welcher mit Hilfe der iText-Bibliothek ein PDF erzeugt. (Hierzu wird der Temp-Path der JVM bestimmt, um dort die PDF-Datei temporär zu speichern damit diese an ein Notes-Dokument angehängt werden kann.)
    Wird der Agent lokal aufgerufen, so wird das PDF erzeugt. Bei Ausführung des Agenten auf dem Server (Aufruf vom Browser, periodischer Agent) bricht der Agent mit einer SecurityException ab. Hier der Code und die Fehlermeldung:



    25.10.2006 10:03:47 HTTP JVM: java.lang.SecurityException: java.io.tmpdir
    25.10.2006 10:03:47 HTTP JVM: at lotus.notes.AgentSecurityManager.checkPropertyAccess(AgentSecurityManager.java:551)
    25.10.2006 10:03:47 HTTP JVM: at java.lang.System.getProperty(System.java:601)
    25.10.2006 10:03:47 HTTP JVM: at JavaAgent.getTempPath(JavaAgent.java:20)
    25.10.2006 10:03:47 HTTP JVM: at JavaAgent.NotesMain(JavaAgent.java:12)
    25.10.2006 10:03:47 HTTP JVM: at lotus.domino.AgentBase.runNotes(Unknown Source)
    25.10.2006 10:03:47 HTTP JVM: at lotus.domino.NotesThread.run(NotesThread.java:208)



    Welche Möglichkeiten habe ich, dieses Problem zu lösen?
    Können die Java-Sicherheitseinstellungen geändert werden?
    Kann ich das PDF-Dokument an ein Notes-Dokument anhängen, ohne es vorher im FileSystem gespeichert zu haben? (PDF liegt als ByteArrayOutputStream vor)


    Für Lösungshinweise wäre ich dankbar.


    GerdH


    Lotus Domino 6.03
    Lotus Notes 6.54

    Hallo,


    ein Möglichkeit wäre, die komplette Aktion auf LotusScipt umzustellen. Dann entfällt auch der Agentenaufruf.


    Wenn Du den bisherigen Ansatz weiterverfolgst, müsste es wie oben schon angesprochen funktionieren.
    Du kannst einen Agenten aus Deiner Formel aufrufen. Als Ziel des Agenten (in den Agenten-Eigenschaften) wählst Du "Alle markierten Dokumente". An das Dokument gelangst Du dann über UIDoc = NotesUIWorkspace.CurrentDocument oder über doc = NotesSession.DocumentContext. Somit kannst Du auf die Felder des Dokuments zugreifen und Deine Mail zusammenbauen.


    Gruß,
    Gerd

    Hallo,


    andreas
    Das Mittagessen wahr wohl schon zu nahe und damit meine Antwort zu kurz und zu allgemein. :wuet:
    Du hast recht, wenn der Agent aus dem Frontend aufgerufen wird, stehen auch die UI-Klassen zur Verfügung.


    Allerdings hab ich mir angewöhnt, soweit möglich in Agenten keine UI-Objekte zu verwenden, damit lassen sich Probleme vermeiden, wenn der Agent auch im Backend laufen soll.


    @All
    Nachdem ich mir den Thread nochmal sorgfältiger durchgelesen habe, verstehe ich gerade das grundsätzliche Problem nicht mehr so ganz.
    Um auf das aktuell geöffnete Dokument zuzugreifen reicht es doch aus, dem Agent als Ziel "Alle ausgewählten Dokumente" anzugeben. Hierzu muss man keinerlei Parameter übergeben. Die Feldmodifikationen kann man dann sogar auch in Formelsprache vornehmen.


    Das Problem tritt erst auf, wenn man an einem anderen Dokument als dem momentan geöffneten die Neuberechnungen vornehmen möchte.


    Vielleicht kann Carsten hier das Problem nochmal genauer beschreiben.


    Gruß,
    Gerd

    Hallo,


    man könnte in einem Profil-Dokument ein Richtext-Feld anlegen, in welches die Vorgabe hinterlegt wird.
    Dann wie schon weiter oben beschrieben per LotusScript im PostOpen Deiner Maske den Inhalt aus dem Richtext-Feld des Profil-Dokuments in das Richtext-Feld des neu geöffneten Dokuments kopieren.

    Hallo,


    Serverdaten: 2 Xeon 2,7 GHz mit 2GB RAM, Win2000 Server, Domino 6.03
    Es sind sehr viele Screenshots mit zum Teil sehr hoher Auflösung


    Das Hauptproblem liegt momentan bei den Ansichten. Aber auch beim Arbeiten in den Masken dauert es nach Aussage der User deutlich länger bei der Bearbeitung. Hier erfolgen ein paar Lookups im Hintergrund.


    bofh
    Einen Java-Agenten hatten wir schonmal in Vorbereitung. Allerdings noch unter Notes5 (Java 1.18 :( ) Da hat das nicht so ganz geklappt. Nachdem wir jetzt auf Notes6 umgestellt haben, sollten die Chancen besser stehen.


    Allerdings ist für mich noch unklar, ob es außer dem weniger belegten Speicherplatz für die Performance bei den Views Vorteile bringt.


    Gruß,
    Gerd

    Hallo,


    vielen Dank für die prompten Antworten.


    Diali
    Momentan sind es ca. 50 Ansichten. Ungefähr die Hälfte für die User zugänglich, die andere Hälfte versteckte Lookup-Ansichten.
    Bei den User-Ansichten könnte man vielleicht mit dem Fachbereich reden und auf die eine oder andere Ansicht verzichten (Ansicht sortiert nach A, sortiert nach B, sortiert nach C, usw :( )
    Zeitberechnungen kommen keine vor.


    taurec
    Ansichtsauswahl ist eigentlich nicht weiter komplex. Dokumente sind es momentan ca. 10.000. Wir wollten noch eine Archiv-Funktion zum auslagern einbauen, aber die fachlichen Vorgaben sind noch nicht durch :cry: Deshalb hat mich das Problem dann jetzt wohl eingeholt.


    Bei der Datenbank handelt es sich um eine Bug-Datenbank für unsere Anwendungen. Deshalb werden oft Screenshots benötigt. Die Tester kopieren diese der Einfachkeit halber über die Zwischenablage in ein RichText-Feld. Ich vermute die Grafik ist dann im bmp-Format eingebettet.
    Wir hatten schon über einen Agenten nachgedacht, der die Grafiken in ein jpg-Format umwandeln sollte. Scheint aber ein nicht ganz triviales Problem zu sein. Ich werde den Ansatz mal weiter verfolgen, vielleicht einen neuen Thread öffnen und auf Eure tatkräftige Mithilfe hoffen :D


    Gruß,
    Gerd

    Hallo Forum,


    ich habe momentan eine Anwendung, welche bei ca. 10.000 Dokumenten bereits deutlich an Performance verliert. Die Dokumente beinhalten oftmals Screenshots, deshalb ist die Datenbankgröße auf ca. 1,5 GB angewachsen.


    - Kann die Datenbankgröße für langsamen View-Aufbau verantwortlich sein?
    - Macht es Sinn, die über die Zischenablage eingefügten Screenshots (wahrscheinlich bmp) in ein komprimiertes Grafikformat umzuwandeln?
    - Welche Einstellungen empfehlen sich für den Ansichtsindex? (Automatisch nach 1. Verwendung oder Automatisch?)
    - Macht es Sinn, weniger häufig benutzte Ansichten zu löschen/auszublenden?


    Vielen Dank für Eure Meinungen.
    Gerd

    Hallo,


    jetzt steh ich auch auf dem Schlauch, wenn ich's so mache, wie taurec vorgeschlagen hat, bekomme ich wieder nur den internen Namen des Attachments:



    dnotes
    ja, mein Feld heißt Body und bei mir kommt in dem weiter oben geposteten Code der ursprüngliche Dateiname zurück.

    dnotes


    hier mein kurzer Beispielcode:


    Danke,


    ich hatte die Notes-Hilfe so interpretiert, dass @AttachmentNames und NotesEmbeddedObject.Source das selbe Ergebnis zurückgeben.
    Hab es gerade kurz getestet und wirklich sollte es dann mit .Source passen.


    Noch eine Frage zu den EmbeddedObjects:
    Wie bekomme ich denn alle EmbeddedObjects?


    rtItem.EmbeddedObjects ist sicher ein guter Start.
    Aber gibt es nicht noch ein paar Ausnahmen, dass Anhänge nicht in einem RTFeld, sondern direkt am Dokument hängen können?
    (forall o in doc.EmbeddedObjects wirft bei mir einen Type Missmatch, da es wohl nicht für Attachments gedacht ist)


    Ich hatte schon manchmal mit ein paar komischen Dokumenten zu tun, wo in der Maske kein Anhang angezeigt wurde, über die Feldeigenschaften aber sehr wohl ein Anhang erkennbar war. Leitete man so ein Dokument weiter, war der Anhang dann im neuen Dokument nicht mehr vorhanden.
    Kennt jemand dieses Phänomen?


    Vielen Dank
    Gerd

    Hallo,


    Für eine Archivlösung möchte ich Notes-Dokumente prüfen, ob Anhänge vorhanden sind, welche vom Archivsystem nicht verarbeitet werden können. Hierfür habe ich eine Liste mit Dateinamenserweiterungen (.doc, .txt, ...) hinterlegt, welche verarbeitet werden können. Nun sollen also alle Anhänge mit der Liste verglichen und eine Fehlermeldung ausgegeben werden, wenn ein Dokument einen Dateianhang enthält, dessen Typ nicht in der Liste hinterlegt ist.


    Mein Problem ist nun, dass manchmal Notes intern einen anderen Namen als den Dateinamen vergibt. Wenn man beispielsweise einem Dokument zweimal die selbe Datei anhängt, so behält der erste Anhang seinen Dateinamen, der zweite bekommt aber einen anderen (ATTxxxxx). Somit kann ich die Dateiendung aber nicht mehr überprüfen. Dies kann man in den Feldeigenschaften bei $File nachvollziehen. Trotzdem muss der ursprüngliche Dateiname noch irgendwo vorhanden sein, da im Eigenschaftsdialog des Anhangs noch der richtige Name der Datei angezeigt wird.


    Weiß jemand, wie ich an diesen Dateinamen herankommen kann?
    Vielen Dank!


    Hier die bisherige Prüfung:


    Hallo,


    das müsste möglich sein:


    in der Ansicht eine Spalte erzeugen, in welcher das thumb-Bild und ein Link auf das Original-Bild angezeigt werden.
    Hierfür benötigst Du die zwei Web-Adressen der Bilder, welche Du Dir mit Formelsprache zusammenbauen kannst.


    Hier ein erster Ansatz, wie dies aussehen könnte:


    _db := @ReplaceSubstring( @Subset(@DBName; -1); "\\"; "/" );
    _id := @Text(@DocumentUniqueID);
    _thumb := {Name der Bilddatei}
    _original := {Name der Bilddatei}


    _url1 := "/" + _db + "/0/" + _id + "/$file/" + _thumb;
    _url2 := "/" + _db + "/0/" + _id + "/$file/" + _original;


    "[<a href=\"" + _url2 + "\"><img src = \"" + url1 + "\"></a>]"



    Ist allerdings nicht getestet!
    Gruß,
    Gerd