ACSD-47027:緩慢查詢B2B CompanyRole GraphQL更新

ACSD-47027修補程式解決緩慢查詢B2B CompanyRole GraphQL更新無法如預期運作的問題。 安裝Quality Patches Tool (QPT) 1.1.23時,即可使用此修補程式。 修補程式ID為ACSD-47027。 請注意,此問題已排程在Adobe Commerce 2.4.6中修正。

受影響的產品和版本

已為Adobe Commerce版本建立修補程式:

  • Adobe Commerce (所有部署方法) 2.4.2-p1

與Adobe Commerce版本相容:

  • Adobe Commerce (所有部署方法) 2.4.2 - 2.4.5-p1
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。

問題

慢速查詢B2B CompanyRole GraphQL更新未如預期運作。

必要條件

安裝B2B模組。

要再現的步驟

  1. 在Adobe Commerce Admin中,移至​ Stores > Settings > Configurations > B2B Features ​並將​ Enable Company ​設為​

  2. 前往前端並建立公司。

  3. 以公司使用者身分登入後,請前往​ My Account > Roles and Permissions ​並新增角色。

  4. 使用bin/magento dev:que:enab啟用dev查詢記錄。

  5. 現在傳送以下GraphQL個請求(ID為base64編碼角色ID):

    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. 檢查查詢記錄。

  7. 您可以看到上述查詢已執行。 此查詢會在app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources中執行。

預期結果

app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources需要最佳化,以避免載入​ company_permissions DB資料表中所有可用的資料。

實際結果

Adobe Commerce會執行查詢,而不使用任何篩選器。 當有大量記錄時,Adobe Commerce會花很長時間準備資料收集。

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

如需QPT中其他修補程式的詳細資訊,請參閱Quality Patches Tool指南中的Quality Patches Tool:搜尋修補程式

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