在两个现有Salesforce对象上设置关系

在两个现有Salesforce对象上设置关系,salesforce,relationship,Salesforce,Relationship,我在Salesforce中有一个自定义对象,我需要从Accounts中设置一个Master-Detail关系。账户是主账户,会计是明细账户。我遇到的问题是,我需要设置对象中自定义字段的工作关系。例如: 1.)帐户有一个名为CustomerId的自定义字段 2.)CompHist还具有名为CustomerId的自定义字段 3.)我需要能够通过CustomerId字段将此链接在一起以生成报告 大约2000条记录在每月8号左右插入CompHist。这是通过.NET应用程序完成的,该应用程序在预定时间启

我在Salesforce中有一个自定义对象,我需要从Accounts中设置一个Master-Detail关系。账户是主账户,会计是明细账户。我遇到的问题是,我需要设置对象中自定义字段的工作关系。例如:

1.)帐户有一个名为CustomerId的自定义字段

2.)CompHist还具有名为CustomerId的自定义字段

3.)我需要能够通过CustomerId字段将此链接在一起以生成报告

大约2000条记录在每月8号左右插入CompHist。这是通过.NET应用程序完成的,该应用程序在预定时间启动,从数据库收集信息,然后通过SOAP API将数据上传到salesforce

也许我误解了Salesforce的关系是如何运作的,因为我对Salesforce的开发相当陌生(几个月)

谢谢,
Randy

有一种方法可以让它在没有触发器的情况下工作,触发器将链接记录或在推送CompHistory之前预先查询SF以了解.NET中的帐户ID

设置

帐户:在CustomerId字段上设置“外部ID”复选框。我也建议设置“独特”

在CompHist上:你需要决定是否可以移动它们,或者何时设置与帐户的关系-它将永远保持这样。当您做出决定时,勾选/取消勾选查找/m-d帐户定义中的“可修复主详细信息”

如果你在这些细节上有一些ID,比如“行项目号”——考虑为他们制作一个Ext. Id.。将来当最终用户对报告提出问题时,可能会为您节省一些时间,或者您必须进行某种“刷新”,并从.NET中推送所有行(这将帮助您确定要插入的内容和要更新的内容)

此时,考虑如何填充丢失的数据(Ext.Id中的所有空值)字段是很有用的


关系的实际建立

如果您设置了外部ID,那么很容易告诉salesforce为您找出链接。该操作称为
upsert
(介于
update
insert
之间),可用于两种风格

“基本”upsert用于创建/更新解决方案;意思是“亲爱的Salesforce,请用MyId=1234保存此CompHist记录。我不知道数据库中的Id是什么,坦率地说,我不在乎,去解决这个问题好吗?”

  • 如果没有这样的记录,将创建-1
  • 如果正好有1个匹配项,则将对其进行更新
  • 如果发现的错误超过1个,SF将不知道更新哪一个,并向您抛出错误(这就是为什么标记为“唯一”是个好主意。您可能会更快地发现错误)
“高级”upsert用于维护外键,建立查找。“亲爱的SF,请将此CompHist连接到我的数据库中标记为“ABZ123”的帐户。我是否提到我不关心您的ID,并且在我上传我的资料之前,我不能麻烦先查询您的数据库?”

  • 同样-精确匹配-按预期工作
  • 具有相同外部id值的0或2个帐户=错误

编码plz

我建议您先使用Data Loader或类似的工具来掌握。具体发生了什么,如何映射字段以及如何避免混淆(这两种upsert风格可以同时使用)。一旦您能够以您想要的方式推动更改,您就可以稍微修改您的集成

SOAPAPI上传:(C#底部示例)

REST API:


如果您喜欢Salesforce Apex示例:

那么在阅读您的帖子后,我需要:1)截断CompHist对象。2.)创建关系3.)在我的.NET应用程序中,我需要向SF查询帐户的Salesforce ID。然后,在为该帐户插入数据时,我强制Salesforce在将数据插入CompHist时使用该ID?这基本上会链接我拥有的自定义ID,但Salesforce仍将使用它为该帐户创建的ID?为什么要从CompHist中删除任何数据?上面有“CustomerId”和要记帐的查找/主详细信息,对吗?还是还没有田地?您可以在插入之前查询SF中的帐户字段。。。但我回答的全部要点是向您展示如何根本不必这样做,如何告诉Salesforce为您解决此匹配问题。我今天没有时间,但如果您愿意,我们可以在明天晚上(我在格林尼治标准时间)进行聊天,我将在今天有时间时查看您发送的链接。是的,这两个字段都在我需要链接的对象中,但Salesforce告诉我,如果不先创建查找关系,我就无法创建主详细信息。我相信你知道你在说什么,我是旧金山的新手,可能是想得太多了。因此,如果你愿意抽出几分钟的时间(我是EST-5GMT),聊天会很酷