Autor Thema: Bodyfeld überschrieben, alte Attachments werden noch angezeigt  (Gelesen 4497 mal)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Hi @all!

ich hänge mal wieder fest.

Bei einer Lese-DB zur Veröffentlichung von Dokumenten (diese werden aus einer anderen DB kopiert) werden gelöschte Attachments (bzw. Attachments deren Richtextfeld überschrieben wurde)  recht unschön angezeigt (siehe Bild).

Das Problem ist jetzt beim Löschen von Attachments jetzt behoben (ich gehe in einer Schleife durch die EmbeddedObjects und lösche das jeweilige Objekt), aber wie komme ich an die alten, sozusagen gelöschten Attachments ran, damit auch die alten Dokumente ohne diese gelöschten Attachments angezeigt werden?


Das Update der Dokumente erfolgte über

         Lesekey = doc.InfoDocID(0)         
            
         Set Lesedoc = Leseview.GetDocumentByKey(Lesekey)      
         If Not Lesedoc Is Nothing Then
            doc.tStatus = "2"
            
            Call doc.Save(True,False)
               
            Call doc.CopyAllItems(Lesedoc,True)
            Call Lesedoc.Save( True, True )            
         End If


Das Bodyfeld, in dem die Attachments eingehängt werden, wurde also einfach überschrieben, die Files selber wurden aber nicht gelöscht. Ich kann auch die $File-Items sehen. Sie haben auch noch die alten Längen. Ich finde aber keinen Unterschied zu einem 'ordentlichen' Attachment. Wenn ich sie öffnen will, kommt ein 'keine Applikation gefunden'., der Dokumententyp scheint entfernt worden zu sein. Wie kann ich jetzt genau diese Attachments feststellen, und diese alten Attachments komplett entfernen, ohne jedes Dokument manuell zu öffnen?

Gerade bin ich ratlos.  :-:

Grüsse

Dau-in
« Letzte Änderung: 19.05.08 - 18:21:16 von DAU-in »
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... da scheinen tatsächlich mehrere Sachen passiert zu sein.

Wenn du alle RichText-Felder löschst, dann hängen die Attachments unter dem Dokument, verlieren aber eigentlich nicht die Dateitypen - da scheint noch was anderes eine Rolle zu spielen...

Toni
Grüßle Toni :)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Hi, ata!

irgendwo muss ja die Information stecken, dass diese Files nicht mehr zu dem Bodyfeld gehören, das aktuell in den Dokumenten enthalten ist.

Die Filegrösse etc. stimmt ja.

Was genau passiert ist, kann ich nur ungefähr nachvollziehen an Hand des Codes, der in der DB ist, da ich die DB übernommen habe, und der Fehler letzte Woche gemeldet wurde, da es als 'ist halt so' bekannt war.

Grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline ghost

  • Aktives Mitglied
  • ***
  • Beiträge: 174
  • Geschlecht: Männlich
  • Notes ist gut!
Ich glaube du kannst mit 

Zitat
notesDocument.GetAttachment( fileName$ )

darauf zugreifen.

Viele Grüße
ghost

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... du übernimmst die Attachments über CopyAllItems - gibt es in deinem Lesedoc-Dokument bereits Rich-Text-Felder mit Attachments? Da könnte es Probleme geben.

Ansonsten, sollten die Felder dort leer sein, dann solltest du sie zuerst löschen.

Ich würde eher dazu neigen die Attachments einzeln auszulösen und zu übernehmen...

Toni
Grüßle Toni :)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Hi, Ata,

... du übernimmst die Attachments über CopyAllItems - gibt es in deinem Lesedoc-Dokument bereits Rich-Text-Felder mit Attachments? Da könnte es Probleme geben.

Das war genau das Problem, die Bodyfelder wurden einfach drüberkopiert und zwar jedesmal, wenn einer auf 'Publish' geklickt hat  :-\
dreimal publiziert mit 3 Attachments ergibt dann 3 Attachments im Bodyfeld und
6 verhunzte unten.


Zitat
Ansonsten, sollten die Felder dort leer sein, dann solltest du sie zuerst löschen.

Ich würde eher dazu neigen die Attachments einzeln auszulösen und zu übernehmen...

Toni

So habe ich das auch umgeschrieben, aber die Dokumente, in denen bereits verunstaltete Attachments hängen, sind jetzt das Problem. die Anwender sind das zwar als 'Notes eben' gewohnt, aber mich stört das.

Ich möchte einen Agenten schreiben, der durch die Lese-DB läuft, und erkennt, ob es sich um korrekt eingehängte Attachments handelt.
Und jetzt ist mir unklar, wie ich korrekte von verhunzten Attachments unterscheiden soll? Oder geht das programmatisch nicht?  :-:


Grüsse

Dau-in



mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... wenn sie die Dateiendung verloren haben, könnte dies ja ein Kriterium sein...

Toni
Grüßle Toni :)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Hi Ata,

die Endung ist noch da. Nur haben die Attachments einen Schlag.

Aber wenn Notes weiss, welche es im Bodyfeld darzustellen hat und welche unten hängen, muss doch irgendwo dazu eine Info gespeichert sein.


Bloss wo?  ???

Grüsse

DAu-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... Attachments unter dem Dokument werden über das Dokument initialisiert, ansonsten über das betreffende RichTextItem - damit sollte es eigentlich gehen...

Toni


*** edit ***

... eventuell einen Vergleich der EmbeddedObjects fahren...

Toni
« Letzte Änderung: 15.05.08 - 16:22:47 von ata »
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Was gibt Dir den @AttachmentNames zurück? Wenn das Resultat noch passt, kannst Du ja eruieren,
- wie die "richtigen Attachments" heissen
- mit Evaluate ein Array aller AttachmentNames bilden und
- dann selektiv löschen.

HTH,
Bernhard

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Danke,

ich werde das am Montag mal ausprobieren, ob ich damit weiterkomme.

Ich bin nämlich seit gestern abend schon im WE  ;)

Irgendwie muss der alte Rotz doch rauszukriegen sein.

Grüsse aus dem gewittrig aussehenden München

Dau-in

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Klar ist das 'rauszubekommen. Notfalls mit einer brutalen Methode (Toni hat ja schon eine angedeutet). Aber vielleicht kommst Du so ja schon weiter.

Beste Grüsse retour nach München aus dem genauso gewittrigen Chiemgau,
Bernhard

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
ok, so klappt es dann:

über var3 = Evaluate(|@AttachmentNames|, doc)
bekomme ich alle Attachmentnamen, danach greife ich auf das Richtextfeld zu, ziehe mir alle Embeddedobjects mit den Namen raus.

Und dann kommt der grosse Namensabgleich, und wer nur im ersten Array sitzt, wird gemeuchelt.

aber die Hilfe finde ich für Notesdocument.EmbeddedObjects missverständlich, oben steht : 'Note  Embedded objects and object links are not supported for OS/2, UNIX, and the Macintosh. File attachments are.'  und unten kommt dann: 'Unlike the EmbeddedObjects property in NotesRichTextItem, this property does not include file attachments' - das habe ich zuerst überlesen.

Aber das Problem ist jetzt erst mal gelöst.

liebe Grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz