akeneo-pim-system-info_2016-06-16_14-41.txt
Provavelmente o mesmo que em https://github.com/akeneo/pim-community-dev/issues/2644 (que está fechado sem explicação)
Ao adicionar valores aos atributos do produto por meio da edição em massa, o controle de versão é atualizado com o carimbo de data / hora correto, mas o carimbo de data / hora atualizado dos produtos não é.
Isso pode ser verificado editando em massa um produto e executando o php app/console --env=prod pim:product:query '[{"field":"updated","operator":">= WITH TIME","value":"YYYY-MM-DD HH:mm:ss"}]'
Isso tem um grande impacto em alguns perfis de exportação que usam a opção EnhancedConnectors fromLastExecution
.
Observação. MongoDB está em uso -> Edição em massa usará \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
Então, isso pode ter a ver com o fato de que \Pim\Bundle\CatalogBundle\EventSubscriber\TimestampableSubscriber
está apenas ouvindo Doctrines prePersist
e preUpdate
eventos. O \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
não emite esses eventos de forma alguma.
Depois de examiná-lo, as datas são criadas em \Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize
ao executar o saveAll
. Ainda é um mistério porque o EnhancedConnectors fromLastExecution
não leva em consideração esses produtos. Existe um erro de correspondência de fuso horário em algum lugar?
Parece que o normalizedData.updated
do MondoDB não é atualizado ...
Olá Matias,
O que significa "Ao adicionar valores aos atributos do produto"? Você tentou alterar o valor de um produto comum? Tentei reproduzi-lo em uma nova instalação, mas o campo do produto updated_at
foi bem atualizado.
Nas informações do seu sistema, não existe EnhancedConnectors
, normal?
O que significa "Ao adicionar valores aos atributos do produto"? Você tentou alterar o valor de um produto comum? Tentei reproduzi-lo em uma nova instalação, mas o campo do produto updated_at foi bem atualizado.
Sim, altere qualquer atributo para que o produto seja marcado para alterações, para assim ser persistido.
Nas informações do seu sistema, não há EnhancedConnectors, normal?
Irrelevante
Ao fazer edições em massa (sejam quais forem os métodos que chamarão \Pim\Bundle\CatalogBundle\Doctrine\MongoDBODM\Saver\ProductSaver::saveAll
) o seguinte será chamado de \Pim\Bundle\TransformBundle\Normalizer\MongoDB\ProductNormalizer::normalize
Como estamos no branch 1.4.x, veremos que o valor dos produtos _atualizado_ é atualizado aqui
https://github.com/akeneo/pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L87
Mas as consultas por meio do manipulador mongo são direcionadas aos produtos normalizedData
e não são atualizados com os novos carimbos de data / hora created
e updated
(https://github.com/akeneo /pim-community-dev/blob/v1.4.25/src/Pim/Bundle/TransformBundle/Normalizer/MongoDB/ProductNormalizer.php#L99).
Como solução alternativa, estamos ouvindo o evento akeneo.storage.pre_save_all
e atualizando os carimbos de data / hora dos produtos.
Relacionado / duplicado por # 5006
@ aRn0D isso não é uma pergunta, é um bug; conforme # 5006 funciona no modo ORM, mas não no ODM
Pra cima.
Reproduzi esse bug em nossa instância PIM.
O normalizador atualiza o campo "raiz" atualizado imediatamente, mas não o atualiza para o objeto do produto. Então, como @mathewrapid disse:
O campo do produto atualizado e normalizedData.updated estão sempre fora de sincronia. NormalizedData está um passo atrasado.
Acho que o normalizador nunca precisa fazer $data['updated'] = $this->mongoFactory->createMongoDate();
se os dados estiverem configurados no modelo do produto. É um normalizador, não um atualizador.
O fato é que o produto tem que ser atualizado (campo então atualizado) antes da normalização.
+1
Oi @mathewrapid, @jlestel, @bmarrot!
Para sua informação, este problema (PIM-6038) foi corrigido nas seguintes versões,
Atenciosamente,
Imo. pode ser fechado. Opiniões?
Como @nidup apontou em https://github.com/akeneo/pim-community-dev/issues/4620#issuecomment -279428030, isso foi corrigido no PIM-6038.
Comentários muito úteis
Imo. pode ser fechado. Opiniões?