akeneo-pim-system-info_2016-06-16_14-41.txt
Wahrscheinlich dasselbe wie in https://github.com/akeneo/pim-community-dev/issues/2644 (das ohne Erklärung geschlossen wird)
Beim Hinzufügen von Werten zu Produktattributen über die Massenbearbeitung wird die Versionierung mit dem richtigen Zeitstempel aktualisiert, der aktualisierte Zeitstempel des Produkts jedoch nicht.
Dies kann durch Massenbearbeitung eines Produkts und Ausführen von php app/console --env=prod pim:product:query '[{"field":"updated","operator":">= WITH TIME","value":"YYYY-MM-DD HH:mm:ss"}]'
überprüft werden
Dies hat erhebliche Auswirkungen auf einige Exportprofile, die die Option fromLastExecution
EnhancedConnectors verwenden.
Hinweis. MongoDB wird verwendet -> Bei der Massenbearbeitung wird \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
Dies hat möglicherweise damit zu tun, dass \Pim\Bundle\CatalogBundle\EventSubscriber\TimestampableSubscriber
nur Doctrines prePersist
und preUpdate
Ereignisse abhört. Das \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
sendet diese Ereignisse überhaupt nicht aus.
Nach der Prüfung werden die Daten in \Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize
wenn saveAll
. Immer noch ein Rätsel, warum die EnhancedConnectors fromLastExecution
diese Produkte nicht berücksichtigen. Gibt es irgendwo ein Zeitzonen-Missmatch?
Es scheint, dass die normalizedData.updated
der MondoDB nicht aktualisiert werden ...
Hallo Matias,
Was bedeutet "Beim Hinzufügen von Werten zu Produktattributen"? Haben Sie versucht, einen gemeinsamen Produktwert zu ändern? Ich habe versucht, es bei einer Neuinstallation zu reproduzieren, aber das Produktfeld updated_at
wurde gut aktualisiert.
In Ihren Systeminformationen gibt es nicht EnhancedConnectors
, normal?
Was bedeutet "Beim Hinzufügen von Werten zu Produktattributen"? Haben Sie versucht, einen gemeinsamen Produktwert zu ändern? Ich habe versucht, es bei einer Neuinstallation zu reproduzieren, aber das Produktfeld update_at wurde gut aktualisiert.
Ja, ändern Sie jedes Attribut so, dass das Produkt für Änderungen markiert ist, damit es erhalten bleibt.
In Ihren Systeminformationen gibt es keine EnhancedConnectors, normal?
Irrelevant
Bei Massenbearbeitungen (welche Methoden auch immer \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
aufrufen) wird Folgendes als \Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize
Da wir uns in der 1.4.x-Verzweigung befinden, sehen Sie, dass der _updated_-Wert der Produkte hier aktualisiert wird
https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L87
Abfragen über den Mongo-Handler richten sich jedoch gegen die Produkte normalizedData
und werden nicht mit den neuen Zeitstempeln created
und updated
(https://github.com/akeneo) aktualisiert /pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L99).
Um dieses Problem zu umgehen, hören wir uns das Ereignis akeneo.storage.pre_save_all
und aktualisieren dort die Zeitstempel der Produkte.
Relates / dupliziert von # 5006
@ aRn0D das ist keine Frage, es ist ein Fehler; gemäß # 5006 funktioniert im ORM-Modus aber nicht im ODM
Oben.
Ich habe diesen Fehler in unserer PIM-Instanz reproduziert.
Der Normalisierer aktualisiert das Feld "root", das im laufenden Betrieb aktualisiert wird, aktualisiert es jedoch nicht für das Produktobjekt. Also, wie @mathewrapid sagte:
Produktaktualisiertes Feld und normalizedData.updated sind immer nicht synchron. NormalizedData ist einen Schritt zu spät.
Ich denke, dass der Normalisierer niemals $data['updated'] = $this->mongoFactory->createMongoDate();
tun muss, wenn die Daten im Produktmodell festgelegt sind. Es ist ein Normalisierer, kein Updater.
Tatsache ist, dass das Produkt vor der Normalisierung aktualisiert werden muss (also aktualisiertes Feld).
+1
Hallo @mathewrapid , @jlestel , @bmarrot !
Zu Ihrer Information, dieses Problem (PIM-6038) wurde in den folgenden Versionen behoben:
Freundliche Grüße,
Imo. kann geschlossen werden. Meinungen?
Wie @nidup in https://github.com/akeneo/pim-community-dev/issues/4620#issuecomment -279428030 hervorhob, wurde dies in PIM-6038 behoben.
Hilfreichster Kommentar
Imo. kann geschlossen werden. Meinungen?