Beantwortet

Lagerzahlen per CSV-Importerskript aktualisieren


Hallo zusammen,

wir möchten unsere Lagerzahlen per CSV automatisiert aktualisieren.

Per Import / Export-Zentrale besteht die Möglichkeit die Lagerzahlen per CSV zu überschreiben, das habe ich auch schon hinbekommen, jedoch muss der Import jedes mal händisch angestoßen werden.

Beispiel CSV header:nummer, lager_menge_total, lager_platz

Genau diesen Vorgang möchte ich mit einem CSV-Importer Skript verwirklichen, diesen können wir dann per Cron Job in regelmäßigen Abständen laufen lassen.

Anhand dieses Artikels habe ich einen Importer geschrieben:URL: https://community.xentral.com/hc/de/articles/360017437459-Erstellung-eines-CSV-Importers

Folgede Schritte soll das Skript dabei durchlaufen:(v) Download JSON mit Lagerzahlen (läuft bereits)(v) Konvertierung in CSV (läuft bereits)(v) Auslesen der CSV (läuft bereits)(x) Aktualisierung der Lagerzahlen (keine Addition / Subtraktion, sondern überschreiben -> läuft nicht)

Ich habe leider nichts passendes in der Doku oder in der Community dazu finden können. Nun zu meinen Fragen:- Über welche ERP Funktion kann ich die Lagerzahlen / Lagerplätze ansprechen?- Über InsertUpdateArtikel funktioniert das ja nicht - gibt es hierzu eine eigene Funktion, wie AddVerkaufspreis oder CreateDatei? Die Import/Export Zentrale greift womöglich auch auch diese Funktion zu?- Unter https://community.xentral.com/hc/de/articles/360017379440-Wichtige-Funktionen schein nur ein kleiner Teil der Funktionen dokumentiert zu sein und das auch nicht wirklich umfänglich. Wie komme ich an die gesamte Dokumentation der ERP Funktionen?- Ich könnte womöglich direkt in die DB-Tabelle "lager_zahlen_inhalt" schreiben aber das würde ich gerne vermeiden. Welche (negativen) Auswirkungen könnte ein direktes Schreiben in die DB haben?

Vielen Dank im Voraus und schöne GrüßeMichael

icon

Beste Antwort von Daniel Schmidtchen 30 June 2021, 11:51

Original anzeigen

6 Antworten

Benutzerebene 7
Abzeichen +5

Mit dem Übertragen-Modul lässt sich der Import von Lagerzahlen automatisieren, funktioniert recht zuverlässig. 

https://community.xentral.com/hc/de/articles/360016738020-%C3%9Cbertragungen-CSV-XML-EDI-PDF-#toc-12

 

Hi Daniel,

vielen Dank für deine Antwort und den Tipp. Nach anfänglichen Anlaufschwierigkeiten werden die Lagerzahlen mit dem Übertragen-Modul aktualisiert und es scheint tatsächlich ganz gut zu funktionieren.

Dennoch stellt sich mir immer noch die Frage, wo ich eine Art Entwicklerdoku zu den wichtigsten Klassen und Funktionen finde. Denn das hier ist scheinbar nicht ganz vollständig:

https://community.xentral.com/hc/de/articles/360017379440-Wichtige-Funktionen

 

Man findet hier und da Beiträge in der Community, wo Funktionen beschrieben und verwendet werden, die nicht unter "Wichtige Funktionen" zu finden sind, z.B. unter https://community.xentral.com/hc/de/articles/360017437599-Bilderimport

 

Oder ein weiteres einfaches Beispiel: LogFile() funktioniert gar nicht

https://community.xentral.com/hc/de/articles/360017379440-Wichtige-Funktionen#toc-16

 

