在Salesforce内部和外部更新自定义字段

在Salesforce内部和外部更新自定义字段,salesforce,Salesforce,在Salesforce的Account组件中,我有一个名为“Timestamp”的自定义字段。此字段用于与外部应用程序同步。我需要用这个字段实现以下场景 该字段可以通过Salesforce API进行更新。此处,该字段用外部时间戳值更新(现在“时间戳”值不同于Salesforce中的“上次修改时间”) 如果Salesforce本身更新了任何与帐户相关的信息,则该字段将使用当前时间进行更新(理想情况下相当于Salesforce中的“上次修改时间”) 我为此尝试了Salesforce工作流规则,但它

在Salesforce的Account组件中,我有一个名为“Timestamp”的自定义字段。此字段用于与外部应用程序同步。我需要用这个字段实现以下场景

  • 该字段可以通过Salesforce API进行更新。此处,该字段用外部时间戳值更新(现在“时间戳”值不同于Salesforce中的“上次修改时间”)
  • 如果Salesforce本身更新了任何与帐户相关的信息,则该字段将使用当前时间进行更新(理想情况下相当于Salesforce中的“上次修改时间”)
  • 我为此尝试了Salesforce工作流规则,但它只实现了第二种场景。对于第一种情况,它再次使用当前时间更新值,而不是外部接收的值

    如何做到这一点?
    谢谢。

    您的字段时间戳的数据类型是什么?我猜它是DateTime如果它是DateTime,那么您可以在使用from API代码时输入System.Now()的值,并且您可以根据您的要求(在更新之前或更新之后)使用System.Now()更新字段。是的,数据类型是DateTime。如果我在帐户更新(无论是在更新之前还是之后)时写入触发器,并将值设置为System.Now(),那么对于上述两种情况,它是否会再次使用当前时间进行更新?当从外部源同步数据时,我需要使用该外部时间戳更新字段。但当更新来自Salesforce本身时,则应设置System.Now()。根据您的解决方案,这两种情况似乎都是System.Now()时间。我遗漏了什么吗?好的,那么你可以使用Trigger.old和Trigger.New方法。当您将通过外部源更新字段时,您的Trigger.new和Trigger.old值将不同,您无需进行任何更改,但当它不是通过外部源时,您的Trigger.old和Trigger.new值将相同,然后您可以使用System.Now()更新它。