Fare riferimento a sObject Fields dinamicamente da un valore stringa

Oct 23 2020

È possibile fare riferimento ai campi di un oggetto (opportunità in questo esempio) dinamicamente da un valore stringa?

Ad esempio, prendi il seguente codice:

 for(Opportunity o: oppList) {
      for(String s : strList) {
           // I'd like to set the opportunity field values based on the string 
           // value that contains the API name of the opportunity field
      }
 }

Pertanto, la variabile strListcontiene i nomi dei campi dell'API dell'opportunità. Sto cercando di cancellare alcuni campi sull'opportunità in un trigger prima dell'aggiornamento, ma devo accedere dinamicamente ai nomi dei campi nel file strList.

Risposte

2 sfdcfox Oct 23 2020 at 04:09

Sì, i metodi "get" e "put" consentono di leggere e scrivere i campi in base ai loro nomi di campo:

for(Opportunity record: records) {
  for(String fieldName: fieldNames) {
    Object value = record.get(fieldName); // Get a field value!
    record.put(fieldName, null); // Clear a field!
  }
}