[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}
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
magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。问题
慢速查询B2B CompanyRole GraphQL更新无法按预期工作。
先决条件:
安装B2B模块。
重现步骤:
-
在Adobe Commerce管理员中,转到 Stores > Settings > Configurations > B2B Features,并将 Enable Company 设置为 是。
-
前往前端,创建公司。
-
以公司用户身份登录后,转到 My Account > Roles and Permissions 并添加新角色。
-
使用dev启用
bin/magento dev:que:enab查询日志。 -
现在发送以下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 } } } } -
检查查询日志。
-
您可以看到上述查询已执行。 此查询在
app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources中执行。
预期的结果:
app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources需要优化,以避免加载 company_permissions 数据库表中所有可用的数据。
实际结果:
Adobe Commerce执行查询而不使用任何筛选器。 当记录数量很大时,Adobe Commerce需要大量时间来准备数据收集。
应用修补程序
要应用单独的修补程序,请根据您的部署方法使用以下链接:
- Adobe Commerce或Magento Open Source内部部署: Quality Patches Tool 指南中的>使用情况Quality Patches Tool。
- 云基础架构上的Adobe Commerce:云基础架构上的Commerce指南中的升级和修补程序>应用修补程序。
相关阅读
要了解有关Quality Patches Tool的更多信息,请参阅:
- Quality Patches Tool 已发布:支持知识库中用于自助提供高质量修补程序的新工具。
- 使用 Quality Patches Tool指南中的Quality Patches Tool检查修补程序是否可用于您的Adobe Commerce问题。
有关QPT中其他可用修补程序的信息,请参阅Quality Patches Tool指南中的:搜索修补程序Quality Patches Tool。