Fehler #237
Beim CSV-Import von KundInnen findet bei den benutzerdefinierten Variablen keine Aktualisierung bestehender Einträge statt
100%
Beschreibung
Getestet mit 3.4.1 stable und unstable vom 2.4.2017
Wenn ich bei einem CVS-Import von Kundendaten bestehende Kundeneinträge aktualisieren möchte, so werden bei bestehenden KundInnen die Werte der fest in kivitendo vorhandenen Variablen korrekt aktualisiert, während alle benutzerdefinierten Variablen nicht aktualisiert werden.
Bei der Vorschau und bei der Anzeige des Import-Ergebnisses werden die neuen Werte für die benutzerdefinierten Variablen hingegen korrekt angezeigt.
(Beim CSV-Import von Waren klappt in der aktuellen unstable hingegen das Aktualisieren von benutzerdefinierten Variablen einwandfrei)
Dateien
Unteraufgaben
Zugehörige Revisionen
CSV-Import: CustomerVender benutzerdefinierte Variable aktualisieren
handle_cvars erst aufrufen, wenn das zu speichernde Objekt bekannt ist. Das
betrifft den Fall, wenn vorhandene Objekte aktualisiert werden sollen.
behebt #237 (redmine)
Historie
Von Andreas Rudin vor mehr als 7 Jahren aktualisiert
Habe gerade noch einen Kommentar in der devel-mailingliste dazu geschrieben mit Hinweisen aus einer Besprechung im IRC, wo der Fehler liegen könnte (SL/Controller/CsvImport/Base.pm Zeilen 314ff).
Ausserdem gibt es dazu dreifachen Code in der Base.pm, der BaseMulti.pm und der Part.pm, der möglichst zusammengefasst werden sollte.
Von Martin Helmling vor mehr als 7 Jahren aktualisiert
- Status wurde von Neu zu In Bearbeitung geändert
- Zugewiesen an wurde auf Martin Helmling gesetzt
Bin gerade am Fehler reproduzieren und auf der Suche
Von Martin Helmling vor mehr als 7 Jahren aktualisiert
- Abgabedatum wurde auf 07.04.2017 gesetzt
- Status wurde von In Bearbeitung zu Gelöst geändert
- % erledigt wurde von 0 zu 100 geändert
- Geschätzter Aufwand wurde auf 2.00 h gesetzt
Lösung:
Die Methode handle_cvars() wird nochmals aufgerufen, nachdem "object_to_save" gesetzt wurde
und anschließen die cvars aus dem "object" in "object_to_save" übernommen.
Hinweis:
Eine sauberere Lösung wäre die Methode handle_cvars nur einmal aufzurufen.
Da wäre aber ein Redesign über alle Methoden notwendig
fix in commit #a8628c6af
Von Andreas Rudin vor mehr als 7 Jahren aktualisiert
- Datei cvar_customer_import_vorschau_13042017.png cvar_customer_import_vorschau_13042017.png wurde hinzugefügt
- Datei cvar_customer_import_ergebnis_13042017.png cvar_customer_import_ergebnis_13042017.png wurde hinzugefügt
- Status wurde von Gelöst zu Feedback geändert
- Zugewiesen an wurde von Martin Helmling zu Bernd Bleßmann geändert
- % erledigt wurde von 100 zu 50 geändert
Test am 13.4.2017 mit dem Branch bug_cvar_import
Kundenimport:
Das Update der Stammdaten klappt, benutzerdefinierte Variablen werden aber nach wie vor nicht aktualisiert, obwohl diese sowohl in der Vorschau wie beim Import-Ergebnis korrekt aufgeführt werden.
Bei neuen KundInnen wird alles korrekt importiert: sowohl Stammdaten wie benutzerdefinierte Variablen.
Es gibt aber plötzlich ein ganz merkwürdiges neues Verhalten:
Die Kundennummer bestehender Kunden wird bei der Vorschau korrekt angezeigt. Beim Import-Ergebnis werden aber plötzlich neue Kundennummern vergeben und auch in den Nummernkreisen entsprechend hochgezählt. Effektiv werden aber keine neue Kunden mit diesen Nummern angelegt, sondern das Update der Stammdaten findet korrekt bei den bisher bereits vorhandenen Kunden statt.
(siehe angehängte Screenshots!)
Warenimport:
Hier klappt sowohl das Importieren von neuen Artikeln inkl. benutzerdefinierte Variablen, wie auch das Aktualisieren bestehender Artikel inkl. benutzerdefinierte Variablen
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
- Zugewiesen an
Bernd Bleßmannwurde gelöscht
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
Andreas Rudin schrieb:
Test am 13.4.2017 mit dem Branch bug_cvar_import
Kundenimport:
[...]
Es gibt aber plötzlich ein ganz merkwürdiges neues Verhalten:
Die Kundennummer bestehender Kunden wird bei der Vorschau korrekt angezeigt. Beim Import-Ergebnis werden aber plötzlich neue Kundennummern vergeben und auch in den Nummernkreisen entsprechend hochgezählt. Effektiv werden aber keine neue Kunden mit diesen Nummern angelegt, sondern das Update der Stammdaten findet korrekt bei den bisher bereits vorhandenen Kunden statt.
(siehe angehängte Screenshots!)
Das ist ein anderes Problem. Das passiert auch ohne meine Änderungen aus dem Branch bug_cvar_import und m.E. (kurzer Test) schon in der 3.4.1. Hierzu bitte nochmal ältere Versionen testen, evtl. bisecten und ein extra Ticket aufmachen.
Viele Grüße
Bernd
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
- % erledigt wurde von 50 zu 30 geändert
- Geschätzter Aufwand wurde von 2.00 h zu 16.00 h geändert
Andreas Rudin schrieb:
Test am 13.4.2017 mit dem Branch bug_cvar_import
Kundenimport:
Das Update der Stammdaten klappt, benutzerdefinierte Variablen werden aber nach wie vor nicht aktualisiert, obwohl diese sowohl in der Vorschau wie beim Import-Ergebnis korrekt aufgeführt werden.
Bei neuen KundInnen wird alles korrekt importiert: sowohl Stammdaten wie benutzerdefinierte Variablen.
Das kann ich nicht nachstellen - in meinen Test klappt das aktualisieren der CVars mit neuen Werten. Kannst Du bitte mal einen Test machen und folgendes bereitstellen:
- die Kundenliste (relavante Kunden) mit CVars vorher
- CSV-Datei
- CSV-Import-Einstellungen
- CSV-Import-Vorschau
- CSV-Import-Ergebnis
- die Kundenliste (relavante Kunden) mit CVars nachher
Viele Grüße
Bernd
Von Andreas Rudin vor mehr als 7 Jahren aktualisiert
- Zielversion wurde auf 3.5.1 gesetzt
Mit der aktuellen Version des Branch bug_cvar_import ist das Problem behoben.
Ich habe das mit verschiedenen Einstellungen getestet und jetzt werden beim csv-Import von benutzerdefinierten Variablen bereits vorhandene Einträge korrekt aktualisiert, sofern das beim Import so eingestellt ist.
Es gibt noch ein Problem mit den Kundenummern, das aber laut Bernd nicht direkt mit diesem Bug verknüpft ist. Ich habe dafür deshalb das separate Ticket #287 eröffnet.
Von mir aus kann der Branch bug_cvar_import nun in den master gemergt werden und damit dieses Ticket geschlossen werden.
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
- Status wurde von Feedback zu Gelöst geändert
- % erledigt wurde von 30 zu 100 geändert
Status geändert durch Changeset kivitendo-erp|commit:2f2beb02d9716054b13a389200ae81490b57d7ab.
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
- Abgabedatum wurde von 07.04.2017 zu 07.10.2017 geändert
- Status wurde von Gelöst zu In Bearbeitung geändert
- % erledigt wurde von 100 zu 40 geändert
- Geschätzter Aufwand wurde von 16.00 h zu 111.00 h geändert
Ist noch nicht gelöst - dadurch, dass ich den Test-Branch neu gepusht habe (mit einer commit-message, die einen Fix und den entsprechenden Text enthält), dachte redmine das aber ...
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
- Status wurde von In Bearbeitung zu Gelöst geändert
- % erledigt wurde von 40 zu 100 geändert
Status geändert durch Changeset kivitendo-erp|commit:65de12e39755641003ecb9aec6858b6db7f3c662.
Von Bernd Bleßmann vor mehr als 7 Jahren aktualisiert
- Status wurde von Gelöst zu In Bearbeitung geändert
- % erledigt wurde von 100 zu 80 geändert
Grr - nicht gelöst. Nur zum Testen wieder in den Test-Branch "bug_cvar_import" gepushed.
(Mach' ich da was falsch?)
Von Moritz Bunkus vor mehr als 7 Jahren aktualisiert
(Mach' ich da was falsch?)
Jein.
Der »ja«-Teil: Du nutzt das offizielle Repo für Feature-Branches. Machen wir momentan alle. Aber darauf ist github nicht ausgelegt, sondern auf das Modell, dass jeder Entwickler schlicht das offizielle Repo in github forkt, dann Feature-Branches in seinen eigenen Fork pusht und dann Pull-Requests ans offizielle Repo stellt. Somit würden die Commits und damit die Commit-Meldungen erst dann im offiziellen Repo auftauchen, wenn der PR gemerget wird.
Der »nein«-Teil: man müsste doch Redmine bestimmt konfigurieren können, dass es ausschließlich auf Commits im »master«-Branch reagiert. Das hab ich bei meinen eigenen Projekten immer so gemacht, auch das ehemalige kivitendo-Trac reagierte nur auf »master«-Commits.
Von Werner Hahn vor fast 6 Jahren aktualisiert
Hat sich hier was getan. Ist noch nicht im master. BDVs sind mir mal wieder um die Ohren geflogen.
Kann das in den master?
Von Cem Aydin vor fast 4 Jahren aktualisiert
Branch auf master ge-rebased, läuft durch.
Doppelte Einträge in der custom_vars tabelle wurden durch dbupgrade behoben.
Import scheint soweit ich sehe zu funktionieren, cvars und Einträge werden aktualisiert, für Waren und Kunden getestet.
Von Bernd Bleßmann vor mehr als 3 Jahren aktualisiert
- Status wurde von In Bearbeitung zu Gelöst geändert
Status geändert durch Changeset kivitendo|1427d96a209258589277eb22433e9b5c37289fcf.
CSV-Import: CustomerVender benutzerdefinierte Variable aktualisieren
handle_cvars erst aufrufen, wenn das zu speichernde Objekt bekannt ist. Das
betrifft den Fall, wenn vorhandene Objekte aktualisiert werden sollen.
behebt #237 (redmine)