Autor Thema: markiertes Dokument ansprechen  (Gelesen 15852 mal)

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re: markiertes Dokument ansprechen
« Antwort #40 am: 14.12.04 - 15:23:03 »
ok, ich mach weiter. Gibt es sonst noch was, was ich ausprobieren könnte ?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: markiertes Dokument ansprechen
« Antwort #41 am: 14.12.04 - 16:27:44 »
Wie wäre es, wenn wir endlich mal den kompletten Code von der Bildung der Collection bis zum abschliessenden Wend bekämen mitsamt einer aktuellen Zustandsbeschreibung (wieviel Dokumente gefunden, welche Dokumente gefunden, genaue Fehlerbeschreibung incl. evtl. Meldung und Zustand lt. Debugger) ?

Bernhard

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re: markiertes Dokument ansprechen
« Antwort #42 am: 15.12.04 - 08:44:57 »
Hallo,

wenn ich das richtig verstehe, geht es jetzt nur noch ums löschen der kopierten Dokumente???

Als erstes muß ich dazu sagen, niemals Dokumente löschen, wenn nicht das kopieren der Dokumente abgeschlossen und sichergestellt ist. bin damit schon mal auf die Stürze geschnauzt.

Ich habe das so gelöst:
  .
  .
  .
Dim idString as String
dim idArray As Variant
  .
  .
  .

In dem Teil wo die Dokumente kopiert werden folgenden Eintrag aufnehmen:


  .
  .
  .
If idString = "" then
   idString = copydoc.UniversalId
else
     idString = idString &";"& copydoc.UniversalId
end if
  .
  .
  .

Nachdem alle Dokumente kopiert wurden:

idArray = Split(idString, ";")
Forall x in idarray
     set copydoc = db.GetDocumentByUNID(x)
     call copydoc.Remove(True)
end forall

Zur Erläuterung:

Ich hatte auch das Problem mit dem löschen und habe immer das ADT Argument verloren. Habe es mit vorwärt und rückwärts löschen versucht, immer mit dem selben Fehler.

Jetzt habe ich mir einfach die UnID der Dokumente gemerkt und sie über ihre UNID wieder geholt und gelöscht. Ich denke das ist zwar mit der Kirche ums Dorf gelaufen, aber was anderes fiel mir nicht ein. Was noch zum Problem werden kann, ist wenn mehr Dokumente gelöscht werden sollen als im String/Array gemerkt werden können.


Gruß

Zsolt

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: markiertes Dokument ansprechen
« Antwort #43 am: 15.12.04 - 09:51:55 »
Ein viel einfacheres Verfahren zum Löschen aus einer Collection wurde bereits weiter oben in diesem Thread genannt, Zsolt.

Bernhard

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re: markiertes Dokument ansprechen
« Antwort #44 am: 15.12.04 - 10:00:38 »
Hallo Bernhard,

jo, habe ich gelesen und stimme damit voll überein, zumal ich diese Lösung gleich bei mir umgesetzt habe.
Nur wenn ich das richtig verstanden habe kommt immer noch das ADT-Argument hoch, oder???

Auf meine Art schalte ich diese Fehlerquelle erstmal aus. Sollte das dann alles funktionieren, kann man doch dann Schritt für Schritt die bessere Lösung einbauen.

Habe damit schon gute Erfahrungen gemacht. Weil ich damit ziemlich viele Feherquellen ausschalten kann.

Gruß

Zsolt

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: markiertes Dokument ansprechen
« Antwort #45 am: 15.12.04 - 10:03:45 »
Nein, Zsolt, bei dem oben genannten Verfahren kommt natürlich keine Fehlermeldung mehr, da das ADT-Argument (also der Pointer auf ein gültiges Dokument) erhalten bleibt.

Bernhard

Glombi

  • Gast
Re: markiertes Dokument ansprechen
« Antwort #46 am: 15.12.04 - 10:05:40 »
Und da Nexus nicht wirklich mit den benötigten Infos herüberkommt bzw. uns immer nur kleine Häppchen serviert, wird das hier nichts.

Andreas

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re: markiertes Dokument ansprechen
« Antwort #47 am: 15.12.04 - 10:10:30 »
Na dann verstehe ich nicht mehr was hier noch das Problem ist?

