Domino 9 und frühere Versionen > Entwicklung
Probleme beim Befehl "Name" (Umbenennen und Verschieben von Dateien)
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