Comment faire pour remplir champ de recherche lors de la création d'un nouvel objet personnalisé dans SFDC
Je suis aux prises avec cette situation.. j'ai un Objet Standard dans SFDC (Occasion) qui a une apparence personnalisée sur le terrain pour le pointage de l'objet Utilisateur ce que je suis en train de faire est de remplir ce champ avec le nom de l'utilisateur qui crée un objet personnalisé qui est disponible dans la Possibilité de mise en page...
à savoir une Nouvelle GOP Liste de vérification --- Ensuite, choisissez le type de liste de contrôle--- et puis remplissez tous les champs requis et cliquez sur enregistrer, c'est renvoyant à l'Occasion de la vue. Pour commencer est-ce quelque chose de faisable ? je sais que rechercher des champs peut être délicat.
et ma deuxième question est de savoir quelle est la meilleure façon de le faire par programmation (déclencheur) ou en utilisant le flux de travail et la mise à jour du champ de la fonctionnalité ?
Merci !!
trigger TR_OrderChecklist on Order_Checklist__c (before insert) {
//----------------------------------------------------------------------------------
//Function 1: Update COS Operations Attribute in Opportunity
//----------------------------------------------------------------------------------
for(Order_Checklist__c o : trigger.new){
if(o.Opportunity__r.CARE_Operations__c == null) {
o.Opportunity__r.CARE_Operations__c = UserInfo.getUserId();
}
}
}
C'est ce qu'ils sont venus avec. Dans la Norme Occasion Objet, nous avons un champ de recherche lié à l'utilisateur.. SOINS_Opérations__c.. Maintenant ce que le déclencheur est censé faire est la suivante..
1.- Lors de la création d'un nouveau GOP Liste de contrôle si l'utilisateur de remplir un nouveau custom champ de recherche dans le GOP objet nommé COSOperations_c, puis garder ce nom,
2.- Si l'Utilisateur n'a pas à remplir la COSOperations_c champ, mais dans le domaine de la police provinciale de niveau de SOINS_Opérations__c est peuplée d'utiliser ce nom.
3.- Si ni CARE_Operations_c ou COSOperations_c sont peuplées (la saisie de l'utilisateur) puis COSOperations__c est va être la personne qui vient de créer le GOP Objet.
C'est ce que j'ai à ce jour..
trigger TR_OrderChecklist on Order_Checklist__c (before insert) {
List<Opportunity> COS_Op = new List<Opportunity>();
COS_Op = [select CARE_Operations__c from Opportunity where id in (select Opportunity__c from Order_Checklist__c where COSOperations__c != null)];
for(Order_Checklist__c OC : trigger.new) {
if(OC.COSOperations__c != null) {
break;}
if(COS_Op != null){
OC.COSOperations__c = OC.Opportunity__r.CARE_Operations__c;}
if(OC.COSOperations__c == null){
OC.COSOperations__c = UserInfo.getUserId();}
}
}
Mon problème est que dans la seconde si l'instruction.. les 2 autres conditions de travail sont correctement.. ! Des idées ? Merci !!!
- Salut Twanley. Maintenant, les exigences sont différentes.. s'il vous Plaît vérifier ma question encore une fois et merci pour tous vos commentaires.. !
Vous devez vous connecter pour publier un commentaire.
Mon (deuxième) prendre sur la fixation de la gâchette code que vous avez posté:
En supposant que vous avez l'Occasion.Mon_Utilisateur__c comme lookup(Utilisateur) et Mon Objet___c.Occasion__c comme lookup(Occasion) ce déclencheur est un bon début:
Pour preuve que la Recherche de l'utilisateur(Utilisateur) est vraiment juste un champ Id, essayez cet exercice. Créer une nouvelle liste de choix(de l'Utilisateur) sur le terrain sur la Possibilité de l'objet nommé "Mon Utilisateur."
De la force de vente page web, choisir un existant, la possibilité d'enregistrer et de définir le Mon champ Utilisateur à certains aléatoire de l'utilisateur et enregistrer l'enregistrement. Maintenant à partir de la Console Développeur, l'exécution de cette anonyme APEX:
Fermer la fantaisie de l'affichage du journal et cliquez sur "Ouvrir le Raw Journal" et vous verrez une ligne comme ceci:
Voir, Salesforce pense __c champs de recherche, comme les champs Id. Dans ce cas, c'est une relation de Clé Étrangère à l'Id de l'Utilisateur de l'objet. Salesforce vous fait penser le Nom de domaine est la Clé Primaire, mais vraiment c'est le champ Id (ok je n'ai pas réellement vu de Salesforce de la disquette de réparation d'urgence, mais je suis sûr que c'est correct). Notez que vous pouvez obtenir à la recherche de l'objet à travers champs l' __r construire.
Mise à jour le champ est juste une question de changer la Ma_Utilisateur__c id:
Ou, vous pouvez obtenir l'Id de l'Utilisateur à partir d'une requête soql comme ceci:
Ou, rechercher un utilisateur par son adresse email:
C'est juste un très bon moyen pour obtenir l'Id de l'utilisateur actuel:
update o.Opportunity__r;
j'ai mis à jour mon déclencheur pour une plus gouverneur limites de la version imprimable de que.Je suis un peu confondu ici avec les exigences.
Sommes-nous dire que vous avez besoin pour créer un nouvel enregistrement d'Opportunité lorsqu'un enregistrement de l'objet personnalisé est créé?
Si donc oui c'est possible. Vous pouvez écrire un APEX de déclenchement sur la clientèle objet de type "insérer après" et de créer un nouvel enregistrement d'Opportunité et de remplir ses champs requis.