.Net Salesforce 集成 - 从 List<sObject> 获取列值

Posted

技术标签:

【中文标题】.Net Salesforce 集成 - 从 List<sObject> 获取列值【英文标题】:.Net Salesforce integration - getting column values from List<sObject> 【发布时间】:2014-01-26 01:06:23 【问题描述】:

我们在 .Net 与 Salesforce.com 的集成中使用了合作伙伴 API。我正在使用以下代码将 Account 记录添加到字典中,并使用 ExternalId__c 作为每条记录的键。

public Dictionary<string, List<sObject>> getAccountMap(SalesforceConnection clientConn)

    Dictionary<string, List<sObject>> accountByMerchNum = new Dictionary<string, List<sObject>>();

    List<sObject> sObjRTypes = clientConn.performQuery("SELECT Id, ExternalId__c FROM Account");

    if (sObjRTypes != null && sObjRTypes.Count > 0)
    
        sObject Account = sObjRTypes[0];
        foreach (XmlElement elem in Account.Any)
        
            if (elem.LocalName.ToString() == "ExternalId__c")
            
                if (accountByMerchNum.ContainsKey(elem.InnerText))
                
                    accountByMerchNum[elem.InnerText].Add(Account);
                
                else
                
                    accountByMerchNum.Add(elem.InnerText, new List<sObject>  Account );
                
            
        
    
    return accountByMerchNum;

如何从 Dictionary> 中提取特定的列值?我猜它应该类似于以下内容......但到目前为止我的猜测是不正确的。

Dictionary<string, List<sObject>> accountDictionary = new Dictionary<string, List<sObject>>();
String tempId = accountDictionary[externalId].getId();

从这种类型的集合中提取特定列值的正确语法是什么?

【问题讨论】:

您需要使用合作伙伴 API 的任何特殊原因?如果它不必与几个不同的 Salesforce 组织一起工作,那么使用企业版可能会简单得多。解析(使用)WSDL 将为您提供具有具体字段的 Account 或 Contact 等类,使用起来更简单。 我们正在使用合作伙伴,因为正在处理的数据量很大。 【参考方案1】:

我在您的代码中看到了一些模棱两可的东西 -

    您正在查询所有 Account 对象并只处理第一个。如果您是 只对某些对象感兴趣,为什么不在查询中提供谓词(WHERE 子句)?

    您的字典值为List&lt;sObject&gt;。如果'ExternalId__c' 是一个唯一的自定义字段,您将始终为每个“ExternalId__c”值提供一个帐户对象。也许字典应该是字符串-> sObject。然后,您可以访问字典值并对其调用 sObject 方法。 dict[externalId].getId() 等

【讨论】:

以上是关于.Net Salesforce 集成 - 从 List<sObject> 获取列值的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net 中使用 describeSObject 检索自定义字段

SalesForce 集成 - 在 SF 对象定义更改时通知外部系统

AWS Appflow <-> Salesforce 集成

使用 Auth0 SSO 集成 Salesforce 和 Angular 应用程序

从Salesforce到Taleo的基本HTTP身份验证

Salesforce 集成用户最佳实践