Komfortables Befüllen einer n:m-Beziehung

cRM11, Large

Hallo,

ich habe mir zwei Ansichten „Preisschreiben“ und „Modell“ erstellt, sowie eine Verbindungstabelle, die die Einträge beider Tabellen als n:m-Relation verbindet

Preisschreiben 1–n Verbindungen n–1 Modelle

Wenn nun ein neues Preisschreiben eingetragen wird, soll der User es - möglichst bequem - den Modellen zuordnen können, für die es gilt.

Ich bräuchte also die ID des neuen Preisschreibens und die IDs der Modelle, um per Insert die Verbindungen herstellen zu können.
Außer, einen Filter manuell zu erstellen, diesen abzuspeichern und dann dem Preisschreiben zuzuweisen fällt mir nichts gescheites ein. Und dieser Ansatz wird die damit betrauten User wahrscheinlich überfordern (abgesehen davon müsste ich ihnen die Rechte zum Erstellen und Speichern von Filtern geben, das ist nicht vorgesehen)

Für Denkanstöße aller Art bin ich (wie üblich) dankbar

Wolfgang

Spontan: Ich würde per CreateRecordSet einen RecordSet für die (ggf. eingeschränkt nur in Frage kommenden*) Modelle erzeugen und dann per RecordSet.DialogSelectRecordMultiple die Anwender:innen alle ankreuzen lassen, für die das Preisschreiben gelten soll. Beim Klick auf OK würden Sie denn den zurückgelieferten RecordSet iterieren und für alle Records in der N:M Tabelle Datensätze erzeugen und die ModellID (und die PreisschreibenID, um die es gerade grundsätzlich geht) eintragen (und dabei auch am besten zuvor noch kurz checken, ob das Modell evtl. schon bereits eingetragen wurde, um Mehrfachzuweisungen desselben Modells zu vermeiden).

Danach würde ich eine Frage stellen: „Möchten Sie noch weitere Modelle zuordnen? (JA/NEIN)“. So kann man auch kleinteiliger in verschiedenen Iterationen die Modelle zuordnen und muss nicht eine riesige große Liste mit vielen Haken erst in dem Dialog erzeugen. Lieferte DialogSelectRecordMultiple Nothing zurück, wurde der Dialog abgebrochen, dann sparen Sie sich natürlich die Frage.

Bei Ja loopen Sie wieder hoch. Bei Nein sind Sie fertig.

*) z.B. schonmal alle die rausfiltern, die bereits Teil der N:M Verknüpfung sind, das macht es benutzungsfreundlicher.

Happy Weekend!

So ein Ärger, jetzt muss ich übers Wochenende was tun :wink:

Das hört sich an, als würde das passen. Vielen Dank!

Wolfgang

Hallo,

nun habe ich eine Datenbankview erstellt, die meine Modelle beinhaltet (eine Auswahl aus dem Gesamtkatalog, natürlich mit UID-Feld). Leider erhalte ich beim Anwählen eines Datensatzes folgende Fehlermeldung:

image

damit kann ich leider gar nichts anfangen…

Weiß jemand, was ich da falsch mache?

Vielen Dank im Voraus
Wolfgang

So tolle Fehlermeldungen sind echt käse und mir gerade ein bisschen peinlich… :man_facepalming:

Hier sollte eigentlich der Feldaliasname des Feldes vom internen Typ „Datensatz-ID“ drin stehen, aber der ist wohl leer. Und ich denke, das ist nur ein Folgeproblem, denn ich denke das eigentliche Problem ist, dass diese Ansicht gar kein Feld vom internen Typ „Datensatz-ID“ hat und somit dann auch kein Aliasname für diese (Folge-)Fehlermeldung besorgt werden kann.


(„Schlüsselfeld“ bei einer Datenbanksicht sicherheitshalber auch ankreuzen, da manche Abfragen darüber laufen.)

Wir kümmern uns drum, dass dieser Umstand („Feld vom Typ ‚Datensatz-ID‘ muss vorhanden sein“) bei dem Dialog VOR der obskuren Meldung, dass das Datensatz-ID Feld des angekreuzten Datensatzes nachher keinen leeren Inhalt haben darf, geprüft wird, so dass man hier direkt erfährt, was das originäre Problem ist.

So einfach geht’s, wenn man es richtig macht…

Vielen Dank!
Wolfgang

1 „Gefällt mir“

PS: In Ihrem Screenshot ist mir noch der Dialogtitel ins Auge gestochen: bitte ändern Sie das Encoding Ihrer VBScript-Datei, sonst gibt es Probleme mit den Umlauten.

Nehmen Sie entweder ‚ANSI‘, oder ‚UTF-8 mit BOM‘ (=‚byte order mark‘) oder auf ‚UTF-16‘. Sie haben ziemlich sicher ‚UTF-8 (ohne BOM)‘, und das gibt ein Problem mit Umlauten und anderen Sonderzeichen.

image

Vielen Dank für den Hinweis, ich habe am WE remote gearbeitet. Mittlerweile bin ich wieder an meinem Arbeitsplatz, da schaut das wieder schöner aus.

Allerdings muss ich die Voreinstellungen im Homeoffice anpassen :slight_smile:

Gruß
Wolfgang