Apex déclencheur de mise à jour - mise à jour du champ de recherche

Je suis en train d'écrire mon premier Apex déclencheur de mise à jour et de la difficulté légèrement que je suis en train de définir la valeur d'un champ de recherche.

J'ai un objet appelé Deployment__c qui est le maître dans une configuration maître-détail de la relation avec un objet appelé Service__c (noms simplifié!)

La Service__c champ n'a pas de Owner dans Salesforce que c'est l'enfant/détail d'un maître-détail de la relation. Par conséquent, nous avons créé un pseudo-champ propriétaire appelé Owner__c sur cet objet, qui est un champ de recherche à la recherche de la User objet dans Salesforce.

Le but de le déclencheur pour régler la valeur de Service__c.Owner__c à celle de l'utilisateur qui est le propriétaire de Deployment__c, si il n'y a pas de Owner__c déjà mis sur Service__c.

Le code que j'ai est comme suit:

trigger AfterServiceUpdate on Service__c (before update) {
    for (Service__c oldService : Trigger.new) {
        if (oldService.Owner__c == null) {
            User defaultUser = [Select Id FROM User WHERE User.Id = :oldService.Deployment__r.OwnerId];
            oldService.Owner__c = defaultUser.Id;
        }
    }
}

Cependant, j'ai une erreur quand j'essaie d'enregistrer ce déclencheur:

D'erreur: Erreur de Compilation: champ non Valide Propriétaire__c pour SObject ASE_Déploiement__c à la ligne 5 colonne 13

J'ai vérifié que j'ai le champ nom correct, mais ne pouvez pas obtenir que cela fonctionne. Tous les pointeurs bienvenue!

InformationsquelleAutor JimmE | 2013-02-19