deleteEntriesWithPks
Versionshinweise | ab 18.1, 17.2.09 |
---|
Code
boolean SQLUtils.deleteEntriesWithPks(List<String> pks, String tableName[, String... subDataRelationsToDelete])
Beschreibung
Die Methode löscht die übergebenen Datensätze aus der Datenbank. Wenn zusätzlich Relationsnamen übergeben werden, werden auch alle abhängigen Daten der entsprechenden Relationen aus der Datenbank entfernt. Andernfalls werden lediglich Verweise auf die gelöschten Sätze (Verknüpfungen, Nachschlagefelder) entfernt. Ob ein Datensatz wirklich gelöscht werden darf hängt dabei von folgenden Regeln ab:
- Es ist nicht möglich Datensätze einer Entität in einer höheren Schicht als der des Prozesses zu löschen.
- Es ist nicht möglich Datensätze einer Entität einer niedrigeren Schicht als der des Prozesses bzw. der ursprünglichen Schicht des Prozesses (falls er übersteuert wurde) zu löschen.
- Innerhalb der C1 Schicht ist es nicht möglich Datensätze einer Entität mit einer anderen Partner-ID als der eigenen zu löschen.
Parameter:
pks
- Liste von Primärschlüsseln der zu löschenden Datensätze.tableName
- Tabellenname der zu löschenden Datensätze.subDataRelationsToDelete
- Optional: Relationsnamen von zu löschenden abhängigen Daten.
Rückgabe
true
wenn alle übergebenen Datensätze erfolgreich gelöscht wurden, andernfalls false
(in diesem Fall siehe SQLUtils.log für weitere Informationen).
Beispiele
List<IContainer> entriesToDelete = WorkSpaceScriptUtils.searchForRead("searchEntriesToDelete");
List<String> pks = new ArrayList<>();
for(IContainer entry : entriesToDelete)
{
if (!ScriptUtils.isEmpty(entry.getPk().getSimplePrimaryKey()))
{
pks.add(entry.getPk().getSimplePrimaryKey());
}
}
String tableName = entriesToDelete.get(0).getTableName();
SQLUtils.deleteEntriesWithPks(pks, tableName, "rAcDo", "rAcAc");