0

Daten mit Script importieren

Hallo. Ist es möglich Daten aus einer CSV Datei per Script automatisch zu importieren ?

11 Antworten

null
    • Support
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo, 

    momentan ist das noch nicht möglich. Es gäbe die Möglichkeit, das an einem der Trigger oder über eine Schaltfläche zu realisieren. Wir haben diese Funktion schon auf unsere Liste der Weiterentwicklungen aufgenommen.

    Gruß, Jörg

    • Pyromixer.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Wie sieht es mit SAP aus? Ich habe keine Ahnung von SAP aber einige meiner Auftraggeber arbeiten - leider - damit. Wenn ich so ungefähr wüsste wie man eine Datenübertragung von SAP zu Ninox und andersherum realisieren könnte, könnte ich mal sachte Gespräche anstossen....

    • Gunther.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    SAP: kann Daten als .CSV exportieren.

    • Robert_Kuntz
    • vor 6 Jahren
    • Gemeldet - anzeigen

    kann man denn die feldzuordnungen in einem script festlegen um diese nicht immer auswählen zu müssen ?

    • Gunther.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Wenn man in der Ninoxtabelle die gleichen Feldnamen verwendet, erfolgt die Zuordnung automatsich. 

    • Pyromixer.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Günther: Ich meinte eher ein "on-the-fly" Übertragung von und zu SAP. Die Daten sollten möglichst auf Knopfdruck mit dem SAP synchronisiert werden. Und es müssten ja auch PDFs und Fotos etc. übertragen werden.

    Oder ähnlich wenigstens wie hier schon gewünscht: Dass man mit einem Script festlegen kann wie die Feldzuordnungen auszusehen haben. Dass die andere (SAP) Parteien genau die selben Feldnamen wie man selber verwendet ist eher nicht so. Es wird am Ende das Selbe gemeint aber jeder nennt das Kind anders.

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    SAP ferfügt über REST Web Services.  Theoretisch kann man für Ninox ein API bauen im die Datensätze  "per Knopfdruck" zwischen zwei Systemen zu synchronisieren. Praktisch bedeutet es aber, dass dein Kunde u.U. mehrere Hundert Euro bei externen Dienstleister in die Programmierung investieren muss. In diesem Fall sollte es für den Kunden mehr Nutzen bringen als für dich. Und mit Fotos und PDFs wird es schwierig. Soweit mir bekannt, kann Ninox keine Dateien per REST austauschen.

    Leo

    • Gunther.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    genau, bis zu: €15,000 PER MONTH*

    • Pyromixer.1
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Dann müssen sie weiterhin alles per Hand abtippen oder rauskopieren was ich ihnen schicke. Danke für die Informationen. Wollte halt mal wissen was in diesen Fällen so möglich wäre.

    Ich weiss z.B. dass eines dieser Unternehmen seine eigenen Leute mit einem "Field Service Tool" draussen agieren lässt, dass mit dem SAP verbunden ist bzw. sich damit (per Button und nur bei VPN Verbindung zu den Servern des Unternehmens) synchronisiert. Dauert schrecklich lang, öfter mal gehts gar nicht und hin- und wieder sind sogar Daten im Nirwana verloren gegangen. Hierbei werden auch PDF mit übertragen. Fotos werden von dem Tool intern zu einem PDF gewandelt.

    Dieses Tool hat aber, so wie es nun ist, auch keine Import- Exportfunktionen. Aber evtl. liesse sich hier leichter ansetzen als bei SAP direkt wo jede kleinste Änderung ja schon gleich einen Tausender kostet.

    • Carsten_Losch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    @NINOX support, gibt es hier nach 2,5 Jahren eine Lösung? Mir würde ein script reichen, um über ein Button eine CSV Datei zu importieren... 

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Carsten,

    ich glaube nicht, dass Ninox Support dir hier eine Antwort schuldig ist. Eine csv-Datei kann man ohne Probleme per script importieren. Allerdings kann man dafür nichts universelles schreiben. Grund dafür sind keine festdefiníerten Regeln für csv-Aufbau. Jeder Anbieter baut seine csv anders aus, deswegen ist die Anbindung einer Datei immer individuell. Am besten sucht man sich einen Ninox-Partner aus und lässt den Import einrichtet. Wenn man sich doch selbst ran traut, hier eine globale Funktion fürs Umwandeln einer csv in JSON:
    ---
    function csvToJSON(CSV : text,TR : text) do
    "
    //Funktion csvToJSON wandelt eine csv-Datei in einen JSON-Array. TR ist ein Spaltenseparator (in der Regel sind es Komma oder Semikolon. Die Erste Spalte muss die Spaltenüberschriften enthalten. Als Ergebnis bekommt man einen Array mit benannten Objekten pro Zeile [{'name1':'string1', 'name2': Zahl1},{{'name1':'string2', 'name2': Zahl2}]
    ";
    function getQuot(my : text) do
    "
    //Funktion getQout prüft ob es beim Eintrag um einen string oder eine Zahl hadelt und setzt die Texte für das Objekt in Anführungszeichen
    ";
    if testx(my, "^-?\d+(\.\d+)?$") then
    my
    else
    if testx(my, ---
    ^".+"$
    ---) then
    my
    else
    """" + my + """"
    end
    end
    end;
    function getRegex(TR : text) do
    "
    //Funktion getRegex stellt einen Separator zum Splitten der CSV in einen Array bereit
    ";
    ---
    { TR }(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)
    ---
    end;
    "
    //Splitten der Zeilen
    ";
    let myARR := splitx(CSV, "\r\n?|\n");
    "
    //Festlegen Spaltenüberschriften
    ";
    let myHeaderStr := first(myARR);
    "
    //Festlegen Body
    ";
    let myBody := slice(myARR, 1, cnt(myARR));
    let myHeaderArr := splitx(myHeaderStr, getRegex(TR));
    "
    //Schreiben den JSON Object (eigentlich Array mit Objekten)/
    ";
    let myObj := for i in myBody do
    let myBodyArr := splitx(i, getRegex(TR));
    parseJSON("{" + concat(for j in range(cnt(myHeaderArr)) do
    if item(myBodyArr, j) then
    getQuot(item(myHeaderArr, j)) + ":" + getQuot(item(myBodyArr, j))
    end
    end) + "}")
    end;
    myObj
    end
    ---

    Die Funktion kann normal strukturierten csv Dateien mit Kopfzeile in einen JSON Array umwandeln. Danach muss man natürlich JSON mit Punktnotation bearbeiten und die Daten mit einer Schleife in die Tabelle speichern. 
    Ich habe die Funktion für meine Zwecke gebastelt und bis jetzt funktioniert alles Problemlos. Kann aber nicht garantieren dass hier alle Fälle abgedekt sind. Habe schon CSV Dateien gesehen wo z.B. Die Zeilenseparator auch innerhalb der Splaplte genutzt wird (Passiert oft wenn man versucht formatierte Excel Reports als CSV auszugeben).

     

    Leo