Lorsque vous essayez d’ouvrir la page Utilisateurs dans le portail d’entreprise de Microsoft Dynamics GP, vous recevez le message d’erreur suivant :
« Une erreur inattendue s’est produite. Essayez de fermer le navigateur et de recommencer, ou contactez votre spécialiste du support . »
Lorsque vous cliquez ensuite sur le bouton Détails du message d’erreur, vous recevez le texte supplémentaire lié au message d’erreur :
« System.Exception: soap:Server Server was unable to process request. ---> Microsoft.Dynamics.Hrm.Entity.Employee »
Symptômes
Dans la table MBFRoleUser de la base de donnéesDYNAMICS, un ID d’employé est attribué dans le champ Constituent qui n’existe pas en tant qu’employé dans la table UPR00100 de la base de données de l’entreprise.
Cause
Supprimez l’enregistrement d’affectation d’ID d’employé orphelin de la table MBFRoleUser de la base de données DYNAMICS. Pour trouver et supprimer l’enregistrement d’affectation d’ID d’employé orphelin dans la table MBFRoleUser de la base de données DYNAMICS, suivez ces étapes.
1. Démarrer la SQL Server Management Studio. Pour ce faire, utilisez l’une des méthodes suivantes en fonction du programme que vous utilisez.
Pour SQL Server 2000
Si vous utilisez SQL Server 2000, démarrez l SQL analyseur de requête. Pour ce faire, cliquez sur Démarrer,pointez sur Tous les programmes, pointez sur Microsoft SQL Server,puis cliquez surAnalyseur de requête.
Pour SQL Server 2005
Si vous utilisez SQL Server 2005, commencez à SQL Server Management Studio. Pour ce faire, cliquez surDémarrer, pointez sur Tous les programmes,pointez sur Microsoft SQL Server 2005,puis cliquezsur SQL Server Management Studio.
Pour SQL Server 2008
Si vous utilisez SQL Server 2008, commencez à SQL Server Management Studio. Pour ce faire, cliquezsurDémarrer, pointez sur Tous les programmes,pointez sur Microsoft SQL Server 2008,puis cliquezsur SQL Server Management Studio.
2. Exécutez l’instruction suivante sur la base de données DYNAMICS pour rechercher tous les enregistrements d’affectation d’ID d’employé dans la table MBFRoleUser de la base de données DYNAMICS :
select * from MBFRoleUser where Constituent like '%Microsoft.Dynamics.Hrm.Entity.Employee ID%' order by Constituent
La chaîne EmployeeID= dans la colonne Constituent vous indique les ID d’employé affectés au rôle Portail d’entreprise.
3. Exécutez l’instruction suivante sur la base de données de l’entreprise pour rechercher tous les enregistrements D’ID d’employé qui existent dans votre table UPR00100 :
select EMPLOYID from UPR00100 order by EMPLOYID
Les résultats de ce script afficheront tous les ID d’employé existant dans la table Maître des employés.
4. Comparez les enregistrements d’affectation d’employé ID= dans la colonne Constituent des résultats du script exécuté à l’étape #1 avec les employés renvoyés à partir des résultats du script s’exécutent à partir de l’étape #2. Recherchez les enregistrements d’affectation d’ID d’employé existant dans la colonne Constituent de la table MBFRoleUser de la base de données DYNAMICS qui n’existent pas en tant qu’ID d’employé dans la table UPR00100 de la base de données de l’entreprise.
5. Après avoir identifié l’enregistrement orphelin d’ID d’employé à l’étape #3, exécutez l’instruction suivante sur la base de données DYNAMICS pour supprimer cet affectation orpheline d’ID d’employé :
supprimer MBFRoleUser où Constituent = 'XXXX'
REMARQUE : remplacez XXXX par la valeur constituante de l’enregistrement d’affectation d’ID d’employé orphelin de la table MBFRoleUser.
EXEMPLE : Voici un exemple d’instruction de suppression nécessaire à l’étape #4 :
supprimer
MbfRoleUser where Constituent='<entityKey><Microsoft.Dynamics.Common.Company.Company ID= »-1 » /><Microsoft.Dynamics.hrm.Entity.Employee ID="429732375 » /></entityKey>'
Dans cet exemple, le numéro d’employé 429732375 est l’affectation orpheline d’ID d’employé à l’étape #3.
Résolution
Les informations de la table Utilisateur MBFRole sont insérées lorsque vous cliquez sur Accueil dans le portail d’entreprise, cliquez sur Actionsdu site, surParamètresde site, sur Utilisateurs, sélectionnez un utilisateur dans la liste des utilisateurs, cliquez sur Rôles, cliquez sur Modifier, puis attribuez un rôle dans la fenêtre Modifier le portail et les rôles avancés (boîte de dialogue Page Web). Cliquezsur OK.