ACSD-47027: atualização de GraphQL de B2B de consulta lenta CompanyRole

O patch ACSD-47027 resolve o problema em que a atualização de consulta B2B CompanyRole GraphQL lenta não funciona como esperado. Este patch está disponível quando o Quality Patches Tool (QPT) 1.1.23 está instalado. A ID do patch é ACSD-47027. Observe que o problema está programado para ser corrigido no Adobe Commerce 2.4.6.

Produtos e versões afetados

O patch foi criado para a versão do Adobe Commerce:

  • Adobe Commerce (todos os métodos de implantação) 2.4.2-p1

Compatível com as versões do Adobe Commerce:

  • Adobe Commerce (todos os métodos de implantação) 2.4.2 - 2.4.5-p1
NOTE
O patch pode se tornar aplicável a outras versões com as novas versões do Quality Patches Tool. Para verificar se o patch é compatível com a sua versão do Adobe Commerce, atualize o pacote magento/quality-patches para a versão mais recente e verifique a compatibilidade na Quality Patches Tool: página Procurar patches. Use a ID do patch como palavra-chave de pesquisa para localizar o patch.

Problema

A atualização de consulta B2B CompanyRole GraphQL lenta não funciona como esperado.

Pré-requisitos:

Instale o módulo B2B.

Etapas a serem reproduzidas:

  1. No Administrador do Adobe Commerce, vá para Stores > Settings > Configurations > B2B Features e defina Enable Company como Sim.

  2. Acesse o front-end e crie uma empresa.

  3. Depois de fazer logon como usuário da empresa, vá para My Account > Roles and Permissions e adicione uma nova função.

  4. Habilitar log de consultas dev usando bin/magento dev:que:enab.

  5. Agora envie a solicitação GraphQL abaixo (a ID é a ID de função codificada base64):

    code language-none
    
    mutation {
    updateCompanyRole(
       input: {
          id: "Mg=="
          permissions: [
          "Magento_Company::view"
          "Magento_Company::view_account"
          "Magento_Company::user_management"
          "Magento_Company::roles_view"
         ]
       }
     ) {
       role {
          id
    
      name
    
      permissions {
      id
    
      text
    
      children {
         id
    
         text
    
         children {
            id
    
            text
          }
        }
      }
    }
    
  6. Verifique o log de consulta.

  7. Você pode ver que a consulta acima é executada. Esta consulta é executada em app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources.

Resultados esperados:

O app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources precisa ser otimizado para evitar o carregamento de todos os dados disponíveis na tabela de BD company_permissions.

Resultados reais:

O Adobe Commerce executa uma consulta sem nenhum filtro. Quando há um grande número de registros, leva muito tempo para o Adobe Commerce preparar a coleta de dados.

Aplicar o patch

Para aplicar patches individuais, use os links a seguir, dependendo do método de implantação:

Leitura relacionada

Para saber mais sobre Quality Patches Tool, consulte:

Para obter informações sobre outros patches disponíveis no QPT, consulte Quality Patches Tool: Pesquisar patches no guia Quality Patches Tool.

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3