Ermitteln und physikalisches Löschen von Dateien im topfact Archiv!

topfact AG intern>Organisation>Richtlinien - verbindliche Anweisungen>Urlaub - Organisationsrichtlinie>technische Dokumentation Überblick>Standard Tools und Skripts>Ermitteln und physikalisches Löschen von Dateien im topfact Archiv!
Produkt: topfact6 MyWork
Erstellt am 09.05.2020 17:43, letzte Aktualisierung am 05.06.2026 11:02.

Ermitteln und physikalisches Löschen von Dateien im topfact Archiv!


Wenn Dateien im topfact Archiv! selektiv physikalisch gelöscht werden sollen stellt sich als erstes die Frage, welcher Datenbankeintrag verweist auf welche Datei, bzw. welches Verzeichnis. Über eine MSSQL Funktion (UserDefinedFunction) kann der Pfad berechnet werden. In der Folge kann mittels einfacher SQL-Abfrage die Liste der zu löschenden Dateien erstellt und als CMD Befehl ausgeführt werden.


Vorgehensweise:

  1. Erstellen der  UserDefinedFunction [dbo].[GetOrdnerByDocId]
  2. Ermitteln der Einträge die gelöscht werden sollen, z.B Version = 'alt' und Ausgabe als Löschskript für die CMD-Box
  3. Aufruf des Löschskripts


1. Erstellen der  UserDefinedFunction [dbo].[GetOrdnerByDocId]

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

Create FUNCTION [dbo].[GetOrdnerByDocId]
(
@docid VARCHAR(50)
)
RETURNS VARCHAR(255)
AS
BEGIN
  DECLARE @ordner VARCHAR(50)
  DECLARE @a VARCHAR(50)
  DECLARE @p VARCHAR(50) = 'D:\topfactArchiv\001\'
  SELECT @a = REPLICATE('0', 9 -LEN(@docid))
  SELECT @a = @a + @docid
  SELECT @a = SUBSTRING(@a,1,3) + '\' + SUBSTRING(@a,4,3) + '\' + SUBSTRING(@a,7,3)
  SELECT @ordner = @p + @a
  RETURN @ordner
END

2. Ermitteln der Einträge:

Vorbereitung Löschskript mit RD als CMD Befehl. Die Paramenter /S /Q verhindern nachfragen ob wirklich gelöscht werden soll.

SELECT
  'rd /S /Q ' as x,
  dbo.GetOrdnerByDocId(tf_docid) AS Ordner
FROM [topfactArchiv].[dbo].[tf_Archive001]
where
  versionstatus = 'alt'

Beispielergebnis:
rd /S /Q D:\topfactArchiv\001\001\391\450
rd /S /Q D:\topfactArchiv\001\001\391\453


3. Aufruf des Löschskripts

Die Ausgabe wurde in eine .bat kopiert und diese mit Rechtsklick "als Administrator starten" aufgerufen.

Inhaltsverzeichnis