Domino 9 und frühere Versionen > Entwicklung

Probleme beim Befehl "Name" (Umbenennen und Verschieben von Dateien)

(1/5) > >>

aoibhneach:
Follow up: https://atnotes.de/index.php/topic,63290.msg403541.html#msg403541


--- Zitat von: aoibhneach am 09.07.21 - 08:08:44 ---
--- Zitat von: aoibhneach am 09.07.21 - 04:07:50 ---Guten Morgen,

es tritt doch noch ein Zugriffsproblem auf, aber erst, nachdem einige Dateien verschoben wurden. Kann ich diesen Thread für eine weitere Frage nutzen oder ist er abgeschlossen?

Viele Gruße

--- Ende Zitat ---

Guten Morgen,
ich hoffe, das Zitieren ist so gemeint.
Alles lief prima. Aber dann traten plötzlich Zugriffsprobleme auf.
Vielen Dank für Deine/Eure Hilfe!!!


* Es wird, nachdem einige Dateien erfolgreich verschoben wurden, plötzlich ein Verzeichnis mit dem Namen aus "neuesFile" angelegt. Dann bricht die Aktion mit Fehler ab.

* Außerdem hatte ich mitunter auch die Fehlermeldung, dass "filename = Dir$()" nicht ausgeführt werden konnte.

* Muss ich zum Abschluss die verwendeten Dateien altesFile und neuesFile freigeben? "Reset" ist sicher nicht richtig, oder?

Das "Überspringen" von Dokumenten, die eventuell einen Replizierkonflikt haben, ist im Code-Ausriss nicht enthalten.

Anmerkung: Ich muss jede Datei sofort aus dem Quellverzeichnis löschen, weil ich sonst das wichtige Merkmal "SchluesselNr" verliere. Diese benötige ich für den neuen Namen.

Sub Click(Source As Button)

' Im Original stehen hier Deklarationen
   Set vc = view.AllEntries
   Set entry = vc.GetFirstEntry
   Set doc = entry.Document
   
   pageSeparator = 2 'Neue Seite
   
   Dim altesFile, neuesFile As String
   
   Dim pathname As String
   Dim filename As String
   'Es folgt das Muster des Dokumentnamen der Form: "Datum_Uhrzeit-Dokumentname.pdf"
   'fuer den Befehl: filename = Dir$(pathname,0)

   pathname = "C:\Users\xxxxxx\Desktop\*Dokumentname.pdf*"
   
   Do Until doc Is Nothing   
      Call uiview.SelectDocument(doc)
      SchluesselNr = doc.SchluesselNr(0)   
      Call uiview.Print(1, , , ,pageSeparator ,"Form_des_Dokuments", , , ,"PDF24")

      filename = Dir$(pathname,0)

      altesFile = "C:\Users\xxxxxx\Desktop\" & filename
      
      filename = Dir$()
      neuesFile = "E:\ZIELVERZEICHNIS\" & SchluesselNr & "_Export_Dokument.pdf"
      
      Name altesFile As neuesFile
      
      Call uiview.DeselectAll
      Set entry = vc.GetNextEntry(entry)
      Set doc = entry.Document()
      
   Loop   
   
End Sub

--- Ende Zitat ---

aoibhneach:
Eine Ergänzung:

Im DEBUG-Modus, also mit fleißigem Tippen der F8-Taste läuft alles super. Die Dokumente werden umbenannt und verschoben. Konfliktdokumente lasse ich aus.

Sobald ich aber den DEBUG-Modus ausschalte, wird im Ziellaufwerk/Verzeichnis wieder ein Unterverzeichnis mit dem Namen "Dokumentname.pdf" angelegt. Und zwar gleich beim ersten Dokument. Das führt im nächsten Schritt zum Fehler.

 :-: Ich glaube, das ist das passende "emoji".

Viele Grüße.


eknori (retired):
So wirklich verstehe ich Deinen code nicht

   pathname = "C:\Users\xxxxxx\Desktop\*Dokumentname.pdf*"
  
   Do Until doc Is Nothing  
      Call uiview.SelectDocument(doc)  <- wozu?[/s]
      SchluesselNr = doc.SchluesselNr(0)  
      Call uiview.Print(1, , , ,pageSeparator ,"Form_des_Dokuments", , , ,"PDF24") <- wozu?[/s]

      filename = Dir$(pathname,0) <- liest immer die erste Datei anhand von Definition in pathname

      altesFile = "C:\Users\xxxxxx\Desktop\" & filename
      
      filename = Dir$() <- liest immer die NÄCHSTE Datei anhand von Definition in pathname . Bringt hier rein gar nichts
      neuesFile = "E:\ZIELVERZEICHNIS\" & SchluesselNr & "_Export_Dokument.pdf"
      
      Name altesFile As neuesFile <- Blindflug . Woher weisst Du, dass die richtige Datei umbenannt wird?
      
      Call uiview.DeselectAll <- wozu?[/s]
      Set entry = vc.GetNextEntry(entry)
      Set doc = entry.Document()
      
   Loop  

UPdate: Ah, verstehe, es ist immer nur das aktuall ausgedruckte Dokument in dem Ordner.

maxritti:
Meine Vermutung ist die, dass


--- Code: ---Call uiview.Print
--- Ende Code ---

die Dokumente druckt und erst mal in die Druckerqueue schiebt.
Da dauert es dann erst mal bis das ein und andere gedruckt ist.
Dein Code macht allerdings schon weiter und findet nicht wirklich die richtigen Dokumente.

Wenn du Debugst, hat der Printer mehr Zeit, die Dokumente zu erstellen.

eknori (retired):

--- Zitat ---die Dokumente druckt und erst mal in die Druckerqueue schiebt.
--- Ende Zitat ---
Ja, sehe ich auch so. Das ist ein timing Problem.

Versuche s mal mit SLEEP https://help.hcltechsw.com/dom_designer/10.0.1/basic/LSAZ_SLEEP.html
Ist nicht schön, könnte aber helfen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln