Динамическое изменение значения поля с помощью sObject - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь использовать sObject для динамического изменения объектов поля имени в организации.

Я пытался использовать SomeId.getSObjectType().newSObject(SomeId) для создания sObject, но когда я пытаюсь изменить поле Имя, у меня появляется ошибка

Переменная не существует: Имя

Map<Id, string> idsToUpdate = new Map<Id, string>();

// Put the Id's and associated name values in the map

List<SObject> sObjectsToUpdate = new List<SObject>();

foreach(Id idToUpdate : idsToUpdate.keySet) {
    SObject o1 = idToUpdate.getSObjectType().newSObject(idToUpdate);
    o1.Name = idsToUpdate.get(idToUpdate);
    sObjectsToUpdate.add(o1);
}

update sObjectsToUpdate;

Как я вижу в других постах, это способ создания динамического обновления объектов.

Есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 08 октября 2018

Не все объекты имеют поле имени, вы должны проверить наличие поля имени, прежде чем пытаться установить поле, также вы должны использовать метод put

Map <String, Schema.SObjectField> fieldMap = o1.getSobjectType().getDescribe().fields.getMap();
if(fieldMap.containsKey('Name')){
    o1.put('Name', 'Test');
}
...