我有一个自定义对象在Salesforce,我需要建立一个主细节关系从帐户。账户是主,CompHist是细节。我遇到的问题是,我需要将关系设置为在对象中的自定义字段之外工作。示例:
1.)Account有一个名为CustomerId的自定义字段。
2.)CompHist还有名为CustomerId的自定义字段。
3.)我需要能够通过CustomerId字段将其链接在一起,以便生成报告。
大约有2,000条记录被插入到CompHist中,大约在每个月的第8天。这是在一个.NET应用程序中完成的,该应用程序在预定的时间启动,从数据库收集信息,然后通过SOAP将数据上传到salesforce。
也许我误解了Salesforce关系是如何运作的,因为我在销售人员开发方面还很新(几个月)。
谢谢,兰迪
发布于 2013-12-15 01:29:07
有一种方法可以让它在没有触发器的情况下工作,这些触发器可以链接记录或预先查询SF来学习.NET中的帐户is,然后再按CompHistories。
设置
On Account:在CustomerId字段上设置“外部ID”复选框。我也建议设置“独特”。
在CompHist上:您需要做出决定,是否可以将它们移动,或者何时设置与帐户的关系--它将永远保持这样的状态。当您做出这个决定时,勾选/取消查找/ m-d表定义中的“可修复的主细节”。
如果您在这些细节上有一些Id,比如“行项目号”--请考虑创建一个Ext。Id。对他们也是。将来当最终用户对报告提出疑问时,您可能会节省一些时间,否则您将不得不进行某种“刷新”,并从.NET中推送所有行(将帮助您确定要插入的内容,以及要更新的内容)。
此时,考虑如何填充丢失的数据( Ext中的所有空值)是很有用的。Id)字段。
关系的实际建立
如果设置了外部ids,就很容易告诉salesforce为您找到链接。该操作称为upsert
( update
和insert
之间的混合),可用于2种口味。
“基本”插入用于创建/更新解决方案;意思是“亲爱的Salesforce,请用MyId=1234保存此MyId=1234记录。我不知道数据库中的Id是什么,坦率地说,我不在乎,去找出这个吗?”
“高级”插入用于维护外键,建立查找。“亲爱的SF,请把这个CompHist连接到在我的数据库中标记为"ABZ123”的帐户上。我有没有说过我不关心您的in,也不想在我上传我的东西之前先查询您的数据库?“
码plz
我建议您先使用Data或类似的工具来掌握。关于到底发生了什么,如何映射字段,以及如何避免混淆(这2种不同的插入方式可以同时使用)。一旦您能够按您想要的方式推进这些更改,您就可以稍微修改集成了。
SOAP向上插入:upsert.htm (底部的C#示例)
REST:upsert.htm
如果您希望使用Salesforce Apex示例:Can I insert deserialized JSON SObjects from another Salesforce org into my org?
https://stackoverflow.com/questions/20573980
复制