Ceci est un rappel que vous devez examiner si l'utilisateur doit avoir accès aux données que vous revenez de la fonction. Pour les champs de table, le noyau le fait normalement pour vous en fonction des groupes de sécurité dans lesquels se trouve l'utilisateur et des clés de sécurité définies dans les champs.
Pour vérifier si un utilisateur a accès à un champ, utilisez la fonction hasFieldAccess
. Pour voir comment cela est utilisé, regardez les méthodes de la table BankAccountStatement.openingBalance()
ou CustTable.openInvoiceBalanceMST()
. Il existe d'autres fonctions d'assistance pour vérifier les clés de sécurité telles que hasMenuItemAccess
, hasSecuritykeyAccess
et hasTableAccess
.
Dans votre cas, ajoutez ce code:
if(!hasFieldAccess(tablenum(ABC_Styles),fieldnum(ABC_Styles,StyleName)))
{
throw error("@SYS57330");
}
Même après avoir ajouté ce code, vous obtiendrez toujours l'erreur Best Practice. Pour indiquer au compilateur que vous avez résolu le problème, vous devez ajouter le commentaire suivant immédiatement avant la déclaration de la fonction:
//BP Deviation Documented
J'ai vu votre nom sur quelques-unes de mes questions. Merci d'avoir pris le temps d'aider le nouveau venu. Ce fut une transition douloureuse de .NET à X ++, mais j'y arrive. ;) – Brad