Java 更新子对象时Salesforce更新主记录

Java 更新子对象时Salesforce更新主记录,java,salesforce,Java,Salesforce,我有一个程序可以提取Salesforce案例对象,以及它们的案例注释和解决方案对象。此外,我还有一组过滤器,可以减少结果关键字fromDate、toDate等。。我遇到的问题是,当我编辑或创建该案例的新注释时,Salesforce功能不会更新案例LastModifiedDate或SystemModstamp字段 最简单的解决方案是分别提取案例、注释和解决方案,然后从注释和解决方案中提取ParentId CaseId,使用案例或解决方案的max lastModifiedDate手动修改这些Case

我有一个程序可以提取Salesforce案例对象,以及它们的案例注释和解决方案对象。此外,我还有一组过滤器,可以减少结果关键字fromDate、toDate等。。我遇到的问题是,当我编辑或创建该案例的新注释时,Salesforce功能不会更新案例LastModifiedDate或SystemModstamp字段


最简单的解决方案是分别提取案例、注释和解决方案,然后从注释和解决方案中提取ParentId CaseId,使用案例或解决方案的max lastModifiedDate手动修改这些CaseId,然后合并所有案例。但是这个过程有点常规,所以我正在寻找另一个解决方案,包括Salesforce和客户端。

我能想到的最简单的方法是,只要触摸更新,而不必在创建或编辑案例注释时对案例记录中的数据进行任何修改。这可以通过触发CaseComment来实现:

trigger CaseCommentAIAU on CaseComment (after insert, after update) {
    Set<Id> caseIds = new Set<Id>();
    for ( CaseComment cc : Trigger.new ) {
        caseIds.add(cc.ParentId);
    }
    Case[] caseUpdates = [select id from Case where Id in :caseIds];
    update caseUpdates;
}

我能想到的最简单的方法是,每当创建或编辑CaseComment时,只需触摸update,而不必对案例记录中的数据进行任何修改。这可以通过触发CaseComment来实现:

trigger CaseCommentAIAU on CaseComment (after insert, after update) {
    Set<Id> caseIds = new Set<Id>();
    for ( CaseComment cc : Trigger.new ) {
        caseIds.add(cc.ParentId);
    }
    Case[] caseUpdates = [select id from Case where Id in :caseIds];
    update caseUpdates;
}

如果要避免使用触发器,可以使用工作流进行“触摸”。自salesforce.com之日起,支持跨对象工作流。因此,您可以在案例注释上创建工作流规则,以更新父案例上的字段。您可以专门为此触摸过程创建自定义字段,也可以重用任何其他字段

例如,要使用案例描述字段作为触摸字段,可以执行以下操作

在创建或编辑记录时要激发的案例注释对象上创建新的workfow规则。 指定创建日期不等于null时工作流规则的条件。 为字段更新创建新的工作流操作。 指定对象的大小写和字段描述 在公式中,输入Parent.Description作为值。这会将案例描述设置为其自身的值。有效地不改变记录。 关于通过API更改LastModifiedDate或SysetMemodStamp,我不确定这是否可以作为正在进行的接口的一部分。Salesforce将允许您通过API更新这些审核字段,但您必须联系他们才能启用该功能

salesforce在线文档包括。它说:

如果将数据导入Salesforce并需要设置审核字段的值,请联系Salesforce.com。salesforce.com为您的组织启用此功能后,您可以为以下对象设置审核字段值:帐户、活动成员、案例、案例评论、联系人、FeedComment、FeedItem、Idea、IdeaComment、Lead、Opportunity和Vote。唯一不能为其设置值的审核字段是systemModstamp


如果要避免使用触发器,可以使用工作流进行“触摸”。自salesforce.com之日起,支持跨对象工作流。因此,您可以在案例注释上创建工作流规则,以更新父案例上的字段。您可以专门为此触摸过程创建自定义字段,也可以重用任何其他字段

例如,要使用案例描述字段作为触摸字段,可以执行以下操作

在创建或编辑记录时要激发的案例注释对象上创建新的workfow规则。 指定创建日期不等于null时工作流规则的条件。 为字段更新创建新的工作流操作。 指定对象的大小写和字段描述 在公式中,输入Parent.Description作为值。这会将案例描述设置为其自身的值。有效地不改变记录。 关于通过API更改LastModifiedDate或SysetMemodStamp,我不确定这是否可以作为正在进行的接口的一部分。Salesforce将允许您通过API更新这些审核字段,但您必须联系他们才能启用该功能

salesforce在线文档包括。它说:

如果将数据导入Salesforce并需要设置审核字段的值,请联系Salesforce.com。salesforce.com为您的组织启用此功能后,您可以为以下对象设置审核字段值:帐户、活动成员、案例、案例评论、联系人、FeedComment、FeedItem、Idea、IdeaComment、Lead、Opportunity和Vote。唯一不能为其设置值的审核字段是systemModstamp


谢谢你的回答,你的解决方案是有效的,但你知道如何在SF端之外做到这一点吗?谢谢你的回答,你的解决方案是有效的,但你知道如何在SF端之外做到这一点吗?