Verknüpfung von Ansprechpartner mit Aktion
Hallo Zusammen, ich versuche in einer CRM Datenbank einzelne Ansprechpartner, die beim Haken "Mailing" ein "Ja" gesetzt haben, mit einer Untertabelle "Aktionen" mit einer enstprechenden Aktion zu verknüpfen. Leider bekomme ich es nicht hin. Kann mir bitte jemand helfen?
let n := Nr;
let suche := Mailing = true;
let ergebnis := (select Ansprechpartner where suche = true);
for Name in ergebnis do
Aktionen.(Aktion := n)
end
9 Antworten
-
Hallo, ich verstehe nicht so recht, was genau da passieren soll. Es gibt mehrere Ansprechpartner und mehrere Aktionen? Und jeder Ansprechpartner, bei dem 'Mailing = true' ist, soll mit allen vorhandenen Aktionen verknüpft werden? Falls diese Interpretation richtig sein sollte, wäre dazu m. E. eine N:M-Verbindung erforderlich. Das heißt, man bräuchte eine dritte Hilfstabelle, z. B. 'AP-Aktionen', über welche man Ansprechpartner und Aktionen miteinander verknüpft.
Dann könnte bspw. ein Button-Script mit folgendem Code die Verknüpfungen herstellen:
for x in select Ansprechpartner where Mailing = true do
let myAP := x;
for y in select Aktionen do
let myAkt := y;
let newAkt := (create 'AP-Aktionen');
newAkt.(Ansprechpartner := x);
newAkt.(Aktionen := y)
end
end
Aber vielleicht liege ich mit meiner Interpretation auch völlig daneben.
-
Vielen Dank für die schnelle Hilfe. Sorry, schlecht formuliert. Ich möchte nur die aktuelle Aktion mit den Ansprechpartnern verknüpfen. Ich habe Ihre Lösung angepasst. In der Tabelle "Aktionen" habe ich einen Button mit folgendem Script:
for x in select Ansprechpartner where Mailing = true do
let myAP := Ansprechpartner.Name;
let myAkt := Aktion;
let newAkt := (create 'AP-Aktionen');
newAkt.(Ansprechpartner := myAP);
newAkt.(Aktionen := myAkt)
endIn die neuen Tabelle "AP-Aktionen" wird jetzt die aktuelle "Aktion" angezeigt, aber nicht der Ansprechpartner.Name.
Nehme ich die Variable x für myAP also:
for x in select Ansprechpartner where Mailing = true do
let myAP := x;
let myAkt := Aktion;
let newAkt := (create 'AP-Aktionen');
newAkt.(Ansprechpartner := x);
newAkt.(Aktionen := myAkt);
endwird in die Tabelle AP-Aktionen.Ansprechpartner "A1" und "A2" geschrieben. Was mache ich falsch??
Vielen Dank für ihre Hilfe im Voraus.
-
So, jetzt hab ich es:
for x in select Ansprechpartner where Mailing = true do
let myAP := x.Name;
let myAkt := Aktion;
let newAkt := (create 'AP-Aktionen');
newAkt.(Ansprechpartner := myAP);
newAkt.(Aktionen := myAkt)
end -
Ach so, das Script soll aus einem Datensatz der Tabelle 'Aktionen' heraus gestartet werden. Verstehe. Es wundert mich allerdings, dass es so funktioniert. Denn mit "myAP := x.Name" und "myAkt := Aktion" werden ja nur Textwerte eingelesen, keine IDs, über die normalerweise verknüpft wird. Deshalb hätte ich es wohl eher so versucht:
let myAkt := this;
for x in select Ansprechpartner where Mailing = true do
let newAkt := (create 'AP-Aktionen');
newAkt.(Ansprechpartner := x);
newAkt.(Aktionen := myAkt)
end
Aber wenn der Code tatsächlich so funktioniert wie gewünscht, dann gibt es natürlich keinen Grund, ihn zu ändern.
-
Guten Tag, vielen Dank für Ihre Zeit und ihre Hilfe. Sie haben natürlich vollkommen recht. Eine Verknüpfung findet mit meiner Lösung nicht statt. Ich habe Ihre Lösung jetzt getest. Hier das Ergebnis:
Beispiel:
Ansprechparter = A1
Aktion = [object Object]
Eine Verknüpfung zwischen Aktion und Ansprechpartner findet aber auch hier nicht statt. Vielen Dank für Ihre Hilfe!
-
Hallo, ich habe irgendwie immer noch keine genaue Vorstellung von Ziel, Problem und Lösung. Denn nach obiger Beschreibung hätten wir ja eine 1:N-Verknüpfung von Ansprechpartnern zu Aktionen. Das hieße, zu jeder Aktion ließe sich lediglich ein (in Zahlen: 1) Ansprechpartner verknüpfen. Es ist für mich nur schwer vorstellbar, dass das wirklich so gewollt ist.
Ich will natürlich niemandem was aufoktroyieren, und vielleicht reden wir ja nur aneinander vorbei, aber ich habe das Szenario mal auf Basis einer N:M-Verknüpfung nachgestellt, so wie es nach meinem Verständnis einen Sinn ergäbe, und das sieht folgendermaßen aus:
Und das ist der Code der Schaltfläche "Diese Aktion Ansprechpartnern zuordnen" im Formuar der Tabelle Aktionen (Screenshot Nr. 2):
let myAktion := this;
for x in select Ansprechpartner where Mailing = true do
let newAktion := (create AP_Aktionen);
newAktion.(Ansprechpartner := x);
newAktion.(Aktionen := myAktion)
end
-
Guten Abend,
genau so wie Sie es umgesetzt haben möchte ich es haben. Sitze jetzt schon wieder ne Stunde da und bekomme es nicht hin. Könnten Sie mir Ihr Beispiel zusenden? Wäre super. Vielen Dank für Ihre Hilfe.
Hier mein Ergebnis:
-
'n Abend. Ich habe die oben gezeigte Beispiel-Datenbank der Einfachheit halber zum Download in die Dropbox gelegt (die Datei ist nur wenige KB groß):
https://www.dropbox.com/s/vrdvf4wqfq0wszi/Mailingaktionen.ninox?dl=0
Wenn Fragen: Fragen! ;)
-
Guten Abend, Sie haben mir den Abend gerettet. Vielen Dank für Ihre Mühe!!!
Content aside
- vor 5 JahrenZuletzt aktiv
- 9Antworten
- 2751Ansichten