Datensatzverwendungen in anderen Datensätzen
Hallo zusammen,
ich versuche gerade eine Executable zu schreiben, die die Verwendungen von einem bestimmten Datensatz über mehrere Projekte zählt (damit die Redaktion ggf. Verwendungen prüfen kann, bevor etwas gelöscht wird).
Der Weg über die ReferenceEntries zeigt ja leider keine Verwendungen in anderen Datensätzen an, ein anderer Weg ist mir aber nicht bekannt um auf Abhängigkeiten zu prüfen.
Habt ihr da zufällig noch Ansätze, die mir helfen könnten?
Danke!
Ella
-
Hallo Ella,
ich fange mal mit technischen "Details" an. Der Referenzgraph ist Projekt lokal. Man kann auf Referenzen also nur aus dem jeweiligen Projekt aus zugreifen. Die Referenzen werden beim Speichern von Knoten (Seiten, Datensätzen, usw.) in den Referenzgraph geschrieben.
Fremdschlüsselbeziehungen können (noch) nicht über den Referenzgraph abgefragt werden (das wird sich wahrscheinlich in einer der nächsten Versionen ändern).
Deine Frage enthält mehrere Schlüsselwörter, die die Beantwortung etwas erschweren:
* über mehrere Projekte
* keine Verwendung in anderen DatensätzenMehrere Projekte können FirstSpirit Projekte sein (dann gilt die Einschränkung, dass Referenzen nur im jeweiligen Projekt abgefragt werden können). Du musst Dir also den Datensatz in jedem Projekt holen und die Referenzen prüfen. Das geht natürlich nur mit einem User, der Zugriff auf all diese Projekte hat udn man muss wissen, um welche Projekte es sich handelt.
Keine Verwendung in anderen Datensätzen könnte darauf hindeuten, dass es um Fremdschlüsselbeziehungen geht. Dann wäre die Antwort, dass Du einfach die Fremdschlüsselbeziehung entsprechend prüfen musst. Wenn es eine Eingabekomponente gibt, die darauf gemappt ist, dann prüfen, ob diese leer ist. Wenn es keine Eingabekomponente gibt, dann die Entity holen und von der die Fremdschlüsselbeziehung und diese darauf prüfen, ob die Inhalt hat. Wenn das Thema nicht dringend ist, kannst Du auch auf CORE-17774 warten. Wenn das Feature umgesetzt wird, dann steht die Information auch als Referenz zur Verfügung.
Hinweis: Ich vermute, dass dieses Feature in einer der nächsten drei Versionen erscheinen wird. Garantieren kann ich dies aber nicht. Prüfe einfach die release Notes der nächsten Versionen oder bitte den customer Support, dass er dich über den Release des Features informiert (letzteres hätte den Vorteil, dass Du auch darüber informiert würdest, wenn es nicht umgesetzt wird).
Dann gibt es noch die Interpretation der Anfrage, dass der Datensatz in verschiedene FirstSpirit Projekte verteilt wird und dort die Fremdschlüsselbeziehen anders gesetzt werden können. das halte ich aber für extrem unwahrscheinlich, so dass ich diese Interpretation ignoriere ;)
Schließlich noch die Rückfrage, ob es sich um Remote Content handelt (also die Version der Verwendung von Datenbanken über mehrere Projekte, die von Rezolve (Crownpeak, e-Spirit) stammt). Wenn ja, und wenn Du deinen Anwendungsfall für relevant (über den aktuellen Anwendungsfall hinaus) hältst, dann wäre es eine gute Idee, wenn du für diesen Anwendungsfall einen Feature Request einstellen würdest.
Ich hoffe, dass Dir die etwas ausschweifende Antwort weiterhilft, einen Lösungsansatz zu finden :)
Viele Grüße
Holger0 -
Hallo Holger!
Danke für deine ausführliche Antwort. :)
Vorerst:
Den Punkt mit den "über mehrere Projekte" hatte ich nur zur Veranschaulichung meines Anwendungsfalls hinzugefügt. An dieser Stelle gibt es kein Problem. :)
Deine Antwort bringt mich konzeptionell schon weiter, aber es bleibt noch die Frage, wie ich an die Fremdschlüsselbeziehung von einer Entity gelange.Viele Grüße
Ella0 -
Hallo Ella,
funktioniert es nicht, sich den EntityType zu holen und dort für alle AttributeNames zu prüfen, ob es sich um eine Fremdschlüsselbeziehung handelt (isComposedAttribute)?
Viele Grüße
Holger0 -
Hallo Holger,
doch genau das hat funktioniert! :)
Danke für den Tipp!
Viele Grüße
Ella0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
4 Kommentare