我开发了一个托管包,它应该在启用或不启用共享活动的组织上工作。这就是为什么我首先要弄清楚组织中是否启用了此功能:
Boolean isSharedActivitiesEnabled = true;
Map<String, Schema.SObjectField> M = Schema.SObjectType.EventRelation.fields.getMap();
if (M.containsKey('IsParent')) {
System.debug('============== shared activities are enabled.');
} else {
isSharedActivitiesEnabled = false;
System.debug('============== shared activities are NOT enabled.');
}
然后我根据以下内容填充可用的字段
EventRelation newEventRelation = new EventRelation(
EventId = newEventId,
RelationId = contact.Id
);
if (isSharedActivitiesEnabled) {
newEventRelation.IsWhat = false;
newEventRelation.IsParent = true;
newEventRelation.IsInvitee = false;
} else {
newEventRelation.Status = attendeeStatus;
}
在早期版本中,我没有填充 IsWhat、IsParent 和 IsInvitee 字段,并且受管软件包可以安装在任何组织中。但由于我正在填充字段 IsWhat 和 IsParent 和 IsInvitee,因此此托管软件包只能安装在启用共享活动的组织中。
那么如何开发适用于这两种类型的组织的代码呢?非常感谢亚历克斯