Autor Thema: Alle Dokumente mit DeliveredDate "gestern oder früher" (Script)  (Gelesen 2988 mal)

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Hallo Leute,

ich möchte den Wert des Feldes "DeliveredDate" auslesen, und dann alle Dokumente, die nicht von heute sind, archivieren.


Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim arcdb As New NotesDatabase("" , "archiv.nsf")
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim wert As Variant
   Dim nextdoc As notesdocument
   
   Set db = session.CurrentDatabase
   Set dc = db.AllDocuments
   Set doc = dc.GetFirstDocument
   
   Do Until doc Is Nothing
      Set nextdoc = dc.getnextdocument(doc)
     
      wert = doc.GetItemValue("DeliveredDate")
      If wert(0)  ="?" Then
         Call doc.CopyToDatabase(arcdb)               
             Call Doc.Remove( True )     
      End If
      Set doc = nextdoc
   Loop

Da wo das Fragezeichen steht, hänge ich. Könnt Ihr einem nichtwissenden Admin helfen?
Danke...
« Letzte Änderung: 21.09.07 - 10:54:22 von HRaq »
Gruß Henning

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
<> Today.
Das wars schon.

Bernhard

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Bernhard,
ich wußte, auf dich ist Verlass.  :)
Danke
Gruß Henning

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
 :)

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Moin Leute,
leider funktioniert es doch nicht so, wie ich erhofft hatte. Er nimmt auch die Docs von heute mit und löscht sie dann in der QuellDB. Habe ich einen Fehler in der Syntax?

If wert(0)  <> today Then
Gruß Henning

Driri

  • Gast
Versuchs mal so :

If wert(0) <> Today() Then

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Ist die Formatierung identisch?

Aus der Hilfe:

' LotusScript assigns Today’s date to the String
' variable whenNow.
Dim whenNow As String
whenNow$ = Today()
Print whenNow$
' Output:
' 6/7/95
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Hallo Ingo und Andre,

es ist jetzt so, wie Ingo beschrieben hat - juckt ihn aber nicht....Er nimmt trotzdem die Docs von heute nimmt.......grummel
Gruß Henning

Glombi

  • Gast
Ich würde mit der NotesDateTime Klasse arbeiten.

Also:
dim ndt_Today as NotesDateTime
dim ndt as NotesDateTime
Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim arcdb As New NotesDatabase("" , "archiv.nsf")
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim wert As Variant
   Dim nextdoc As notesdocument
   
   Set db = session.CurrentDatabase
   Set dc = db.AllDocuments
   Set doc = dc.GetFirstDocument

set ndt_Today  = New NotesDateTime( Today )
   
   Do Until doc Is Nothing
      Set nextdoc = dc.getnextdocument(doc)
     
      set ndt = New NotesDateTime( doc.GetItemValue("DeliveredDate")(0) )
      If ndt.DateOnly <> ndt_Today.DateOnly  Then
         Call doc.CopyToDatabase(arcdb)               
             Call Doc.Remove( True )     
      End If
      Set doc = nextdoc
   Loop



Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Was für ein Datentyp hat denn DeliveredDate?

Aber Blödsinn: Wenn in DeliveredDate Date/Time steht, dann vermutlich auch mit Uhrzeitkomponente. Die hat natürlich Today nicht.

Daher muss es heissen (wenn alle Dokumente von vor heute entfernt werden sollen):
wert (0) < Today.

Wenn tatsächlich ein ungleich erforderlich ist:
Clng (wert (0)) <> Today.

Andreas: Die DateTime class braucht man hier wirklich nicht. Kann man natürlich, aber das ist mit Kanonen auf Spatzen geschossen.

Bernhard

Offline HRaq

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 688
  • Geschlecht: Männlich
  • Erst hat man kein Glück, dann kommt noch Pech dazu
Ich danke euch allen für die schnelle Hilfe. Ich komme heute nicht mehr dazu, die verschiedenen Varianten zu testen, gebe aber auf jeden Fall ein Feedback.

Also, danke nochmal und ein schönes WE
Gruß Henning

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz