Ungelöst Wie kann ich Benutzer löschen, die nur für eine Veranstaltung angemeldet waren?
-
Hallo,
wir haben zur Anmeldung einer Veranstaltung eine Gruppe angelegt und nach der Anleitung "Informationen für öffentliche Gruppen anpassen" ein Anmeldeformular erstellt.
Nun melden sich Leute an und ich sehe, dass in CT neue Personen angelegt werden. Wenn die Veranstaltung vorbei ist, muss ich die Personen ja (ggf nach einer bestimmten Frist) wieder aus dem System löschen. Aber es sollen natürlich nur die gelöscht werden, die nicht noch in anderen Gruppen oder Diensten gelistet sind.Ich dachte erst, dass ich es vielleicht über den Status (=unbekannt) und die Gruppenzugehörigkeit machen könnte, aber es könnte sich ja jemand zu mehreren Veranstaltungen anmelden, was der Person aber trotzdem den Status "unbekannt" erhalten würde.
Das ist ja vermutlich eine Fragestelltung, die öfters vorkommt. Stehe ich nur auf dem Schlauch?
Vielen Dank
Sascha -
@saschaj unsere Lösung dafür passt vielleicht nicht direkt zu 100% auf dein Szenario, aber das lässt sich evtl. anpassen. Wir hatten dieses "Problem", als Anmeldungen zum Gottesdienst aufgrund Pandemie-Vorgaben nötig waren.
Die Vorraussetzungen für unseren Workflow oder Workaround sind:
- Es existiert eine übergeordnete Gruppe mit einem eigenen Gruppentyp, z.B. Anmeldungen, deren Untergruppen dann die einzelnen Veranstaltungen sind und auf einer Ebene liegen.
- Angemeldete Besucher habe eine eigene Rolle, z.B. Besucher
- neu erstellte Datensätze, die nur aufgrund dieser Anmeldung erstellt wurden, haben einen eigenen Status, z.B. Anmeldung
-> es ist Anfangs etwas verwirrend mit den fast gleichen Bezeichnungen zu Gruppentyp, übergeordnete Gruppe und eigenem Personenstatus, aber nur so bekommt man es sauber getrennt.
Zunächst bekommen alle Personen, die in der bestimmten Gruppe drin sind, die Rolle zu löschen. Das geht schnell über den Personenfilter in der Gruppe und dann per Batch-Funktion im Personenmodul.
Anschließend werden zwei Gruppen-Filter in Kombination angesetzt, die man gut in einer Filtervorlage zusammenfassen und speichern kann.Filter 1: ist oder war in Gruppentyp Anmeldungen Gruppe Anmeldung Untergruppen nur erste Ebene
Filter 2: und ist aktuell nicht in Gruppentyp Anmeldungen Gruppe Anmeldung Untergruppen nur erste Ebene Rolle BesucherMit dem ersten Filter werden alle Personen in allen Gruppen der ersten Ebene gefunden, also auch solche, die sich z.B. wieder abgemeldet haben oder eine Wartelisten-Rolle haben.
Mit dem zweiten Filter wird die Auswahl nur auf die Personen beschränkt, die nicht noch die Rolle Besucher in irgendeiner Gruppe der ersten Ebene haben.Als letztes wird noch der korrekte Status (!) auf die Auswahl angewandt, und nun hat man genau die Datensätze, die tatsächlich gelöscht werden können.
Wenn es einige sind, empfiehlt sich der Weg übers Archiv zu gehen, denn von dort aus kann man Datensätze auch per Batchfunktion löschen.Zu beachten:
- Die Speicherfristen sind manuell zu beachten, d.h. dieser Workflow darf erst dann durchgeführt werden, wenn die Speicherfrist vorüber ist, z.B. erst nach 4 Wochen. Ich hatte also damals immer einmal wöchentlich den Workflow durchgeführt, bezogen auf die Veranstaltung 4 Wochen zuvor.
- Die Vergabe der Rolle zu löschen ist ein Workaround, weil man sonst nicht sauber die Datensätze nur einer bestimmten Veranstaltung filtern kann
- Es werden letztlich ja nur Datensätze erfasst, die den Status Anmeldung haben. Personen, die in anderen Dienstgruppen etc. drin sind, haben ja einen anderen Status und werden dann nicht erfasst und somit auch nicht gelöscht. Sollten Datendupletten entstehen, weil Personen, die schon mit einem anderen Status in Churchtools eingetragen sind, sich mit unbekannter Mailadresse anmelden, dann hat das den Vorteil, dass man diese Dupletten gleich mitlöscht. Der eigentliche, korrekte Datensatz der Person bleibt ja dann erhalten.
- Wenn man die zwei Filter abspeichert, wird auch der Status gespeichert, d.h. beim einmaligen Speichern darauf achten, dass der gewünschte Status links ausgewählt ist, in diesem Fall also Anmeldung
- Zuguterletzt kann man die Gruppe dann löschen, dann werden alle verbliebenen Personen darin aus der Gruppe entfernt.
Ist nun doch etwas mehr Text geworden, Sorry. Vielleicht hilft es ja oder gibt den Anstoß in die richtige Richtung. Es ist eben ein Workaround, den ich mir sauber ins Wiki dokumentiert habe, nur deshalb konnte ich das jetzt hier so wiedergeben
-
Hallo @saschaj
Wir haben es ähnlich gemacht wie @metowa20. Allerdings mit einfacherem Löschverfahren.Also alle die sich anmelden und keinen Datensatz haben bekommen den Status Besucher.
Dann wird es einfacher: Wenn die Vorhaltezeit zur Aufbewahrung der Daten rum ist, wird die Gruppe gelöscht (durch die Verantwortlichen für die Veranstaltung).
Personen die nur in dieser Gruppe waren (also sonst nirgends angemeldet sind), sind danach gruppenlos.
Der Admin (ich) gehe regelmäßig her und rufe meinen Filter auf: ohne Gruppenzugehörigkeit und mit Status Besucher. Die so gefunden Stammsätze werden gelöscht.
Das ist zwar etwas zeitversetzt, und ggf. ist da jemand ein paar Tage zu lange im System, aber es klappt ganz gut ohne großen Aufwand.Viele Grüße
Ortwin -
@metowa20 interessanter Ansatz. Vielleicht lässt sich das noch vereinfachen
- alle Personen die in der bestimmten Gruppe drin sind, bekommen die Rolle zu löschen.
- man sucht alle Personen, die die Rolle zu löschen haben und keine andere Rolle - das geht ja unabhängig von den Gruppen. @ortwin daher braucht man auch den globalen Status nicht dazu.
Das hat m.E. etwas weniger Risiko, weil die Löschkandidaten explizit bestimmt sind (in der "bestimmten Gruppe").
-
@bwl21 da wäre dann aber das theoretische Problem, dass der Status keine Rolle spielt. Und es kann ja durchaus sein, dass es aus anderen Gruppen, die nix mit der Anmeldung zu tun haben, ebenfalls die Rolle „zu löschen“ gibt, hier aber noch ein Workflow abgearbeitet werden muss, bevor die Person dann endgültig aus dieser anderen Gruppe entfernt wird. Beispielsweise organisatorische Gruppen wie„Gemeindeschlüssel“ oder „Newsletter Anmeldung“ oder sowas.
Das wird mit dem zusätzlichen Filter auf den Status sicher umgangen.Und, ich bin mir nicht sicher, ob ich die Anforderung und keine weiteren Rollen hat mit einer Filterzeile umsetzen kann oder ob ich alle anderen existierenden Rollen jeweils einzeln ausschließen müsste. Hab mir die Filter diesbezüglich noch nicht angesehen.
-
@metowa20 sagte in Wie kann ich Benutzer löschen, die nur für eine Veranstaltung angemeldet waren?:
@bwl21 da wäre dann aber das theoretische Problem, dass der Status keine Rolle spielt. Und es kann ja durchaus sein, dass es aus anderen Gruppen, die nix mit der Anmeldung zu tun haben, ebenfalls die Rolle „zu löschen“ gibt, hier aber noch ein Workflow abgearbeitet werden muss, bevor die Person dann endgültig aus dieser anderen Gruppe entfernt wird. Beispielsweise organisatorische Gruppen wie„Gemeindeschlüssel“ oder „Newsletter Anmeldung“ oder sowas.
Das ist natürlich eine Frage der Organisation. wenn "zu löschen" dann sollte entweder kein weiterer Workflow notwendig sein, oder der eigentliche Löschprozess enthält diese Zusatzworkflows.
Beim löschen entfernt CT natürlich die anderen Gruppenbeziehungen. Wenn eine Newsletter-Anmeldung losläuft hat er ja in der entsprechenden Gruppe eine andere Rolle.
Ausserdem ist nicht sicher ob die Personen wirklich gelöscht werden können. Sie könnten ja Spender sein, was man normalerweise nicht sieht und auch nicht über die Filter abfragen kann.
Das wird mit dem zusätzlichen Filter auf den Status sicher umgangen.
Ehrlich gesagt, halte ich den Status für eine Abkürzung, die oft mit einer Problemlösung ein neues Problem schafft. Wir gehen von dem Status mehr und mehr weg und bilden das in Gruppen oder Bereichen ab.
Und, ich bin mir nicht sicher, ob ich die Anforderung und keine weiteren Rollen hat mit einer Filterzeile umsetzen kann oder ob ich alle anderen existierenden Rollen jeweils einzeln ausschließen müsste. Hab mir die Filter diesbezüglich noch nicht angesehen.
Habe es gerade nochmal probiert, geht doch nicht so einfach (da stolpere ich immer wieder drüber, dass die Filter leistungsfähig sind, aber eben doch nicht alle logischen Ausdrücke können ...)
Ich ziehe meinen Vorschlag daher zurück.
-
@metowa20 vielen Dank für den ausführlichen Post. Jetzt ist die Aufbewahrungsfrist abgelaufen und ich wollte den Prozess wie von Dir beschrieben durchführen.
Rollen und Status musste ich noch anpassen, weil die Anmeldung da schon lief, da war jetzt noch etwas Gefiltere angesagt, aber das habe ich alles hinbekommen, war auch eine gute Übung, da rein zu kommen.
Doch jetzt scheitere ich an einer Stelle, die ich nicht erwartet hätte:Als letztes wird noch der korrekte Status (!) auf die Auswahl angewandt, ...
Ich finde nicht, die Stelle, in der ich den Status in einen Filter mit einbeziehen kann?
Ist bestimmt was banales, ich schaue vermutlich nur nicht an die richtige Stelle, aber da hänge ich nun.
Bin über einen weiteren Tipp dankbar.
Sascha -
@saschaj ja, genau. Das ist nicht im Filter, sondern am linken Rand. Da kannst du nach Status filtern.
-
@metowa20 Danke, ich habe geahnt, dass es ganz einfach ist. Ist unten aus dem Bildschirm gerutscht, da habe ich nicht hin geschaut.
-
@metowa20 ich habe heute morgen zufällig ein Wunsch geschrieben - das hier weiterhelfen kann.
Ein automatisches Löschdatum eingeben zu können.
Wir benötigen dieses wegen Datenschutzgründen - wäre aber hier auch sehr hilfreich.