Beiträge von ralph71

    Notes 6.5


    Hallo zusammen,


    ich habe mir einen Agenten programmiert, der mittels "Auslösen durch Ereignis" problemlos funktioniert.
    Stelle ich nun auf "Auslösen durch Zeitplan", so wird der Agent zwar gestartet, findet alle Dokumente und ändert diese (laut Protokoll), aber er führt seinen programmierten Code nicht aus. Wenn ich im Designer den Agenten starte (Kontextmenü auf der Agentenübersicht), dann funktioniert er ebenfalls problemlos. Wo liegt das Problem?


    Hier mein Code:
    SELECT @All;


    _tag:= @If(tag="Montag";2;tag="Dienstag";3;tag="Mittwoch";4;tag="Donnerstag";5;tag="Freitag";6;"");


    _benachrichtigen :=@Adjust(termin;0;0;0;0;(- benachrichtigen + verschieben);0);


    @If((_tag = @Weekday(@Now)) & ((_benachrichtigen) < @Time(@Now)) & (status = "in Arbeit" );
    @Do(


    ergebnis :=@Prompt([OkCancelEdit];"Erinnerung"; "Termin fällig für: " + art +". Termin verschieben um Minuten:";zeitraum);
    @If(ergebnis="";
    @Do(ergebnis :=0;"";
    FIELD status:= "überfällig";
    FIELD verschieben := ergebnis
    );
    @Do(
    ergebnis := @TextToNumber (ergebnis);
    FIELD verschieben := ergebnis))
    );


    _tag = @Weekday(@Now) & (_benachrichtigen) > @Time(@Now) & status != "OK";
    @Do(FIELD status:= "in Arbeit");
    ""
    )

    Zwischen "verschieben" und dem Gleichheitszeichen fehlt ein Doppelpunkt. Deshalb ist die Variable nicht definiert und er sieht sie als Leerstring an und meckert darüber, daß eine Zahl erwartet wird.



    --> Danke, das war's!

    Notes 6.5


    Hallo zusammen,


    dieser Code funktioniert:


    _benachrichtigen :=@Adjust(termin;0;0;0;0;(-benachrichtigen + 10);0);


    Ersetze ich nun die Zahl 10 durch eine Variable, dann funzt nix mehr



    verschieben = 10;
    _benachrichtigen :=@Adjust(termin;0;0;0;0;(-benachrichtigen + verschieben);0);


    Wo ist der Fehler?


    Danke!

    @Dirk:


    Ich starte den Agenten nicht aus dem Designer, sondern aus dem Notes-Client.
    Einstellungen: Durch Ereignis (später mal "durch Zeitplan"), Auswahl im Menü"Aktionen", Alle Dokumente in der Datenbank.
    Der Agent bietet die Möglichkeit, den Termin um x-Minuten zu verschieben. Diese Verschiebung wird in das Dokument eingetragen. Funzt alles prächtig, nur "sieht" er dann nix mehr. Das ändert sich auch dann nicht, wenn die DB geschlossen und wieder geöffnet wird.
    Wird der Agent gestartet, ist zu sehen, dass alle Dokumente (incl.Antwortdokumente) von ihm abgearbeitet werden. Er ignoriert aber alle Bedingungen (vgl. Code).


    @hammer: wüsste nicht, dass ich das irgendwo absichtlich mache. Wo kann ich das einsehen?

    Hallo Dirk,


    Danke für den Tipp. Klingt völlig logisch, funzt aber trotzdem nicht.
    Hier mein Mini-Prog (denke aber nicht, dass es daran liegt):


    SELECT @All;
    _tag:= @If(tag="Montag";2;tag="Dienstag";3;tag="Mittwoch";4;tag="Donnerstag";5;tag="Freitag";6;"");
    _benachrichtigen:=@Adjust(termin;0;0;0;0;-benachrichtigen+verschieben;0);


    @If(_tag = @Weekday(@Now) & (_benachrichtigen) < @Time(@Now) & status != "OK";
    @Do(
    ergebnis :=@Prompt([OkCancelEdit];"Erinnerung"; "Termin fällig für: " + art +". Termin verschieben um Minuten:";zeitraum);
    @If(ergebnis="";
    @Do(ergebnis :=0;"";
    FIELD status:= "überfällig";
    FIELD verschieben := ergebnis


    );


    FIELD verschieben := ergebnis)
    );


    _tag = @Weekday(@Now) & (_benachrichtigen) > @Time(@Now) & status != "OK";
    @Do(FIELD status:= "in Arbeit");
    ""
    )

    Notes 6.5.1


    Hallo zusammen,


    habe begonnen meine erste Notes-Datenbank zusammen zu schustern. Es wird eine Art Workflow-Datenbank.
    Ich habe dazu einen Agenten mittels Formelsprache geschrieben, der alle angelegte Dokumente (=Tätigkeit) überprüft, ob ein Termin abgelaufen ist oder nicht. Das funktioniert problemlos, jedoch nur ein einziges mal. D.h. wenn der Agent ein zweites mal gestartet wird, "findet" bzw. "sieht" er keine Dokumente mehr. Erst wenn ein Dokument bearbeitet wurde (es muss nur in den Edit-Modus gesetzt werden) sieht der Agent das Dokument wieder und überprüft es. Dies gilt jedoch nur für das aktuell bearbeitete Dokument. Alle übrigen werden weiter ignoriert. Man muss also alle Dokuente irgendwie wieder "zurücksetzen", damit der Agent sie wieder "sehen" kann. Wie ist dieses Problem zu lösen?
    Danke!