Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Daniel87 am 14.01.08 - 13:19:52

Titel: Anhänge überprüfen
Beitrag von: Daniel87 am 14.01.08 - 13:19:52
Hallo,

ich habe folgendes Problem:

In meinem Dokument kann ein User eine Datei anhängen. Dann beginnt der Workflow und verschiedene Personen müssen dem Dokument zustimmen. Der Ersteller von dem Dokument soll die Datei später noch ändern können, was ja kein Problem ist, jedoch soll der Workflow dann von vorne beginnen. Nun weiß ich aber nicht, wie ich bemerken kann ob der Verfasser vom dem Dokument den Anhang geändert hat oder nicht.

Am liebsten würde ich das Änderungsdatum der Datei in ein verstecktes Feld packen und die aus dem Feld dann mit dem Änderungsdatum der Datei vergleichen. Nur wie komme ich in Lotus Notes an das Änderungsdatum der Datei?

Für eine Hilfe wäre ich sehr dankbar.

Gruß

Daniel 
Titel: Re: Anhänge überprüfen
Beitrag von: botschi am 14.01.08 - 13:22:56
Wenn man die Datei nur über einen Knopf einfügen/löschen/ersetzen kann, könntest Du ein Flag setzen.

Matthias
Titel: Re: Anhänge überprüfen
Beitrag von: Daniel87 am 14.01.08 - 13:25:12
Hallo Matthias,

die Datei soll man leider über mehrere wege einfügen können, deshalb geht das leider nicht.

Gruß

Daniel
Titel: Re: Anhänge überprüfen
Beitrag von: m3 am 14.01.08 - 13:25:35
Ins Filesystem schreiben und dann die File-Eigenschaften ansehen. Seltsamerweise wird dann das "Last Modified" Datum immer dem Speicherdatum entsprechen, befürchte ich.

Titel: Re: Anhänge überprüfen
Beitrag von: klaussal am 14.01.08 - 13:29:30
Und wo speichert Notes das Änderungsdatum des Anhangs ?

In den Dok-Eigenschaften ist nix zu finden...
Titel: Re: Anhänge überprüfen
Beitrag von: ata am 14.01.08 - 14:17:34
... eventuell ist es per COM auslesbar - soweit es sich um Attachments handelt wie Word-Dateien oder EXCEL-Sheets...

Toni
Titel: Re: Anhänge überprüfen
Beitrag von: Daniel87 am 14.01.08 - 14:20:59
Bei dem Anhang handelt es sich überwiegend um .pdf und Worddateien
Titel: Re: Anhänge überprüfen
Beitrag von: ata am 14.01.08 - 14:22:31
... Word-Dateien sind kein Problem - bei PDF wird es schon schwieriger - ich probier mal ein paar Sachen aus...

Toni
Titel: Re: Anhänge überprüfen
Beitrag von: ata am 14.01.08 - 15:26:15
... du könntest mal folgendes ausprobieren:

Code
Function FileLastModified( sFile As String ) As String
   Dim fso As Variant
   Dim fsoFile As Variant
   Dim sLastModified As String
   '
   Set fso = CreateObject( "Scripting.FileSystemObject" )
   If fso.FileExists( sFile ) Then
      ' Print "Die Datei existiert"
      Set fsoFile = fso.GetFile( sFile )
      sLastModified = fsoFile.DateLastModified
      Set fsoFile = Nothing
      Set fso = Nothing
   Else
      ' Print "Die Datei existiert nicht"
      sLastModified = ""
      Set fso = Nothing
   End If
   '
   FileLastModified = sLastModified
   '
End Function


... sollte eventuell für jede Datei funktionieren - zuvor das Attachment lösen und dann mit der Funktion angrabben...

Toni

*** edit ***
... habe noch einen Fehler debuggt...

Toni
Titel: Re: Anhänge überprüfen
Beitrag von: Daniel87 am 15.01.08 - 07:18:14
Hallo Toni,

vielen Dank für deine Mühen. Eine Frage habe ich aber noch, da ich vor kurzem erst mit Lotus Notes angefangen habe. Der Anhang wird in einem RichText-Feld gespeichert, wie kann ich den da raus lösen?

Gruß

Daniel
Titel: Re: Anhänge überprüfen
Beitrag von: ata am 15.01.08 - 09:09:42
... du initialisierst das Dokument im Backend, dann das RichTextItem - schau mal in der Hilfe unter "NotesEmbeddedObject" - dort findest du im Beispielcode unter ExtractFile alles was du benötigst. Probier dich da mal dran aus...

Toni
Titel: Re: Anhänge überprüfen
Beitrag von: Daniel87 am 15.01.08 - 09:24:38
Danke für die Hilfestellung.

Gruß

Daniel
Titel: Re: Anhänge überprüfen
Beitrag von: ata am 15.01.08 - 09:39:29
... ich habe den Code soeben getestet und festgestellt, daß er  - verständlicherweise - einen Leerstring zurückliefert, wenn die Datei seit ihrer Erstellung noch nie verändert wurde, daher habe ich die Funktion um das Erstellungsdatum erweitert:

Code
Function FileLastModified( sFile As String ) As String
   Dim fso As Variant
   Dim fsoFile As Variant
   Dim sLastModified As String
   '
   Set fso = CreateObject( "Scripting.FileSystemObject" )
   If fso.FileExists( sFile ) Then
      Set fsoFile = fso.GetFile( sFile )
      sLastModified = fsoFile.DateLastModified
      '
      If sLastModified = "" Then sLastModified = fsoFile.DateCreated
      '
      Set fsoFile = Nothing
      Set fso = Nothing
   Else
      sLastModified = ""
      Set fso = Nothing
   End If
   FileLastModified = sLastModified
End Function

Toni
Titel: Re: Anhänge überprüfen
Beitrag von: it898ur am 16.01.08 - 09:20:55
Einfacher geht es mit @AttachmentModifiedTimes (ggf. mit Evaluate) - die alten Werte in der Maske merken und bei jedem Speichern vergleichen - jetzt kann man Änderungen an den Anhängen nachvollziehen.

Gruß

André
Titel: Re: Anhänge überprüfen
Beitrag von: ata am 16.01.08 - 10:30:32
... die @-Funktion kannte ich noch nicht  ;D :o ;D - das erspart den Zugriff per LS und Windows-Objekten...

Toni