jlindenberg
I'm new here

ordnungsgemäß Depublizieren

Hallo Community,

hat jemand einen ordnungsgemäßen und standard Weg gefunden, um freigegebenen Datensätze zu Depublizieren? Kann man die Datensätze löschen und wieder herstellen, werden aber leider damit Verknüpfungen verloren, auch ändern die Datensätze direkt in der Datenbank ist leider abgeraten (setzen fs_release_to auf 0 usw.).

https://community.e-spirit.com/people/essmann/blog/2011/01/13/rough-description-of-firstspirit-inter...

Danke in Voraus

1 Reply
broszeit
I'm new here

Hallo Herr Lindenberg,

leider muss ich Ihnen mitteilen, dass diese Funktion in FirstSpirit nicht implementiert ist.

Man kann sich hier aber mit einem Skript helfen:

//!Beanshell

row = context.getSelectedRow();

e = context.getStoreElement();

dataSet = e.getDataset(row);

currentEntity = dataSet.getEntity();

schema = dataSet.getTableTemplate().getSchema();

releaseSession = schema.getSession(true);

releasedEntity = releaseSession.find(currentEntity.getKeyValue());

if (releasedEntity != null) {

    dataSet.setFormData(dataSet.getFormData());

    dataSet.save();

   

    releaseSession.rollback();

    releasedEntity.refresh();

   

    releaseSession.delete(releasedEntity);

    releaseSession.commit();

}

print("Skript ausgeführt");

Wir holen uns über das Schema die releaseSession, welche uns dann das releasedEntity liefert, welches wir ja löschen wollen.

Damit wir dieses Entity löschen können, darf der Datensatz aber nicht mehr gültig sein. Das heisst der Freigabestand darf nichtmehr dem aktuellen Stand entsprechen, sodass eigentlich eine Freigabe nötig wäre um die Änderungen zu deployen. Um das zu erreichen setzen wir die FormData einfach neu und speichern den Datensatz im aktuellen Stand.


Jetzt müssen wir die beiden Methoden rollback() und refresh() aufrufen um die jeweiligen Objekte zu aktualisieren.

Anschliessend wird das Entity gelöscht und mit releaseSession.commit() werden die Änderungen persistiert.


Sobald der Datensatz im aktuellen Stand wieder freigegeben wird, würde er dann auch wieder im Freigabestand auftauchen.

Ich hoffe es ist alles so weit verständlich.


Viele Grüße

Rouven Broszeit


Formatierung editiert

0 Kudos