ACSD-47027: Langsame B2B-CompanyRole-GraphQL-Aktualisierung der Abfrage

Mit dem Patch ACSD-47027 wird das Problem behoben, dass die Aktualisierung der langsamen Abfrage B2B-CompanyRole GraphQL nicht wie erwartet funktioniert. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.23 installiert ist. Die Patch-ID ist ACSD-47027. Beachten Sie, dass das Problem voraussichtlich in Adobe Commerce 2.4.6 behoben wird.

Betroffene Produkte und Versionen

Der Patch wird für die Adobe Commerce-Version erstellt:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.2-p1

Kompatibel mit Adobe Commerce-Versionen:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.2 - 2.4.5-p1
NOTE
Der Patch könnte mit neuen Quality Patches Tool-Versionen auch für andere Versionen gelten. Um zu überprüfen, ob der Patch mit Ihrer Adobe Commerce-Version kompatibel ist, aktualisieren Sie das magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.

Problem

Die Aktualisierung der langsamen B2B-CompanyRole-GraphQL funktioniert nicht wie erwartet.

Voraussetzungen:

Installieren Sie das B2B-Modul.

Schritte zur Reproduktion:

  1. Wechseln Sie in Adobe Commerce Admin zu Stores > Settings > Configurations > B2B Features und setzen Sie Enable Company auf Ja.

  2. Wechseln Sie zum Frontend und erstellen Sie eine Firma.

  3. Nachdem Sie sich als Unternehmensbenutzer angemeldet haben, gehen Sie zu My Account > Roles and Permissions und fügen Sie eine neue Rolle hinzu.

  4. Aktivieren Sie dev Abfrageprotokoll mithilfe von bin/magento dev:que:enab.

  5. Senden Sie nun die folgende GraphQL-Anfrage (ID ist die base64 Rollen-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. Überprüfen Sie das Abfrageprotokoll.

  7. Sie können sehen, dass die obige Abfrage ausgeführt wird. Diese Abfrage wird in app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources ausgeführt.

Erwartete Ergebnisse:

Die app/code/Magento/CompanyGraphQl/Model/Company/Role/ValidateRole.php::validateResources muss optimiert werden, um zu vermeiden, dass alle in der company_permissions DB-Tabelle verfügbaren Daten geladen werden.

Tatsächliche Ergebnisse:

Adobe Commerce führt eine Abfrage ohne Filter aus. Wenn eine große Anzahl von Datensätzen vorhanden ist, dauert es sehr lange, bis Adobe Commerce die Datenerfassung vorbereitet.

Patch anwenden

Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:

Verwandtes Lesen

Weitere Informationen zu Quality Patches Tool finden Sie unter:

Weitere Informationen zu anderen in QPT verfügbaren Patches finden Sie unter Quality Patches Tool: Suchen nach Patches im Quality Patches Tool.

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