So habe ich zwei benutzerdefinierte Objekte: Das Workload_Unit_Score__c Objekt ist eine Zuordnungstabelle mit einem Referenzfeld (WLU_Combination_Value__c) und einem Wert (Score__c) für jede Zeilenreferenz. Wir erhalten täglich Anfragen, um vertragliche Vereinbarungen zu bearbeiten. Ein neuer Datensatz wird für jede Anforderung im Objekt Agreement_Title__c erstellt. Jedem Datensatz wird basierend auf seinem WLU_Combination_Value__c ein Workload_Unit_Score__c zugewiesen.Apex Code zum Abrufen von Werten wie vlookup, aber in Salesforce?
ich im Grunde so etwas wie ein Excel-vlookup tun will - jedes Mal, wenn wir eine Anfrage und eine neue Agreement_Title__c Datensatz erhalten erstellt wird, möchte ich einen Trigger, um die WLU_Combination_Value__c zu nehmen, eine Score__c vom Workload_Unit_Score__c Objekt retreive und bevölkere, dass Wert im Feld Workload_Unit_Score__c. Die zwei benutzerdefinierten Objekte sind nicht verwandt. Im Folgenden finden Sie eine Zusammenfassung der Felder.
-Workload_Unit_Score__c Objekt (aussortieren wie eine "Definition" oder "reference" table)
- Namen
- MiscField1
- MiscField2
- MiscField3
- WLU_Combination_Value__c (a Formel Feld, das verkettet MiscField1 + MiscField2 + MiscField3)
- Score__c (eine Punktzahl des ignated für jedes eindeutigen WLU_Combination_Value__c)
-Agreement_Title__c Objekt (vertragliche Vereinbarungen)
- Namen
- MiscField1
- MiscField2
- MiscField3
- WLU_Combination_Value__c (ein Formel-Feld, die MiscField1 verkettet + MiscField2 + MiscField3)
- Workload_Unit_Score__c (eine Partitur zu jedem einzigartigen WLU_Combination_Value__c gegeben)
Ich habe den Code unten laufen, aber ich erhalte „Fehler Kompilieren: geschweifte Klammer erwartet,‚‘in Zeile 22 Spalte 0 gefunden“ Aber ich denke, dass es sein kann, andere Probleme mit dem Code, der nicht funktioniert.
Kann jemand helfen? Gibt es einen einfacheren Weg dies zu tun?
trigger updateWLUvalue on Agreement_Title__c (before insert) {
Map<String,Agreement_Title__c[]> relatedScores = new Map<String, Agreement_Title__c[]>();
for (Agreement_Title__c agmtt : trigger.new) {
if(!relatedScores.containsKey(agmtt.WLU_Combination_Value__c)){
relatedScores.put(agmtt.WLU_Combination_Value__c, new Agreement_Title__c[]{});
}
relatedScores.get(agmtt.WLU_Combination_Value__C).add(agmtt);
for(Workload_Unit_Score__c wus : [Select Id, Score__c, WLU_Combination_Value__c
FROM Workload_Unit_Score__c
WHERE WLU_Combination_Value__c
IN : relatedScores.keySet()]){
for(Agreement_Title__c agmtt2 : relatedScores.get(wus.WLU_Combination_Value__c)){
agmtt.Workload_Unit_Score__c = wus.Score__c;
}
}
}