salesforce - 使用 sObject 动态更改字段值
问题描述
我正在尝试使用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;
正如我看到的其他帖子,这是创建对象动态更新的方式。
知道为什么会这样吗?
解决方案
并非所有对象都有名称字段,您应该在尝试设置字段之前检查名称字段是否存在,您还必须使用 put 方法
Map <String, Schema.SObjectField> fieldMap = o1.getSobjectType().getDescribe().fields.getMap();
if(fieldMap.containsKey('Name')){
o1.put('Name', 'Test');
}
推荐阅读
- javascript - Is it possible to run 2 threads on javascript?
- sql - 您如何连接 Google Bigquery 中的一系列查询?
- ios - Quantized Sequence using AudioKit
- python-3.x - pandas.DataFrame.plot.scatter:传递数据框列以定义大小在 shell 中有效,但在代码中无效
- javascript - 如何正确枚举状态数组中的对象元素?
- python - 为什么'zip参数必须支持迭代'此代码中出现错误?
- c# - 从服务启动弹出消息
- mongodb - 查询包含字符串“New”的字段“info”的所有项目的 Mongo 集合
- python - 基于官方文档的关于 Keras 中 Embeddings 输入维度的问题
- xml - Is it possible to group and sum segments/nodes in XSLT?