• Accueil / Salesforce / AuraEnabled Apex et…
, AuraEnabled Apex et accès utilisateur<span class="wtr-time-wrap after-title"><span class="wtr-time-number">3</span> minutes de lecture</span>

AuraEnabled Apex et accès utilisateur3 minutes de lecture


, AuraEnabled Apex et accès utilisateur<span class="wtr-time-wrap after-title"><span class="wtr-time-number">3</span> minutes de lecture</span>

Depuis la sortie Winter 21 de Salesforce, les utilisateurs doivent avoir un accès explicite aux classes AuraEnabled qui sont utilisés comme contrôleurs pour les composants Aura. BrightSIGN ne fait pas exception à cela, mais récemment, j’ai rencontré un comportement étrange à ce sujet qui a pris quelques jours pour en savoir plus.

Le problème

Un abonné avait signalé un problème selon lequel lors de l’enregistrement de l’image de sa signature, il recevait une alerte contenant le texte «Échec de l’enregistrement: nul». Cela semblait assez simple – si une erreur se produit, je la piège et renvoie les détails au front-end, où il déclenche cette alerte. Cependant, lors de la vérification du contrôleur, aucun code n’a défini les détails de l’erreur comme null. Ils ont été initialisés en tant que message de réussite, puis basculés vers des messages d’erreur explicites en cas de problème.

C’était peut-être une exception que je ne piégeais pas correctement, même si je ne voyais pas comment. Afin de sauvegarder une signature pour un enregistrement, l’utilisateur avait besoin d’un accès à la mise à jour, j’ai donc essayé un certain nombre de tests:

  • Utilisation d’un identifiant d’enregistrement parent qui n’existait pas
  • Aucune autorisation d’accès à l’enregistrement parent
  • Autorisation en lecture seule sur l’enregistrement parent
  • L’enregistrement parent n’est pas partagé avec l’utilisateur
  • Enregistrement parent partagé en lecture seule avec l’utilisateur
  • Déclenchement lors de l’enregistrement des pièces jointes qui entraîne une exception capturable
  • Déclenchement lors de la sauvegarde de la pièce jointe qui enfreint la limite du gouverneur et génère une exception irrécupérable

Dans tous les cas, j’ai reçu un message d’erreur détaillé expliquant le problème ou l’appel au serveur a renvoyé une erreur et une trace de la pile.

L’abonné voyait cela dans une communauté, j’ai donc relancé les tests avec différentes licences, mais j’étais toujours incapable de reproduire le problème.

Accès à AuraEnabled

J’avais fait mes tests dans une nouvelle organisation de développement où j’avais installé le package pour tous les utilisateurs, donc quand j’ai vérifié, j’ai trouvé que tout le monde avait un accès explicite au contrôleur Apex avec la méthode AuraEnabled, mais il m’est venu à l’esprit que cela pourrait ce n’est pas le cas pour l’abonné. Malheureusement, lorsque j’ai supprimé l’accès, j’ai eu une erreur sensible indiquant que je n’avais pas accès à la classe. Par souci d’exhaustivité, j’ai demandé à l’abonné de vérifier cela. Et voilà que leur utilisateur n’avait pas accès à la classe, et quand ils l’ont ajouté, tout a commencé à fonctionner. En regardant mon code côté client, cela signifiait que lorsque le rappel du serveur était appelé, le getState () a renvoyé SUCCESS, ce qui signifie que l’action a été exécutée avec succès. Cependant, le getReturnValue () La méthode a renvoyé null, ce qui signifie qu’elle n’a pas atteint ma méthode car la valeur de retour n’a jamais été définie sur null.

Il est donc apparu que lorsque la mise à jour a été appliquée pour supprimer l’accès de leurs utilisateurs aux classes, elle ne l’a pas complètement supprimée. Au lieu de cela, il semblait que l’utilisateur pouvait atteindre le serveur avec succès mais pas réellement exécuter la méthode, recevant simplement une réponse nulle à la place. Une touche du principe d’incertitude, car il y avait à la fois accès et pas d’accès!

Donc, si vous obtenez une réponse nulle d’un contrôleur de l’un de vos composants Aura et que vous ne comprenez pas pourquoi, vérifiez l’accès à la classe – cela pourrait vous éviter un jour ou deux de vous gratter la tête!

Articles Similaires





Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Vous utilisez Pardot depuis un certain temps mais vous n'êtes pas sûr d'en
exploiter tout le potentiel

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer