1

我有一个程序可以提取 SalesforceCase对象,以及它们CaseCommentSolution对象。我还有一组过滤器,可以减少结果(关键字、fromDate、toDate 等)。我遇到的问题是 Salesforce 功能在我为该案例编辑或创建新评论时既不更新案例LastModifiedDate也不更新字段。SystemModstamp

最直接的解决方案是分别提取案例、评论和解决方案,然后从评论和解决方案中提取 ParentId (CaseId),使用案例或解决方案的最大 lastModifiedDate 手动修改这些案例 ID,然后合并所有案例。但是这个过程有点例行公事,所以我在寻找另一个解决方案,Salesforce 和客户端。

4

2 回答 2

4

如果您想避免使用触发器,您可以使用 Workflow 进行“触摸”。从'12 春季版salesforce.com 开始支持跨对象工作流。因此,您可以在案例评论上创建一个工作流规则,以更新父案例上的字段。您可以专门为这个感人的过程创建一个自定义字段或重用任何其他字段。

例如,要将案例描述字段用作触摸字段,您可以执行以下操作。

  1. 在 Case Comment 对象上创建一个新的工作流规则,以便在创建或编辑记录时触发。
  2. 将工作流规则的条件指定为创建日期不等于 null 时。
  3. 为字段更新创建新的工作流操作。
  4. 指定对象应该是案例和字段描述
  5. 在公式中输入 Parent.Description 作为值。这会将案例描述设置为它自己的值。有效地不改变记录。

关于更改APILastModifiedDateSysetemModstamp通过 API,我不确定这是否可以作为正在进行的界面的一部分进行。Salesforce 将允许您通过 API 更新这些审核字段,但您必须联系他们才能启用该功能。

salesforce 在线文档更详细地涵盖了审计领域。它说:

如果您将数据导入 Salesforce 并需要设置审计字段的值,请联系 salesforce.com。一旦 salesforce.com 为您的组织启用此功能,您就可以为以下对象设置审计字段值:Account、CampaignMember、Case、CaseComment、Contact、FeedComment、FeedItem、Idea、IdeaComment、Lead、Opportunity 和 Vote。唯一不能为其设置值的审计字段是 systemModstamp。

于 2012-05-21T20:50:03.700 回答
3

我能想到的最简单的方法是在创建或编辑 CaseComment 时仅“触摸”(更新而不对数据进行任何修改)案例记录。这可以通过 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;
}
于 2012-05-21T16:43:43.303 回答