gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:29:57 27 4
gpt4 key购买 nike

我们有自己的系统,可以将记录(例如联系人、客户、机会等)推送到 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 获取对象的字段?

最佳答案

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

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

如果您手动执行此操作...

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

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

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

最后但同样重要的是 - 有或多或少友好的工具可以转储 Salesforce 元数据。我是https://www.datasert.com/products/realforce/的粉丝但只是看看周围。见鬼,如果您只需要这些,即使使用 DataLoader 导出一些记录也会为您提供所有字段名称。

关于c# - SalesForce - 使用 .Net SDK 或 Api 获取对象的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com