Beiträge von helmie

    Hallo,


    mein Notes-Client stürzt bei folgender Formel laufend ab:


    Code
    rahmen_id := @DbLookup("" : "NoCache"; ""; "(Userprofile)"; @UserName; 2);
    old := @Word(rahmen_id; "~"; 1);
    new := @If(@Contains(old; "org"); "f-show_unten"; "f-show_org");
    id := @Word(rahmen_id; "~"; 2);
    @SetDocField(id; "p_rahmen"; new);
    rahmen_id := @DbLookup("" : "NoCache"; ""; "(Userprofile)"; @UserName; 2);
    
    
    @SetTargetFrame("frame_left_unten");
    @Command([OpenPage]; "p_GL_Anzeige")


    Hintergrund: Obige Aktion ist in einem Gliederungseintrag hinterlegt. Bei Click wird zunächst ermittelt, in welchem Frame eine Ansicht bisher geöffnet werden soll (im Frameset sind 2 Anzeigeframes eingebaut). Anschliessend wird der andere Frame als künftiger Targetframe gesetzt. Und zum Schluss die Seite mit der eingebetten Gliederung neu geladen.
    Führe ich diese Aktion aus kommt eine Redbox mit "PanicHandle", "ObjectHandle ist ungültig".
    Die Formel habe ich zwischenzeitlich mit Prompt-Boxen "debuggt" und kann daher sagen, das alles prima funktioniert bis er zum "@SetTargetFrame" kommt.
    Den Fehler kann ich an mehreren Usern und unterschiedlichen Clients reproduzieren.


    Als Workaround habe ich jetzt statt der "normalen" Notesdokumente echte Profildokumente erstellt. Hiermit funktioniert es seltsamerweise problemlos. Aber eigentlich will ich nicht mit Profildokumenten arbeiten, da ich Bedenken habe bzgl. Performance (zw. 30 und 50 Userbezogene Profildokumente) und bei einigen Powerusern durchaus mehrere Änderungen pro Tag vorkommen werden.


    Hat einer eine Idee, warum Notes hier abstürzt?

    Den OctoShedule hatten wir auch mal im Einsatz. Aber die Performanceprobleme und die doch recht großen Zeitabstände zwischen den Agentenläufen haben uns darauf gebracht eine Alternative zu suchen. Mittlerweile setzen wir die OnTime Suite ein. Hier laufen keine Agenten die Termine einsammeln sondern Servertasks die Änderungen der Busy.nsf überwachen. Termine in den Userkalendern werden innerhalb von 3 - 5 SEKUNDEN im Gruppenkalendern angezeigt.
    Will hier aber keine Werbung machen, nur als Ergänzung damit noch ein weiteres Produkt genannt wird.

    nochmal taurec:
    Da ich die Anwendung von jwege nicht kenne habe ich einfach mal von einem Fall bei uns bzw. 2 Partnerinstituten geschlossen. Da gibt es Wissens-Datenbanken, die eine Linksammlung haben. Diese Links werden eingepflegt und können von allen aufgerufen werden. Andere Informationen sind in den Dokumenten nicht enthalten. Von daher ist das öffnen der Dokumente im Lesemodus nicht erforderlich.

    taurec:
    Das ist klar, das damit immer der Link geöffnet wird. Daher ja auch mein Hinweis als Änderung zu Dialis Idee, in der auch nur ein Link pro Dokument verwendet werden kann.


    Ausserdem sollte das nur als Idee gelten, für den Fall, das nicht unbedingt nur die Spalte als Verknüpfung genommen werden muss. Vielleicht war jwege dieser Weg einfach nur unbekannt?

    Kleine Abänderung zu Dialis Idee:
    Auch nur ein Link pro Dokument. Wenn dieses Dokument dann geöffnet werden soll über eine kleine Sciptoperation im Postopen der Maske das Notesdocument wieder schliessen und die vorher eingelesene URL öffnen:

    Code
    Dim URL As String
    If Not source.EditMode Then
         If Not Source.isnewdoc Then
    	URL = Source.fieldgettext("URL")
    	Call Source.Close
    	Dim ws As New NotesUIWorkspace
    	Call ws.URLOpen (URL)
          End If
    End If


    Funktioniert bei uns ganz prächtig

    Mit der Auswahlformel wirst Du Schiffbruch erleiden.
    Wenn Du keine Privaten Ansichten nutzen willst kannst Du beispielsweise eine gemeinsame Ansicht in eine Seite einbetten. Diese muss nach Deinem Kriterium kategorisiert sein. Dann kannst Du als weiteres Kriterium der eingebettenAnsicht sagen "Einzelne Kategorie anzeigen" und eben diese Kategorie berechnen lassen.

    Habt ihr denn bei euch jemanden, der sich mit Notes-Programmierung auskennt?
    Einfach so fremden Code irgendwo einzutragen, den man nicht versteht, kann ziemlich heftige Nebenwirkungen haben, die garantiert nicht gewollt sind.
    Zumal natürlich weder ich, noch wohl sonst jemand hier, keine Garantien für die Codeschnipsel übernehmen kann oder wird...
    Ich hoffe aber mal, das Du Dich zumindest grundlegend mit dem Notes-Designer auskennst. Wenn dem der Fall ist: View öffnen, im Programmierfenster links die genannten Objekte jeweils auswählen und den aufgeführten Code dort (im rechten Teil) eintragen.

    Ich hab Deinen Code mal genommen und bei mir versucht den Fehler nachzustellen (leider hast Du ja auch nicht dazugesagt, was für ein Fehler genau auftritt). Sei´s drum, nach ein klein bisschen "basteln" hab ich eine Lösung gefunden:

    Code
    @Command([Compose];@DbName;"Appointment") ;
    @UpdateFormulaContext;
    field AppointmentType := "3";
    @Command([ViewRefreshFields]);
    @Command([EditGotoField]; "EnterSendTo");
    @Command([EditInsertText]; "COTT@COTT.de, ");

    Ist gar nicht so schwer. Ich geb Dir mal was an die Hand:

    Ich geb Dir mal ein paar Stichworte:
    Mit Notesdatabase.unprocessedDocuments erhälst Du die in einer View angehakten Dokumente in eine Documentcollection.
    In einer Schleife alle Dokumente abarbeiten mit
    Notesuiworkspace.EditDocument(aktuelles Dok. aus Schleifenvariable = UIDok)
    Uidoc.save
    Uidoc.close


    Aber warum machst Du nicht ein ComputewithForm? Ist m.M viel performanter...

    Hallo,


    ich hab das ganze grad mal mit einem einfachen Agenten getestet und es geht eigentlich ganz einfach:


    Agentziel: Alle neuen und geänderten Dokumente
    Dokumentauswahl: Bedingung hinzufügen "In Ordner" (Eingang auswählen)
    Aktion: Einfache Aktion: "In Ordner verschieben" (Zielordner auswählen); "Aus Ordner entfernen" (Ordner Eingang auswählen)


    Das ganze habe ich mit einem zeitgesteuerten Agent getestet.

    Hallo,


    ich nutze diese Funktion in mehreren Anwendungen.
    In einem Profildokument werden die Beschriftungen, Pfade zur DB und die Viewnamen hinterlegt. Die Gliederung zieht sich diese Informationen und stellt sie genau so zur Verfügung.


    Meines Wissens geht @GetProfileField bei Ansichtsauswahlformeln nicht. Siehe auch Auszug aus der dt. Hilfe:

    Zitat

    Diese Funktion kann nicht in Spalten-, Verbergen-wenn-, Abschnittseditor- oder Ansichtsauswahlformeln verwendet werden.