Hast du einen Tipp wo ich mehr, bzw. zusammengefasste Infos zu Klassen / Funktionen - also schlicht und ergreifend eine Dokumentation - finden kann? Da der Quellcode der Klassen verschlüsselt ist, kann ich nicht einfach dort nachsehen :-(

Mit dieser Information kann ich leider auch nichts anfangen:

https://community.xentral.com/hc/de/articles/360017379440-Wichtige-Funktionen#toc-44

 

Vielen Dank und schöne Grüße

Michael

Benutzerebene 7
Abzeichen +2

Hallo @Michael Wasko,

vielen Dank für deinen Beitrag in unserer Community! Dein letzter Kommentar zeigt mir, dass wir unser Helpcenter aktualisieren und ergänzen müssen. Ich nehme dies entsprechend als Feedback mit und veranlasse entsprechende Überarbeitung.

Sofern dir nicht bereits die Community, im speziellen Daniel dabei hilft, werde ich natürlich ebenso schauen, Antworten auf deine Fragen zu haben.

Viele Grüße,

Matthias vom xentral Customer Success Team

Benutzerebene 7
Abzeichen +5

@Michael Wasko Moin, leider habe ich auch keine anderen Quellen als die Beiträge / Doku hier. Für die REST API gibt es noch eine Doku direkt im Installationsverzeichnis. Wie aktuell und vollständig kann ich leider nicht beurteilen. 

Beste Grüße,Daniel

Benutzerebene 7
Abzeichen +2

Nochmals hallo @Michael Wasko,

bist du dir sicher, dass LogFile() gar nicht funktioniert? Bekommst du einen Fehler angezeigt? Wenn ja, welchen? Gerne können wir dazu ein Ticket aufmachen und uns das genauer ansehen.

By the way: Kennst du schon unser Entwickler-Handbuch? Wie geschrieben, sind wir gerade dabei, unsere Handbücher zu überarbeiten, aber dort solltest du eigentlich alle Informationen finden.

Ich freue mich auf deine kurze Rückmeldung.

Vielen Dank im Voraus und viele Grüße,

Matthias vom xentral Customer Success Team

Hallo zusammen,

danke für euer Feedback 🙂 Ich habe LogFile() gerade nochmal getestet.

 

Ausschnitt aus dem Quellcode:

...if(empty($artikelid)) { 
        $this->app->erp->LogFile("Fehler: Keine Artikel-Id zur Artikelnummer vorhanden"); // Error-Log-Test
        echo "ERROR: Keine Artikel-Id zur Artikelnummer " .$artikelnummer. " vorhanden\r\n";
        return false;....Error-Log dazu:[07-Jul-2021 13:13:40 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined method app_t::loadModule() in /<PFAD ERSETZT>/www/lib/class.erpapi.php:5719Stack trace:#0 /<PFAD ERSETZT>/www/lib/class.erpapi.php(28203): erpAPI->LoadModul('logfile')#1 /<PFAD ERSETZT>/importer/importerExample.php(139): erpAPI->LogFile('Fehler: Keine A...')#2 /<PFAD ERSETZT>/importer/importerExample.php(105): CSVImport->verarbeite(Array)#3 /<PFAD ERSETZT>/importer/importerExample.php(77): CSVImport->read()#4 {main}thrown in /<PFAD ERSETZT>/www/lib/class.erpapi.php on line 5719Anmerkung:
Paar Zeilen weiter geht dieser Funktionsaufruf ohne Probleme durch:
$artikelid = $this->app->erp->InsertUpdateArtikel($data);
also gehe ich davon aus dass es am include_once nicht liegen kann:
include_once("../conf/main.conf.php");
include_once("../phpwf/plugins/class.mysql.php");
include_once("../phpwf/plugins/class.string.php");
include_once("../phpwf/plugins/class.user.php");
include_once("../www/lib/class.erpapi.php");Kann sein, dass das Problem vor der Tastatur sitzt? ;-)Und ja, ich kenne das Entwickler-Handbuch, leider vermisse ich da sehr viele Informationen zu Klassen + Funktionen + Übergabeparametern usw. Des weiteren sind die Infos, wenn sie mal in Beiträgen auffindbar sind, sehr über die einzelnen Beiträge verstreut und auch wirklich kaum dokumentiert.
Wäre echt cool, mal alles an einem Ort zu finden. Vielen Dank nochmal und schöne Grüße aus IngolstadtMichael

Antworten