Search the FirstSpirit Knowledge Base
Hallo FirstSpirit-Experten,
vielleicht könnt ihr mir bei folgender Anforderung helfen.
Wir haben eine Datenquelle "Vortrag" in FirstSpirit.
Diese Datensätze aus der Datenquelle "Vortrag" sollen nun auf irgendeine Weise mit Datensätzen einer externen Datenbank bzw. Schnittstelle "Aussteller" n:m verknüpft werden. Habt ihr vielleicht Ansätze, wie wir das lösen könnten?
Vielen Dank schon einmal für eure Ideen/Hinweise
Gruß
Sebastian
Hallo Sebastian,
wenn die externe Datenbank "Aussteller" in FirstSpirit eingebunden wurde [Layer konfigurieren der auf die Datenbank zeigt und diesen in eine Projekt mit den Optionen NoSchemaSync & Readonly anbinden] und ein Schema aus der Datenbank erzeugt wurde [Neu/Schema aus Datenbank erzeugen], dann würde ich so vorgehen:
--> Damit können dann von der Tabelle in der Datenbank "Vortrag" beliebige Datensätze aus der entsprechenden Tabelle der Datenbank "Aussteller" verlinkt werden
Die Verlinkung anders herum ist natürlich nicht möglich, da die "Aussteller" Datenbank ja nicht unter FirstSpirit Kontrolle steht, also nicht geändert werden kann.
Problematisch wird das Konstrukt, wenn abgefragt werden muss, welche Vorträge zu einem Aussteller gehören, da dann über alle Vortrags-Datensätze iteriert werden muss, um die zu finden, die den Aussteller referenzieren.
Viele Grüße
Holger
Hallo Sebastian,
wenn die externe Datenbank "Aussteller" in FirstSpirit eingebunden wurde [Layer konfigurieren der auf die Datenbank zeigt und diesen in eine Projekt mit den Optionen NoSchemaSync & Readonly anbinden] und ein Schema aus der Datenbank erzeugt wurde [Neu/Schema aus Datenbank erzeugen], dann würde ich so vorgehen:
--> Damit können dann von der Tabelle in der Datenbank "Vortrag" beliebige Datensätze aus der entsprechenden Tabelle der Datenbank "Aussteller" verlinkt werden
Die Verlinkung anders herum ist natürlich nicht möglich, da die "Aussteller" Datenbank ja nicht unter FirstSpirit Kontrolle steht, also nicht geändert werden kann.
Problematisch wird das Konstrukt, wenn abgefragt werden muss, welche Vorträge zu einem Aussteller gehören, da dann über alle Vortrags-Datensätze iteriert werden muss, um die zu finden, die den Aussteller referenzieren.
Viele Grüße
Holger
Danke schon einmal für deine Idee.
Die Idee hatten wir auch schon so, aber so ganz das richtige ist das in unserem Fall vermutlich leider nicht.
die "Aussteller"-DB besteht aus mehreren Tabellen, da müssten wir dann pro Mandant kompliziert Views erstellen usw.
Dann gibts auch noch einen jährlichen Zyklus, so das es auch schwierig wäre das jedes mal sinnig anzupassen.
Gibts also vlt. noch andere Ansätze?
Eine wichtige Info die ich vlt. noch vergessen habe. Es wäre auch denkbar das jeweils nur hin und wieder zu importieren oder so. Denn das würde pro Jahr wahrscheinlich nur einmal gemacht werden müssen. Schöner wäre natürlich immer die aktuellen Daten, aber ein Import z. B. einmal im Jahr wäre auch ok.
Hallo Sebastian,
so ganz klar ist mir euer Konstrukt nicht (vielleicht hilft ja ein Bild). Eine n:m Beziehung ist hier vermutlich auch nicht gemeint, weil es über Datenbanken hinweg eher schwierig zu realisieren sein wird.
Ich vermute mal, dass der Ansatz über ein DataAccessPlugin schon der richtige ist, um die Beziehung aus FirstSpirit heraus zu realisieren. Wenn ihr euch nicht scheut, könnt ihr ein eigenes solches Plugin schreiben, das die Geschäftslogik bzgl. Mandanten und Zieltabellen kapselt. In einer FS_INDEX könntet ihr dann Referenzen über das Plugin auf die externen Daten setzen. Vorausgesetzt, eure Datenbank hat eine programmatische API. Alternativ könntet ihr das Plugin auch auf einem Datenbank-Export basieren lassen, den ihr bspw. über eine Projekt-Komponente regelmäßig (manuell) einpflegt. Die Logik innerhalb des Plugins liegt dabei in Eurer Hand. Entsprechende Doku und Beispiele dazu findet ihr bei uns im ODFS.
Beste Grüße
Stefan
Vielen Dank.
So machen wir es jetzt vermutlich. Ich hab das so Durchstichtechnisch schon mal implementiert.
Ein Problem was ich hatte, ist dass bei [Neu/Schema aus Datenbank erzeugen] die DB Views, die ich zuvor angelegt hatte nicht mit angelegt wurden 😕
Hab dann aber mal hier im Forum weiter recherchiert und den Hinweis gefunden (MySQL 5 externe View an CMS anbinden; Primary Key für View festlegen; Datenbankschema; FS5 ), dass man die Views hinzufügen kann, indem man das XML des Schemas über [Schema manuell extern bearbeiten] hinzufügen kann.
Scheint nun also alles zu funktionieren.
Super, vielen Dank