Erstellen eines Redaktionsagenten??

  • Hi,
    Ich habe eine ganz normale Datenbank, die als Infothek für eine bestimmte Gruppe dienen soll, mit dem Domino Designer 6 erstellt. Folgender Aspekt soll nun noch eingebaut werden. Über die Datenbank soll eine Redaktion wachen, die jeden Beitrag erst freigeben soll, bevor er für alle User der Datenbank zugänglich ist.


    Hatte mir da folgendes überlegt:
    Der User erstellt Dokument und speichert es ab
    Nachts läuft ein Agent über die Datenbank, prüft die Dokumente ob die freigegeben wurden oder nicht
    - wurden sie freigegeben geht eine Mail an die Gruppe das ein neuer Eintrag vorhanden ist und alle haben das Recht diesen zu öffnen.
    - wurden sie nicht freigegeben geht eine Mail an die Redaktion und nicht an die Gruppe, diese überprüfen den Text und sollen den Text dann über einen Actions-Button oder eine HotSpot Schaltfläche freigeben. Die Schaltfläche soll nur für die Redaktion sichtbar sein.


    Weiß jetzt leider nicht wie ich das umsetzen soll weil ich ein ziemlicher Neuling in der Programmierung in Notes bin. Vielleicht hat ja auch jemand einen anderen Tipp wie ich es besser lösen kann. Freue mich über jeden Ratschlag. ;)


    Gruß FideL

  • Hi,


    es gibt eine von der IBM mitgelieferte Datenbankschablone (doclbm50.ntf) "MS Office Bibliothek", in welcher manuelle Prüfzyklen eingebaut werden können. Auch können dort Dokumente den Status "Privat" und "Öffentlich" bekommen.


    Ich würde mir die Logik mal ansehen und dann entsprechend in Deiner Applikation Agenten bauen.


    Gruß,


    Sascha

  • Eine ehrgeizige Aufgabe als Neuling ;)
    Im Prinzip ist es nicht schwer aber Sascha hat schon recht, aus vorhandenen Schablonen kann man sehr viel abkucken, aber grad für Neulinge ist es oft nicht so leicht zu verstehen.


    Fall Du nicht klar kommst schicke ne PM ;)


    Manuel

    ----------------------------------------------------------------------------
    CLP R5 AD
    CLP R6 AD
    ...more to come...
    ----------------------------------------------------------------------------...

  • Hi,
    also irgendwie haut das alles nicht so ganz hin bei mir, aber wie gesagt, ich bin ziemlich unerfahren mit der Programmierung.
    Erklärung zum Code


    -Info-Text -> Hauptmaske
    -Datenbankprofile -> 2te Maske
    -Infogroup ist die Gruppe die später benachrichtigt werden soll.
    -Redaktion soll als erstes benachrichtigt werden und später
    freigeben.
    - Freigeben ist eine Optionsschaltfläche mit den Möglichkeiten
    FreigebenJa und FreigebenNein, wobei letzteres vordefiniert ist.
    - Infotext und InfoRedaktion sind ebenso wie Infogroup und
    Redaktion in der 2ten Maske enthalten, hier soll die Info für den
    User stehen.


    FIELD SendTo := @GetProfileField("Datenbankprofile";"Infogroup");
    FIELD SendToR := @GetProfileField("Datenbankprofile";"Redaktion");
    FIELD DocStatus := @GetProfileField("Info-Text";"Freigeben");
    FIELD Body:="Neuer Eintrag in der Info-DB Vertrieb";
    FIELD Copy:="";
    @If(DocStatus="FreigebenNein";
    @MailSend(SendToR;Copy;"";@GetProfileField("Datenbankprofile";"InfoRedaktion") ;
    Body;"";[IncludeDoclink]);
    @MailSend(SendTo;Copy;"";@GetProfileField("Datenbankprofile";"Infotext");
    Body;"";[IncludeDoclink]));
    REM {@PostedCommand([FileSave]);};
    REM {@PostedCommand([FileCloseWindow]);};
    SELECT @All



    Wäre mega cool wenn mir jemand helfen könnte und mir meinen Fehler zeigt. Denn aus Fehlern kann man ja lernen ;)


    MfG FideL

  • Mein Problem ist das der Agent nicht funktioniert, weiß nicht genau,
    wo das Problem liegt. Hatte den Agenten zum testen auf alle 5 Minuten gelegt. Bei dem aktuellen Code passiert allerding nichts. Vorher hatte ich es schon mal das ich 100 Benachrichtigungen auf einmal bekomme. Die IncludeDoclink hat er auch nicht richtig ausgeführt. Und in der Zweck Zeile stand immer nur der Text des Feldes InfoText, nie der der Redaktion.


    Ich weiß, dass sind mehrere Probleme aber ich weiß nicht wie ich die anders beschreiben soll im Moment.


    MfG FideL


  • Ich weiß nicht, ob es funktioniert, aber ich würde den "Body" nicht mit "FIELD" deklarieren sondern maximal als Variable.
    Und wieso holst Du den Feldwert "DocStatus" über ein Profildokument namens "Info-Text"? Hab ich da was falsch verstanden? Ich dachte, die Hauptmaske heißt so und die zweite (Profilmaske) heißt "Datenbankprofile"?

  • Hallo,
    ich dachte ich muss angeben wo sich die schaltfläche befindet,
    damit ich daraufzugreifen kann. und die befindet sich halt in der maske "Info-Text". Ist das falsch so??


    Das mit dem Body habe ich jetzt geändert.


    FideL

  • Wie funktioniert denn diese Schaltfläche? Die ist doch in dem Hauptdokument und schreibt dort auch rein ob es freigegeben wird oder nicht. Oder habe ich das falsch aufgefasst?
    Mit dem Formelbestanfdteil
    FIELD DocStatus := @GetProfileField("Info-Text";"Freigeben");
    würdest Du versuchen, auf ein (weiteres) Profildokument mit dem Namen Info-Text zuzugreifen und dort das Feld "Freigeben" auszulesen. Ich gehe aber mal davon aus, das es dieses Profildokument gar nicht gibt. Demnach würde der Agent immer ins Leere laufen, da der DocStatus nie "FreigebenNein" sein kann.

  • Also diese Schaltfläche hat zwei Punkte, wovon nur einer angeklickt werden kann, Radiobutton halt, und die eine Möglichkeit hab ich FreigebenJa genannt und die andere FreigebenNein. Sprech ich diese Schaltfläche denn falsch an? und wenn ja wie sprech ich die denn sonst an?? Wie spreche ich denn generell Textfelder und Schaltflächen einer Maske an um deren Werte zu erhalten?
    MfG FideL

  • Sorry, Radiobuttons sind nicht meine Welt...


    Generell: Wenn Du in einer Schaltfläche auf Werte des aktuellen Dokumentes zugreifen willst brauchst Du nur die Feldnamen anzugeben, etwa so:
    Variable a := Feld1
    Dann kannst Du problemlos über den gesamten Rest der Formel mit diesem Feldinhalt "spielen". :)
    Um über die Schaltfläche in diesem Dokument Werte zu setzen:
    FIELD Feld1 := Wert (Feldtyp wie string oder zahl beachten)