SalesForce - 使用.Net SDK或Api获取对象的所有字段

问题描述 投票:4回答:1

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

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

例:

dynamic contact = new ExpandoObject();
contact.FirstName = "FirstName";
contact.LastName = "Last";
contact.Email = "[email protected]";
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帮助我们获取对象的字段吗?

c# salesforce soql
1个回答
3
投票

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

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

如果你手工做这个...

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.