Im selben Datensatz Feldinhalt aus Import-Feld entweder in Feld einer verknüpften Tabelle schreiben oder nur Verknüpfung mit vorhandenem Inhalt herstellen
Beispiel:
Der Datensatz besteht aus den Feldern:
Nr | Feld_A_importiert | Feld_A_verknüpft | Feld_B_iportiert | Feld_B_verknüpft
1 | Inhalt_Feld_A | noch leer und unverknüpft
=> Im Feld_A_verknüpft (bzw. auch B_verknüpft) soll jeder Wert nur einmal vorkommen
Wie muss ich die Massendatenänderung machen?
5 Antworten
-
Hallo,
kannst du das bitte mal etwas genauer beschreiben oder - noch besser - die Frage in unserem Webinar zur Sprache bringen?
Vielen Dank.
Für das Webinar, das wöchentlich mittwochs stattfindet, können Sie sich über den folgenden Link anmelden:
https://zoom.us/webinar/register/WN_Asq34-biQxGS93h03BmyfQ
Gruß, Jörg
-
Das hatte ich mir vorgenommen, schaffe es aber nicht. Darum versuch ich eine weitere Erklärung des Ziels.
Nach dem Import Tabelle 1:
Nr | Feld_A_importiert | Tab_2/Feld_A_verknüpft | Feld_B_importiert | Tab_3/Feld_B_verknüpft
1 | Inhalt_Feld_A | unverknüpft | Inhalt_Feld_B | unverknüpft
Nach der Massendatenänderung:
Nr | Feld_A_importiert | Tab_2/Feld_A_verknüpft | Feld_B_importiert | Tab_3/Feld_B_verknüpft
1 | Inhalt_Feld_A | verknüpft_zu_Tab_2_ | Inhalt_Feld_B | verknüpft_zu_Tab_3_
| wie_Inhalt_Feld_A | | wie_Inhalt_Feld_B
=> In Tabelle 2 Feld_A_verknüpft (bzw. Tabelle 3 Feld_B_verknüpft) soll jeder Wert nur einmal vorkommen
=> Falls der Wert wie Inhalt_Feld_A (bzw. wie_Inhalt_Feld_B) in Tabelle 2 bzw. 3 nicht vorhanden ist, dann soll in der verknüpften Tabelle ein neuer Datensatz mit dem Wert so erstellt werden, dass alle weiteren Felder des Datensatzes leer bleiben.
-
Buchen Sie doch einen Termin für eine Screensharing-Session mit mir unter diesem Link:
https://calendly.com/birger-hansen/15minBirger
-
Ich versuche mich nochmal an einer besseren Erklärung:
Stell dir vor, ich habe als Ergebnis 2 Arten von Tabellen, deren Datensätze entweder nur:
a) aus dem Feld/Spalte "Datensatznummer" und einem Feld/Spalte "Value" oder
b) aus dem Feld/Spalte "Datensatznummer" und Feldern/Spalten verknüpfter Tabellen wie a) bestehtIn Tabellen nach a) kommt kein Wert doppelt vor.
(Bitte lasst das mal so ohne Kommentar stehen.)
Ich habe eine Import-Tabelle mit den Spalten "A_imp" und "B_imp" und "C_imp".
Daher lege ich in Ninox die Tabellen nach a) "Tabelle_A" und "Tabelle_B" und "Tabelle_C" mit je einem Feld/Spalte in der Art "Tab_A_Value", "Tab_B_Value" und "Tab_C_Value" an.
Für die zukünftige Tabelle nach b) lege ich die Tabelle_ABC an mit den Feldern/Spalten A_imp, B_imp, C_imp an und füge Verknüpfungsfelder zu den o.g. Tabellen nach a) "Tabelle_A" und "Tabelle_B" und "Tabelle_C" hinzu.
Ich importiere die Import-Tabelle in die zukünftige Tabelle nach b) und ordne die Spalten A_imp:A_imp, B_imp:B_imp und C_imp:C_imp zu.
In jedem Datensatz der zukünftigen Tabelle nach b) Tabelle_ABC sind die Verknüpfungsfelder zu den eingebundenen o.g. Tabellen nach a) mit ihren Felder/Spalten "Tab_A_Value", "Tab_B_Value" und "Tab_C_Value" nun noch unverknüpft.
Die von mir angefragte Funktion sucht für den abzuarbeitenden Datensatz der Tabelle_ABC ob der Wert des Feldes/Spalte A_imp in der verknüpften Tabelle Tabelle_A im Feld/Spalte "Tab_A_Value" generell vorhanden ist. Wenn JA, dann legt die Funktion eine Verknüpfung mit diesem Datensatz an und wenn NEIN, dann erzeugt die Funktion einen neuen Datensatz in der verknüpften Tabelle Tabelle_A mit diesem Wert und legt anschließend die Verknüpfung mit dem neuen Datensatz an. Und dann so weiter mit Feld/Spalte B_imp und der verknüpften Tabelle Tabelle_B und weiter mit Feld/Spalte C_imp und der verknüpften Tabelle Tabelle_C. Dann folgt der nächste abzuarbeitende Datensatz.
Danke sehr fürs bis hierher lesen ;-)
-
Ich würde folgendes vorschlagen:
---
for i in select Tabelle_ABC where not Tabelle_A or not Tabelle_B or not Tabelle_C do
if i.A_imp then
let myA := i.A_imp;
let myLink_A := first(select Tabelle_A where Value = myA);
if myLink_A then
i.(Tabelle_A := myLink_A)
else
let new_A := (create Tabelle_A);
new_A.(Value := myA);
i.(Tabelle_A := new_A)
end
end;
if i.B_imp then
let myB := i.B_imp;
let myLink_B := first(select Tabelle_B where Value = myB);
if myLink_B then
i.(Tabelle_B := myLink_B)
else
let new_B := (create Tabelle_B);
new_B.(Value := myB);
i.(Tabelle_B := new_B)
end
end;
if i.C_imp then
let myC := i.C_imp;
let myLink_C := first(select Tabelle_C where Value = myC);
if myLink_C then
i.(Tabelle_C := myLink_C)
else
let new_C := (create Tabelle_C);
new_C.(Value := myC);
i.(Tabelle_C := new_C)
end
end
end
---
Dabei nimmt die Funktion nur die nicht verknüpften Datensätze und wenn in dem Datensatz das jweilige Feld ..._imp nicht leer ist dann wird es geprüft und gemacht.
Ich glaube es ist wichtig, damit du die Werte einfach per Massendatenänderung zu der Tabelle_ABC einfügst. Die Formel kannst du in einem Button schreiben oder in der Console.
Leo
Content aside
- vor 5 JahrenZuletzt aktiv
- 5Antworten
- 2592Ansichten