SalesForce - 使用.Net SDK或Api

时间:2018-02-01 05:39:38

标签: c# salesforce soql

我们的系统从我们想要将记录(例如联系人,帐户,机会等)推送到SalesForce。

为实现这一目标,我们使用了ForceToolKit for .Net我们可以使用ForceToolKit函数成功插入\更新记录。

示例:

dynamic contact = new ExpandoObject();
contact.FirstName = "FirstName";
contact.LastName = "Last";
contact.Email = "test@test.com";
contact.MobilePhone = "1234567890";
var successResponse = await forceClient.CreateAsync("Contact", contactList);

我们面临的问题如下所述。

在我们的源系统中,我们几乎没有自定义字段,这些字段在SalesForce中不是标准字段,对于不同的用户可能有所不同。

因此,首先我们必须在源系统和SalesForce之间映射自定义字段。

我们想要获取SalesForce对象的所有字段以映射字段。

我们无法在ForceToolkitForNet中找到任何功能。 正如here所述,我们使用dynamic返回类型尝试了QueryById函数,但它抛出异常。

var contactFields = await forceClient.QueryByIdAsync<dynamic>("Contact", successResponse.Id);

例外: "SELECT FROM Contact where Id = '{contactId}' Incorrect syntax near FROM".

获取SalesForce的任何对象字段的方法有哪些。 任何人都可以使用SalesForceToolkit或SalesForceApi来帮助我们获取对象的字段吗?

1 个答案:

答案 0 :(得分:3)

SOQL没有SELECT * FROM Account概念,您需要事先了解这些字段。你在这里几乎没有选择。

您可以使用&#34;描述&#34;调用。我最近回答了类似的问题,但它是关于REST API:https://stackoverflow.com/a/48436870/313628,我认为您的解决方案是基于SOAP的。

如果你手动这样做......

当您使用工具包时 - 这些方法已经存在于某处。实验一下。在我给你的链接下的C#例子和库之间,你应该能够找到一些东西。

我的意思是我很天真但只是在搜索回购中&#34;描述&#34;看起来很有希望:https://github.com/developerforce/Force.com-Toolkit-for-NET/search?utf8=%E2%9C%93&q=describe&type=,也许是this example

还有一种方法是不在运行时学习这些信息,而是使用Salesforce生成的WSDL文件,包含所有字段&amp;从中生成C#代码。缺点是,每次要在应用程序中支持新的对象/字段时,您都需要重新生成它。阅读&#34;企业WSDL&#34;开始。

最后但并非最不重要 - 有多少或多或少的友好工具可以转储Salesforce元数据。我是https://www.datasert.com/products/realforce/的粉丝,但只是环顾四周。地狱,甚至用DataLoader导出一些记录都会给你所有的字段名称,如果你需要的话。