Erro de processamento do Sistema Magento Order Management (OMS) para Adobe Commerce
Este artigo fornece uma solução para o problema que ocorre quando você recebe um erro getMode()
na CLI que executa o bin/magento oms:messages:process
no OMS (Magento Order Management System) para Adobe Commerce.
Produtos e versões afetados
Esse erro ocorre ao usar o Conector do MCOM versões 3.1.1 e 3.2.0. É resolvido no Conector MCOM 3.3.0. Não é específico de uma versão MDC ou MOM.
Problema
Ao executar o seguinte comando na CLI:
bin/magento oms:messages:process
Uma mensagem de erro semelhante à seguinte é exibida na CLI:
<project-id>@<project-id>:~$ php bin/magento oms:messages:process
Processing messages...
PHP Fatal error:Uncaught Error: Call to a member function getMode()
on null in /app/<project-id>/vendor/magento/module-inventory-message-bus/Handler/OnAggregateStockUpdatedSubscriber.php:64
Stack trace:
#0 [internal function]: Magento\InventoryMessageBus\Handler\OnAggregateStockUpdatedSubscriber->onUpdated(Object(Magento\InventoryMessageBus\Model\Event\OnAggregateStockUpdated))
#1 /app/<project-id>/vendor/magento/module-service-bus/Message/SingleMessageProcessor.php(81):
call_user_func(Array, Object(Magento\InventoryMessageBus\Model\Event\OnAggregateStockUpdated))
#2 [internal function]: Magento\ServiceBus\Message\SingleMessageProcessor->Magento\ServiceBus\Message\\{closure}(Array)
#3 /app/<project-id>/vendor/magento/module-service-bus/Message/SingleMessageProcessor.php(86):
array_map(Object(Closure), Array)
#4 /app/<project-id>/vendor/magento/module-service-bus/Message/Processor.php(110):
Magento\ServiceBus\Message\SingleMessageProcessor->process(Object(Magento\CommonMessageBus\Message\Message))
#5 /app/t in /app/<project-id>/vendor/magento/module-inventory-message-bus/Handler/OnAggregateStockUpdatedSubscriber.php
on line 64
Causa
Â
Isso ocorre quando o Conector tenta processar magento.inventory.source_management
mensagens. O Conector tenta processar essas mensagens como se elas fossem uma mensagem magento.inventory.source_stock_management.update
que requer um valor de modo. O erro ocorre porque não há modo nas mensagens magento.inventory.source_mangement
.
Solução
Para resolver o problema, execute a seguinte instrução SQL na CLI, que exclui todos os registros da tabela mcom_api_messages
:
delete from mcom_api_messages;
Leitura relacionada
- Documentação do OMS Tutorial de Instalação do Conector OMS
- Práticas recomendadas para modificar tabelas de banco de dados no Manual de implementação do Commerce