Nexus möchte aus DB-A Dokumente in DB-B und DB-C kopieren. Diese Dokumente danach aus DB-A löschen, richtig?

Wie ich den Thraed richtig verstehe kann er jetzt die Dokumente in die beiden Ziel DB's kopieren, aber nicht die Dokumente aus der Quell-DB löschen.

Habe ich was übersehen/überlesen???

Gruß

Zsolt


Glombi

  • Gast
Re: markiertes Dokument ansprechen
« Antwort #48 am: 15.12.04 - 10:14:45 »
So sieht es aus. Aber es fehlt wahrscheinlich eine "kleine" Info...

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: markiertes Dokument ansprechen
« Antwort #49 am: 15.12.04 - 10:40:07 »
Zsolt, warts doch mal ab, bis Nexus sich wieder meldet und den Vorhang öffnet, das ist jetzt im Moment im Kaffeesatz gestochert ...... :)

PS: Nexus, was da heist "zugebunden", ist wohl durchaus der treffende Name für die Art, wie wir hier die Infos bekommen, perfekte Alias-Wahl .....  ;D
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 Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re: markiertes Dokument ansprechen
« Antwort #50 am: 16.12.04 - 08:38:27 »
Also, ich bin davon ausgegangen, ich habe euch alle Info´s gegeben . Hab auch eigentlich den ganzen Code euch gepostet. Habe alle Abänderungen ausprobiert. Aber er löscht mir immer noch das erste Dokument in der Ansicht, aus dem ich durch auswahl der Dokumente meine Collection fülle.

Was braucht ihr also alles. Die Datenbank kann ich euch leider nicht schicken,wegen Betriebsgeheimnissen etc. kennt ja diese Klausel bla bla ...

Der Code steht zu 99% ( Variabel Deklaration lass ich halt weg ) im Forum. Soll ich nochmal den aktuellen Stand des Codes posten ?

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re: markiertes Dokument ansprechen
« Antwort #51 am: 16.12.04 - 08:44:47 »
Hallo Nexus,

poste bitte den gesamten Code inklusive der Variablen Dekleration.
Manchmal versteckt sich ja auch da ein Fehler, der sich auf den Ablauf des Codes auswirkt.

Gruß

Zsolt

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re: markiertes Dokument ansprechen
« Antwort #52 am: 16.12.04 - 09:36:08 »

Sub Initialize
   Dim session As New NotesSession
   Dim db1 As NotesDatabase
   Dim db2  As NotesDatabase
   Dim thisdb As NotesDatabase
   Dim searchview1 As NotesView
   Dim searchview2 As NotesView
   Dim searchview3 As notesview
   Dim vc As NotesViewEntryCollection
   Dim entry As NotesViewEntry
   Dim docDB1 As NotesDocument
   Dim docdb2 As NotesDocument
   Dim docEingabe As NotesDocument
   Dim Copydoc As NotesDocument
   Dim  DB1GroupName As Variant
   Dim db1GroupNameE As String
   Dim FirstDocCheckDB1 As Boolean
   Dim Db1EntryCount As Integer
   Dim DB1EntryCounter As Integer
   Dim db1VS As Variant
   Dim db2vs As Variant
   Dim Nam As NotesName
   Dim StringConv As String
   Dim StringConvE As String
   Dim intStrLaenge As Integer
   Dim intStrLaengeF As Integer
   Dim strSearchMemory As String
   Dim SearchMemoryA As Variant
   Dim Nullstatus As Integer
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim collection As NotesDocumentCollection
   Dim item As NotesItem
   Dim nextdoc As NotesDocument
   Dim deldoc As NotesDocument
   
   
   'Set uidoc = workspace.CurrentDocument
   Set thisdb = session.CurrentDatabase
   Set searchview3=thisdb.GetView("vergleichsAusgabe")
   Set db1 = session.GetDatabase( "", "c:\Dokumente und Einstellungen\Markus\Eigene Dateien\Notes\vergleich\VergleichDB1.nsf" )
   Set db2 = session.GetDatabase( "", "c:\Dokumente und Einstellungen\Markus\Eigene Dateien\Notes\vergleich\VergleichDB2.nsf" )
   Set searchview1=db1.GetView("Groups")
   Set searchview2 =db2.GetView("Groups")
   
   Set collection = thisdb.UnprocessedDocuments
   Set copydoc = collection.GetFirstDocument()
   
   
   
   While Not(copydoc Is Nothing)
      Set nextdoc = collection.GetNextDocument(copydoc)
      Call copydoc.RemoveItem("ERRdescription")
      Call copydoc.Save (True, True)
      Call copydoc.CopyToDatabase ( db1 )
      
      
      Call copydoc.CopyToDatabase ( db2 )
      Set deldoc = copydoc
      Call deldoc.Remove(True)   
      
      Set copydoc = nextdoc
      '
      
   Wend
   Messagebox "Replacement finished"
   
