std.DeleteObject

Dieser Job identifiziert ein Objekt (Dokument, Register, Ordner) über die angegebenen Parameter und löscht es — wahlweise in den Papierkorb (reversibel) oder endgültig (nicht mehr wiederherstellbar). Der Job ist der zentrale Löschpfad für DMS-Objekte.

Die Parameter dwParentID und dwParentType werden nur für Dokumente beachtet. Hat ein Dokument mehrere Einträge in der Tabelle sdrel (Mehrfach-Ablage) und sind dwParentID = 0 und dwParentType = 0, werden alle Ablagen entfernt; mit gesetztem Parent wird gezielt nur diese eine Ablage gelöscht.

1. Eingabeparameter

Name Typ Pflicht Beschreibung

sDeleteMethod

STRING

Ja

Methode zum Löschen:
Delete = Objekt wird endgültig gelöscht (ohne Papierkorb), oder Objekte im Papierkorb werden endgültig entfernt
DeleteWithDocs = gültig für Schrank/Register; alle enthaltenen Register/Dokumente werden mitgelöscht
Recycle = Objekt wird in den Papierkorb verschoben (reversibel über die Wiederherstellungs-Funktion)

dwObjectID

INT

Ja

ID des Objekts

dwObjectType

INT

Ja

Typ des zu löschenden Objekts

dwParentID

INT

Ja

ID des übergeordneten Objekts. 0, wenn das Objekt direkt im Wurzelarchiv liegt oder wenn alle Ablagen eines Dokuments mit Mehrfach-Ablage betroffen sein sollen.

dwParentType

INT

Ja

Typ des übergeordneten Objekts. 0, wenn dwParentID = 0.

[sSpecific]

STRING

Nein

Children = Unterobjekte werden gelöscht; sonst leer.

[$SwitchContextUserName$]

STRING

Nein

Generischer enaio®-Mechanismus zum Wechsel des effektiven Anwenderkontextes für die Operation. Der angegebene Benutzername wird für Berechtigungsprüfung und History-Eintrag herangezogen, auch wenn die Verbindung unter einem technischen Service-User läuft.

2. Ausgabeparameter

Name Typ Abhängigkeit Beschreibung

[sInfo]

STRING

Optional

Wird nur zurückgegeben, wenn ein zu löschendes Register/Schrank Unterobjekte enthält.

[Clause]

INT

Optional

Immer 1.

3. Rückgabe

(INT): 0 = Job erfolgreich, sonst Fehlercode (z. B. Objekt existiert nicht, fehlende Lösch-Berechtigung, Foreign-Key-Constraint, Objekt ist gesperrt).

4. Hinweise

  • Wiederherstellbar bei Recycle — ein im Papierkorb liegendes Objekt kann über die Wiederherstellungs-Funktion zurückgeholt werden, solange es nicht endgültig (Delete) gelöscht wurde.

  • History-Eintrag — jede Löschung erzeugt einen Audit-Eintrag in osobjhist; der osuser-Wert dort entspricht dem über $SwitchContextUserName$ gewechselten Benutzer (sonst dem Connection-User). Der History-Eintrag bleibt auch nach endgültigem Löschen erhalten.

  • Asynchrone Index-Bereinigung — nach erfolgreicher Löschung wird eine Nachricht in die Queue FULLTEXTDELETE (oscpmqueue) eingestellt, damit der Volltext-Indexer den Index-Eintrag entfernt. Direkt nach Rückkehr aus diesem Job kann das Objekt also noch kurz im Volltextindex sichtbar sein, bis der Indexer die Nachricht abgearbeitet hat — siehe Capture- und Processing-Messages (CP).

  • Mehrfach-AblageRecycle mit gesetztem dwParentID/dwParentType entfernt nur die adressierte Ablage; bei dwParentID = 0 werden alle Ablagen des Objekts entfernt.

5. Verwandte Jobs

  • std.RestoreObject — stellt ein per Recycle gelöschtes Objekt aus dem Papierkorb wieder her

  • std.DeleteDocument — spezifische Variante für reine Dokument-Objekte; std.DeleteObject ist der generische Pfad für beliebige Objekttypen

  • std.DeleteDocumentVersion — löscht eine einzelne Dokumentenversion, nicht das gesamte Objekt

  • dms.XMLDelete — XML-basierte Löschvariante über die generische XML-Schnittstelle der DMS-Engine

  • std.CreateCPMessages — erzeugt CP-Nachrichten (analog zum impliziten FULLTEXTDELETE-Enqueue dieses Jobs)