IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

Ne plus autoriser la suppression des Taches et Evenements pour certains profils


Sujet :

Salesforce.com

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut Ne plus autoriser la suppression des Taches et Evenements pour certains profils
    Bonjour,

    Je souhaite ne plus autoriser la suppression des Taches et Evenements pour tous les profils utilisateurs autres que System Admin. Mais à ce que j'ai pu voir, https://help.salesforce.com/apex/HTV...language=en_US, si on souhaite enlever ce droit de suppression, on doit empêcher l'utilisateur de pouvoir créer ou modifier une tâches / événements.
    En clair, on ne peut dissocier les deux.

    Avez vous une idée sur comment faire?
    J'avais pensé passer par un trigger, mais j'aimerai passer par du standard...

    Merci pour votre aide,

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Malheureusement, je crois que la réponse est dans ton lien: Trigger !!

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Merci pour ta réponse.
    Alors j'ai fait créé le trigger pour gérer les tâches. Je veux que lorsque c'est pas un system administor (mon sf est en anglais) ça m'affiche un message d'erreur en rouge sur la page de task :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    trigger TaskBeforeDelete on Task (before delete) {
    
    	String ProfilName = DAL2.getProfileName();
            // Trigger.old et non  Trigger.new car sinon l'objet == null
    
    	PAD.myLog('TaskBeforeDelete profilname:'+ ProfilName + ' ' + Trigger.old);
    
    	for (Task t : Trigger.old) {
    		
    			if(ProfilName == 'System Administrator'){
    				PAD.myLog('TaskBeforeDelete cas passe:');	
    			}
    			else{
    				PAD.myLog('TaskBeforeDelete cas passe pas:');
    				t.addError('test');
    				return;
    				//Apexpages.addMessage(new Apexpages.message(ApexPages.Severity.FATAL, 'vous ne pouvez pas delete'));
    			}
    		}
    }
    Là ça m'affiche une page avec ce message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Validation Errors While Saving Record(s)
    There were custom validation error(s) encountered while saving the affected record(s). The first validation error encountered was "test".
    
    Click here to return to the previous page.

    Sais tu pourquoi?

    Merci

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 69
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Pour la suppression tu ne peux pas afficher le message en rouge (comme pour un save ou update) sur la page de détail de l'enregistrement.

    Tu es redirigé vers une page prédéfinie.

    Si tu veux contourner ce comportement il faut customiser la page standard par une visual force (développement spécifique) et gérer toi-même le contrôle de la validation sans passer par le trigger.

    Pour information, si tu es débutant je te déconseilles fortement de partir dans ce sens, car la page standards de présentation tâches/event est assez complexe.

    PS : pourquoi avoir mis un "return" dans ton trigger ? Le return n'a rien à faire à cet endroit. Penses que ton trigger peux avoir à supprimer des tâches en masse.

    Cordialement.

    Bonne journée.

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Ok merci pour ton conseil.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    trigger TaskBeforeDelete on Task (before delete) {
    	//system.debug('#####TaskBeforeDelete');
    	
    	String ProfilName = DAL2.getProfileName();
    
    	PAD.myLog('TaskBeforeDelete profilname:'+ ProfilName + ' ' + Trigger.old);
    	
    
    	for (Task t : Trigger.old) {
    		//ProfilName != 'Administrateur système'  || ProfilName != 'System Administrator'
    			if( (ProfilName != 'Administrateur système')  && (ProfilName != 'System Administrator') )
    			{
    				PAD.myLog('TaskBeforeDelete cas passe pas:');
    				t.addError(system.label.message_erreur_delete_task);	
    			} 
    			else{
    
    				//return;
    				//Apexpages.addMessage(new Apexpages.message(ApexPages.Severity.FATAL, 'vous ne pouvez pas delete'));
    			}
    		}
    		
    		
    
    }

Discussions similaires

  1. Suppression des lignes qui n'ont pas la plus grande valeur
    Par Oberown dans le forum Développement
    Réponses: 5
    Dernier message: 21/12/2012, 16h40
  2. TinyMCE m'affiche des pop-up blancs pour certaines balises
    Par Plantakwatix dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 06/06/2012, 13h05
  3. Réponses: 3
    Dernier message: 17/10/2010, 18h10
  4. Suppression des taches avec C
    Par Misoinfo dans le forum C
    Réponses: 3
    Dernier message: 18/08/2010, 01h05
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo