Index: BL/Sys/FOP/Test.cls.xml
===================================================================
diff -u -r2337 -r3196
--- BL/Sys/FOP/Test.cls.xml (.../Test.cls.xml) (revision 2337)
+++ BL/Sys/FOP/Test.cls.xml (.../Test.cls.xml) (revision 3196)
@@ -634,7 +634,23 @@
If DebugFtp Do
. If 'Ftp.GetDirectory(.CurDir) Do WL^vhDBG("FTP: Can not get current dir!") Quit
. Do WL^vhDBG("CurDir is now: "_CurDir)
+
+ ; De placeholder vervangen
+ Set NaamMetPlaceholder=DestFName
+ Set NaamMetWildcard=##class(BL.Sys.FOP.CommonTasks).VervangPlaceholderZTSDoorWaarde(NaamMetPlaceholder,"*")
+ Set NaamZonderPlaceholder=##class(BL.Sys.FOP.CommonTasks).VervangPlaceholderZTSDoorWaarde(NaamMetPlaceholder)
+ Set DestFName=NaamZonderPlaceholder
+ Set IsPlaceholderVervangen = (NaamMetWildcard'=NaamZonderPlaceholder)
+
+ d WLIP^vhDBG(97,"FTP before Delete Files")
+ d WLIP^vhDBG(97,NaamMetWildcard)
+ ; if placeholder, then kill previous files with similar name
+ Set MagFilesVerwijderen=(IsPlaceholderVervangen)&&(NaamMetWildcard["*")
+ If MagFilesVerwijderen {
+ Set scDelete=##class(BL.Sys.FOP.Test).VerwijderFilesViaPatternOnFtp(NaamMetWildcard,Ftp,0) ; Alternatieve methode is minder efficient, maar werkt wel
+ }
+
; Send File to FTP
If ('Ftp.Store(DestFName,SrcStream)) Do Quit sc
. Set sc=$$$ERROR($$$GeneralError,"FTP: Failed to store file on FTP Server")
@@ -667,6 +683,84 @@
]]>
+
+
+Bestanden op de FTP-site verwijderen volgens NaamMetWildcard
+Dit is MDelete: een lijst ophalen via wildcard (pattern) + de files hiervan één voor één verwijderen via Ftp.Delete
+Het ophalen van de lijst verloopt in-line, het verwijderen kan ge-jobbed worden (TO DO)
+1
+NaamMetWildcard:%String,FtpClient:%Net.FtpSession,RunInNewJob:%Boolean=0
+%Status
+
+
+
+
+
+Geeft een lijst met bestanden terug die voldoen aan de opgegeven pattern (NaamMetWildcard)
+
+BELANGRIJK !!!
+==========
+Er zijn 2 veronderstellingen :
+ - er mogen geen spaties in de filenames staan (op de ftp-server)
+ - in de lijst die FTP teruggeeft staat de bestandsnaam in de laatste kolom; OPGELET : als dit verschillend is op andere systeem/omgeving, dan moet de code meer generiek gemaakt worden.
+
+Een alternatieve methode is Ftp.NameList(Path) , maar deze ondersteunt geen "wildcard matching".
+1
+NaamMetWildcard:%String,FtpClient:%Net.FtpSession
+%ListOfDataTypes
+
+
+
+
+1
+LijstBestandenTeVerwijderen:%ListOfDataTypes,FtpClient:%Net.FtpSession
+%Status
+
+
+
s sc=##class(BL.Sys.FOP.Test).SimulateAll() w $$ParseStatus^vhLib(sc)