我的控制器中有以下内容用于由PageBlockTable使用的visualforce页面。
我可以访问p.ProcessInstance.TargetObject的其他标准字段,例如p.ProcessInstance.TargetObject.Name和.Id等...
但是如何访问与记录相关的TargetObject的自定义字段?或者这不可能吗?如果它不可能,那么我假设我可以在单独的查询中完成它,但我无法弄清楚如何。
谢谢
List<ProcessInstanceWorkitem> results = [Select p.ProcessInstance.Status, p.ProcessInstance.TargetObject.Name, p.ProcessInstance.TargetObject.Id, p.Actor.Name, p.CreatedBy.Name, p.CreatedDate FROM ProcessInstanceWorkitem p];
答案 0 :(得分:3)
您必须在TargetObject上执行额外的SOQL查询,因为ProcessInstance是多态的。例如。
List<ProcessInstanceWorkitem> results = [Select p.ProcessInstance.Status, p.ProcessInstance.TargetObject.Name, p.ProcessInstance.TargetObject.Id, p.Actor.Name, p.CreatedBy.Name, p.CreatedDate FROM ProcessInstanceWorkitem p];
List<Id> targetObjectIds = new List<Id>();
for(SObject result : results)
{
targetObjectIds.add(result.p.ProcessInstance.TargetObject.Id);
}
List<SObject> targetObjectFields = [SELECT Id, Field names FROM SObject WHERE Id IN:targetObjectIds];
编辑: 请将SObject更改为您当前使用的对象。