End Sub




Aufgrund der vielen Versuche, hab ich die restlichen Variablen mal drin gelassen. Die stören ja nicht.

Glombi

  • Gast
Re: markiertes Dokument ansprechen
« Antwort #53 am: 16.12.04 - 09:49:23 »
Du hast den Code von mir nicht korrekt eingetragen:

Set collection = thisdb.UnprocessedDocuments
   Set copydoc = collection.GetFirstDocument()
  
  
   While Not(copydoc Is Nothing)
      Set deldoc = copydoc
      Set nextdoc = collection.GetNextDocument(copydoc)
      Call copydoc.RemoveItem("ERRdescription")
      Call copydoc.Save (True, True)
      Call copydoc.CopyToDatabase ( db1 )
     
     
      Call copydoc.CopyToDatabase ( db2 )
      Call deldoc.Remove(True)   
     
      Set copydoc = nextdoc
      '
     
   Wend
   Messagebox "Replacement finished"
   
End Sub


Probiere es bitte mal damit aus. Das copydoc geht über den Jordan wie gesagt. Daher muss delcodc gesetzt werden, BEVOR Du copydoc.CopyToDatabase aufrufst.

Andreas

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re: markiertes Dokument ansprechen
« Antwort #54 am: 16.12.04 - 09:52:37 »
Geht nicht, die ausgewählten Dokumente werden nicht gelöscht. Aber wieder einmal das erste.


Glombi

  • Gast
Re: markiertes Dokument ansprechen
« Antwort #55 am: 16.12.04 - 10:01:35 »
Gut, dann bleibt nichts anderes übrig, als die Dokumente nachher zu löschen. D.h. Du musst die DocIDs sammeln (bspw. in einem Array oder einer Liste) und dann am Ende mit
 set deldoc = db.GetDocumentbyUNID( docid )
 call deldoc.Remove(true)
löschen.

Andreas

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re: markiertes Dokument ansprechen
« Antwort #56 am: 16.12.04 - 10:02:23 »
Hi,

setze mal copydoc = nextdoc bevor du das Document löschst.

Ansonsten mach es so wie ich bzw. Glombi schreibt.

Gruß

Zsolt

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: markiertes Dokument ansprechen
« Antwort #57 am: 16.12.04 - 10:44:38 »
also ich habe sowas ja auch schon ein oder zwei Mal gemacht.
Die Dokument-Objekte, die in der Collection sind werden gelöscht, wenn du deren remove-Methode aufrufst. Punkt.
(Achtung: Du musst diesen o.g. Trick mit den zwei Objekten machen, damit du nach dem Löschen eines Objekts noch den Zeiger auf das nächste bekommst.)

Also entweder sind die Dokumente, die nicht gelöscht werden, nicht in der Collection, oder(/und) du rufst deren remove-Methode nicht auf.

Der Debugger ist dein Freund.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re: markiertes Dokument ansprechen
« Antwort #58 am: 20.12.04 - 10:56:44 »
So.... willkommen im Kabinet der Kuriositäten. Also letztens ging das löschen noch. Jetzt auf einmal löscht er wieder alles nur nicht die ausgewählten Dokumente... ist doch viel zu argh oder ... habe am Code nichts mehr verändert.

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re: markiertes Dokument ansprechen
« Antwort #59 am: 20.12.04 - 11:02:44 »
Hi Nexus,

erstelle mal eine Kopie von der DB und poste die mal hier rein.

Dann können wir gemeinsam mal nach dem Problem schauen.

Gruß

Zsolt

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz