Pim-community-dev: Massenbearbeitung - Aktualisiert um

Erstellt am 16. Juni 2016  ·  11Kommentare  ·  Quelle: akeneo/pim-community-dev

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

bug to reproduce

Hilfreichster Kommentar

Imo. kann geschlossen werden. Meinungen?

Alle 11 Kommentare

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:

  • Hier ist das aktualisierte Stammfeld in Ordnung (https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L87).
  • und in den normalisierten Daten wird der Produktobjektspeicher normalisiert (https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer) .php # L99)

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

lpxavi picture lpxavi  ·  3Kommentare

gotgelf picture gotgelf  ·  5Kommentare

wakqasahmed picture wakqasahmed  ·  4Kommentare

ronthedrummer picture ronthedrummer  ·  3Kommentare

grabelle picture grabelle  ·  3Kommentare