Autor Thema: Löschen per Agent (Formula)  (Gelesen 2220 mal)

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Löschen per Agent (Formula)
« am: 06.07.05 - 16:48:45 »
Hallo zusammen,

ich hab wohl mal wieder ein Brett vor dem Kopf.

Habe einen Agenten gebaut (scheduled, 1x am Tag) der Dokumente die älter sind als x Tage (bei mir 30) löschen soll.
Zitat
SELECT @All;
@If(DeliveredDate != ""; _dateCheck := DeliveredDate; PostedDate != ""; _dateCheck :=PostedDate; _dateCheck := @Created);

_date := @Date(@Adjust(@Now;0;0;-30;0;0;0));

@If(_dateCheck < _date;@DeleteDocument;@True);

Dieser Agent macht aber nix - garnichts. Weder löschen noch eine Fehlermeldung bringen. Baue ich eine View mit der entsprechenden Selektion, dann zeigt er mir die Dokumente die in Frage kommen aber artig an.

Darf ich eine der Datumsformulas nicht in einem Agenten anwenden, oder was ist das Problem?

EDIT: Der Agent läuft über die gesamte Datenbank - das Select @All schreibt er immer selber rein.
« Letzte Änderung: 06.07.05 - 18:47:53 von DaWutz »
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Löschen per Agent (Formula)
« Antwort #1 am: 06.07.05 - 17:20:53 »
Nur, um auf Nummer sicher zu gehen, baue doch mal Deinen Agent wie folgt um (das sollte dann aber auf jeden Fall funktionieren, wenn der Agent auch so eingestellt ist, dass er auf "Alle Dokumente in der Datenbank" läuft).

Code
_dateCheck := @If (DeliveredDate != ""; DeliveredDate; PostedDate != ""; PostedDate; @Created);

_date := @Date (@Adjust (@Now; 0; 0; -30; 0; 0; 0));

@If (_dateCheck < _date; @DeleteDocument; "");

SELECT @ALL

HTH,
Bernhard

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re: Löschen per Agent (Formula)
« Antwort #2 am: 06.07.05 - 17:28:18 »
Hallo Bernhard,

ich habe den Agent umgebaut, auch wenn es ja nur eine Umstellung meiner Syntax war, aber der Erfolg war gleich Null. Ich habe auchmal folgenden Thread zu Hilfe gezogen <<LINK>> aber auch damit komme ich nicht weiter.

Der Agent läuft "on behalf of: LocalDomainAdmin" (Verzweiflungstat), und mit vollen administrativen Rechten.
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Löschen per Agent (Formula)
« Antwort #3 am: 06.07.05 - 17:32:29 »
Also, wenn Du schon zur Verzweiflungstat greifst, dann signiere das Tierchen doch lieber mit der Server-ID. Das Verhalten könnte schon auf ein Rechteproblem hinweisen. Ich habs selber noch nicht probiert, kann mir aber vorstellen, dass OnBehalf nicht mit einem Gruppennamen funktioniert.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Löschen per Agent (Formula)
« Antwort #4 am: 06.07.05 - 17:38:28 »
Es muss ein Einstellungs- oder Rechteagent sein. Ich habe den Code eben gegen meine Mail-DB laufen lassen:

Zitat
Agent 'Test Delete' wurde am 06.07.2005 17:35:59 gestartet
Bearbeitet alle Dokumente in der Datenbank: insgesamt 2612
2612 Dokumente gefunden, die die Suchkriterien erfüllen
2612 Dokument(e) wurden durch die Formel geändert
2552 Dokument(e) gelöscht
Agent 'Test Delete' wurde am 06.07.2005 17:36:46 beendet

Guuuut, dass ich das in einer Kopie der DB gemacht habe  ;D

Nur zur Sicherheit: Der Agent ist auch als gemeinsamer Agent deklariert ?

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Löschen per Agent (Formula)
« Antwort #5 am: 06.07.05 - 17:41:30 »
Rechteagent

Dein Verschreiber steht bestimmt für Rechteproblem ..... oder?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re: Löschen per Agent (Formula)
« Antwort #6 am: 06.07.05 - 17:49:12 »
@Bernhard: gemeinsamer Agent? Ist das die deutsche Version von "Shared"? Wenn ja, dann ja!  ;)

@Jens: Signieren tut ihm auch nix...

Ich versteh nicht warum der nicht läuft? Das ist doch eigentlich kein aussergewöhnlicher Agent, oder?
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Glombi

  • Gast
Re: Löschen per Agent (Formula)
« Antwort #7 am: 06.07.05 - 17:56:06 »
Was sagt denn das Agent Log dazu?
Was steht in der log.nsf dazu?
Hat der Signer denn Löschrechte in der DB?

Andreas

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re: Löschen per Agent (Formula)
« Antwort #8 am: 06.07.05 - 18:01:15 »
Agent Log:
Started running agent 'deleteMailsOlderThan30Days' on 06.07.2005 17:53:47
Running on all documents in database: 463 total
Found 463 document(s) that match search criteria
463 document(s) were modified by formula
Done running agent 'deleteMailsOlderThan30Days' on 06.07.2005 17:54:14

Es ist aber kein Doc rausgeflogen...

Der Signer ist der Server himself, und der ist in der ACL nochmal explizit eingetragen mit vollen Rechten. Und die log.nsf schweigt sich über den Agenten aus...

EDIT: Ich seh grade er findet alle Dokumente in der Bedingung, aber er sollte nur 4 finden... Werde mal in die Richtung weiter forschen!
« Letzte Änderung: 06.07.05 - 18:03:25 von DaWutz »
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Glombi

  • Gast
Re: Löschen per Agent (Formula)
« Antwort #9 am: 06.07.05 - 18:05:04 »
Versuche mal, anstelle von
  @DeleteDocument 
ein
  @HardDeleteDocument 
zu verwenden.

Andreas

Glombi

  • Gast
Re: Löschen per Agent (Formula)
« Antwort #10 am: 06.07.05 - 18:06:01 »
Zitat
EDIT: Ich seh grade er findet alle Dokumente in der Bedingung, aber er sollte nur 4 finden... Werde mal in die Richtung weiter forschen!
Natürlich findet er alle, da SELECT @All verwendet wird.

Es geht besser so:
_dateCheck := @If (DeliveredDate != ""; DeliveredDate; PostedDate != ""; PostedDate; @Created);
_date := @Date (@Adjust (@Now; 0; 0; -30; 0; 0; 0));
SELECT _dateCheck < _date

Andreas

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re: Löschen per Agent (Formula)
« Antwort #11 am: 06.07.05 - 18:16:59 »
Ok - nu klappts.

Nach dem @HardDeleteDocument gings... In der DB ist aber kein SoftDeletion aktiviert, was macht denn da den Unterschied? Laut Designer-Hilfe verhält er sich ja dann wie ein normales @DeleteDocument.

Hier der "garstige" Agent:
Zitat
_dateCheck := @If (DeliveredDate != ""; DeliveredDate; PostedDate != ""; PostedDate; @Created);
_date := @Date (@Adjust (@Now; 0; 0; -30; 0; 0; 0));
SELECT _dateCheck < _date;
@HardDeleteDocument


Vielen Dank an alle beteiligten!!  :D Prompte Hilfe, wie immer!  :-*
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz