Autor Thema: Call dc.PutAllInFolder ohne Wirkung  (Gelesen 2598 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Call dc.PutAllInFolder ohne Wirkung
« am: 10.02.03 - 16:14:22 »
Hallo Leute,
folgendes Skript funktiniert nicht mehr.
Es ist im OpenQueryEreignis eines Public, Private on First Use Qrdners


>Set dc = view.GetAllDocumentsByKey(s.CommonUserName, True)

Die Collection ist gefüllt, aber

>Call dc.PutAllInFolder(ORDNER_EIGENE_DOKUMENTE, createonfail )

hat keine Wirkung !!!

Wer kann mir helfen ?


   Dim ws As New NotesUiWorkspace
   Dim s As New NotesSession
   Dim view As NotesView
   Dim dc As NotesDocumentCollection
   Dim db As NotesDatabase
   
   Dim ORDNER_DOKS_NACH_INITIATOREN As String
   Dim ORDNER_DOKS_NACH_SENDEN_AN As String
   Dim ORDNER_EIGENE_DOKUMENTE As String
   
   ORDNER_DOKS_NACH_INITIATOREN =  "_Initiator"
   ORDNER_DOKS_NACH_SENDEN_AN = "_Senden"
   ORDNER_EIGENE_DOKUMENTE  = "Eigene Dokumente"
   
   ' Vielleicht sollte der Ordner vorher komplett geleert werden ?
   
   On Error Resume Next
   
   Set db = s.CurrentDatabase  
   Set view = db.GetView( ORDNER_EIGENE_DOKUMENTE )      
   Set dc = view.GetAllDocumentsByKey(s.CommonUserName, True)
   Call dc.RemoveAllFromFolder( ORDNER_EIGENE_DOKUMENTE )
   
   Set view = db.GetView(ORDNER_DOKS_NACH_INITIATOREN)      
   Set dc = view.GetAllDocumentsByKey(s.CommonUserName, True)
   Call dc.PutAllInFolder( ORDNER_EIGENE_DOKUMENTE, createonfail )
   
   Set view = db.GetView(ORDNER_DOKS_NACH_SENDEN_AN)      
   Set dc = view.GetAllDocumentsByKey(s.CommonUserName, True)
   Call dc.PutAllInFolder(ORDNER_EIGENE_DOKUMENTE, createonfail )
   
   Set view = db.GetView( ORDNER_EIGENE_DOKUMENTE )      
   Call ws.ViewRefresh

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #1 am: 10.02.03 - 16:39:04 »
simle Frage: wie hoch ist der Count der dc-Collection im Debugger?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #2 am: 10.02.03 - 16:39:36 »
ca 55

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #3 am: 10.02.03 - 16:45:15 »
Hi,

andere dumme Frage, der Ordner ist als persönlicher Ordner vorhanden ?

Meines wissen gibt es Probleme mit dieser Funktion wenn der Ordner nicht angelegt ist. Auch wenn du den createonfail - Parameter angibst, legt er keine Ordner an.
Ausserdem mußt du True oder False angeben und nicht createonfail.


Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #4 am: 10.02.03 - 16:47:57 »
und der Ordner heißt wirklich "Eigene Dokumente" und nicht anders, bzw es kommt keine Fehlermeldung, nix nada?

Don  ???

laut Help:
createonfail
Boolean. Optional. Specify True so that a folder will be created if it does not exist.

Usage
If a document is already inside the folder you specify, PutAllInFolder does nothing for that document. If you specify a path to a folder, and none of the folders exist, the method creates all of them for you.

also schon mal das evtl.

Beispiel aus Help, weil mich wundert, daß Du den Ordner mit db.getview initiierst...weiß nicht, aber möglicherweise liehgt es daran...machs mal so wie im Beispiel:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Set db = session.CurrentDatabase
Set view = db.GetView("By Category")
Set vc = view.GetAllEntriesByKey("Fox")
>>>Call vc.PutAllInFolder("Machines")<<<

und lass also mal das erste mit dem remove und dem initialisieren als db.getview weg. Nur ne Idee wie gesagt. Und Axels Hinweis war wichtig, könnte es sein.
« Letzte Änderung: 10.02.03 - 16:49:04 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #5 am: 10.02.03 - 16:59:47 »
@Rob

ich bekomme folgende Fehlermeldung


Notes Error: Wenn Sie ein Antwortdokument in einen Ordner verschieben möchten, der die Antworthierarchie anzeigt, müssen Sie das Hauptdokument der obersten Ebene verschieben.

Ich weiss aber von keinen Antwortdokumenten in meiner Anwendung ?

Ciao

Don Pasquale

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #6 am: 10.02.03 - 17:05:28 »
dann versuch das mal auf engl. zu übersetzen und geh mit einiges Keywords in die kNowledge Base..
http://eknori.dyndns.org/knowledge/kbnv11.nsf
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #7 am: 10.02.03 - 17:27:43 »
Ob das Dokument ein Elterndokument hat findest du in dessen Dokumenteigenschaften, 2. Register nach $REf suchen, müsste einer der ersten Einträge sein. Wenn es das Feld gibt, dann hast du Elterndokumente - oder Replizierkonflikte...

ata
Grüßle Toni :)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #8 am: 10.02.03 - 17:32:32 »
@Rob

ich habe alles mit RespondeDokuments oder Foldern
durchgesehen.

Es sind die Replizierkonflikte, davon habe ich dann und wann
welche.

Ciao

Don Pasquale


Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #9 am: 10.02.03 - 18:04:15 »
@Don

machst du mehrere Threads mit dem gleichen Thema auf  ???


bevor dein code losbraust löscht du alle Replizierkonflikte am Anfang des Agents.




cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #10 am: 10.02.03 - 18:09:22 »
@Performance

Jein,

das beide Sachen miteinander zusammenhingen hat sich mehr so ergeben,
ich bin selbst nciht ganz glücklich mit 2 threads

Wie löscht man Replizierkonflikte ?

Ich habe erstmal ein Locking eingebaut und die Masken auf Replizierkonfllikte mischen eingestellt. Habe ich damit noch nicht alles erschlagen ?


Ciao

Don Pasquale

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #11 am: 10.02.03 - 18:25:38 »
- deine replication conflict view mit der Formel:
Select @IsAvailable($Conflict)
- die view holst du dir mit db.getview()
machst eine collectionaus den doks und dann löscht du mit collection.removeall

- oder ohne view
Dim colConflict As NotesDocumentCollection
Dim DateTime As New NotesDateTime( "01.01.1970" )
Set db = session.CurrentDatabase
Set colConflict = db.Search( "@IsAvailable(IsConflict)", DateTime , 0 )
Call colConflict.RemoveAll( True )

Wenn du in den Masken die Option Replicationskonflikte mischen setzt sollte das Feld $ConflictAction = "1" gesetzt werden.


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Call dc.PutAllInFolder ohne Wirkung
« Antwort #12 am: 10.02.03 - 18:33:33 »
@Performance

Vielen Dank, das hört sich sehr brauchbar an.
Ich werde das morgen ausprobieren.

Caio
Don Pasquale

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz