0

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

null
    • Team Lead Customer Service
    • joerg
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • AndreasDD
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Buchen Sie doch einen Termin für eine Screensharing-Session mit mir unter diesem Link:
    https://calendly.com/birger-hansen/15min

    Birger

    • carolajuettemann
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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) besteht

    In 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 ;-)

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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
  • 2591Ansichten