Home Forum Nuclos Entwicklung Makros und Regeln Löschen von Objekten

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • #4394
    Matthias Haake
    Teilnehmer

    Hallo,

    ich habe zwei wichtige Fragen:

    [1] Welchen API-Call muss ich verwenden, wenn ich ein Objekt nicht physisch löschen möchte, sondern es nur als gelöscht markieren möchte?

    [2] Wie kann ich in einer Regel (Verwendung „Löschen“ bzw. „Löschen (im Anschluss)“) auslesen, ob das Objekt nur als gelöscht markiert wird oder ob der User es physikalisch löschen möchte?

    Hintergrund: Beim Löschen eines Objektes möchte ich abhängige Daten ebenfalls entfernen. Wird das Objekt physikalisch gelöscht, möchte und muss ich auch die abhängigen Objekte physikalisch löschen. Wird nur als gelöscht markiert, dann möchte ich auch die abhängigen Objekte nur als gelöscht markieren.

    Vielen Dank für jede Hilfe und Grüße,
    Matthias

    #4396
    Matthias Haake
    Teilnehmer

    OK, Frage 1 konnte ich selbst lösen (nebenbei: sollte das Feld nicht eher LOGICALDELETED – mit einem G heißen):


    server.setFieldValue("entityName", id, NuclosEOField.LOGGICALDELETED.getMetaData().getField(), true)

    Bleibt noch die Frage nach der Methode des aktuellen Löschvorgangs. Leider ist es nicht möglich, die Regel im Anschluss laufen zu lassen und dann einfach in der DB zu schauen, ob das Objekt nicht mehr existiert. Durch die Abhängigkeiten schlägt das Löschen nämlich fehl, wenn richtig gelösht werden sollte.

    Daher bin ich darauf angewiesen, die Information (Richtig löschen oder nur als gelöscht markieren) in der Regel abzufragen.

    #4399
    Thomas Schiffmann
    Teilnehmer

    Hallo,

    ob das Objekt nur logisch gelöscht wird, können Sie so abfragen:


    if (server.getGenericObject().isDeleted()) {
    // logisch
    }
    else {
    // physisch
    }

    Viele Grüße
    tsc

    #4625
    Matthias Haake
    Teilnehmer

    Noch eine Anmerkung zur geposteten Lösung, falls das mal jemand anderes benötigt:


    if (server.getGenericObject().isDeleted())
    {
    // logisch
    // ACHTUNG: oder physisch (wenn es bereits logisch gelöscht war)
    }
    else
    {
    // physisch
    }

    Der Fall tritt auf, wenn man ein als gelöscht markiertes Objekt physisch löschen will. Der sichere Weg ist, dass man zusätzlich in der Regel den Löschstatus des Objektes von der Datenbank erfragt. Ist das Objekt dort ebenfalls als gelöscht markiert, wird nun physisch gelöscht.

    Viele Grüßé,
    Matthias

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)