我在 SalesForce DE 站点中创建了一个简单的自定义联系人对象(API 名称为 Contact__c),该对象有一个 Full_Name__c 字段(用于测试连接)。
然后我尝试通过 PHP 检索所有联系人,特别是此字段:
try {
$mySforceConnection = new SforcePartnerClient();
$mySoapClient = $mySforceConnection->createConnection(API_PATH . '/soapclient/partner.wsdl');
$mylogin = $mySforceConnection->login(API_USER, API_PASS . API_SECURITY_TOKEN);
$query = 'SELECT C.Id, C.Full_Name__c
FROM Contact__c C';
$result = $mySforceConnection->query($query);
$sObject = new SObject($result->records[0]);
print_r($sObject);
} catch(Exception $e) {
print_r($e);
}
我已经下载了最新的partner.wdsl(尽管作为合作伙伴WSDL,它是松散类型的,并且不需要在创建/添加自定义对象和/或更新字段时进行下载,对吗?)。我已验证用户可以通过 ForceExplorer 连接并查看自定义字段。但是当我运行上面的代码时,它会连接但仅返回以下内容:
SObject Object ( [type] => Contact__c [fields] => [Id] => a )
我没有收到任何错误、无效字段错误等,但我一生都无法弄清楚为什么这不起作用。
我在这里看到了这个示例,但它似乎特定于企业与合作伙伴,并且每次更改自定义字段时都需要下载最新的 enterprise.wsdl。
有什么指点吗?
我相信,问题与我如何解析返回的数据有关。我现在只是直接访问它,而不是将返回的数据输入到 SObject 中:
try {
$mySforceConnection = new SforcePartnerClient();
$mySoapClient = $mySforceConnection->createConnection(API_PATH . '/soapclient/partner.wsdl');
$mylogin = $mySforceConnection->login(API_USER, API_PASS . API_SECURITY_TOKEN);
$query = 'SELECT C.Id, C.Full_Name__c
FROM Contact__c C';
$result = $mySforceConnection->query($query);
for($i = 0; $i < count($result->records); $i++) {
print_r($result->records[$i]->fields->Full_Name__c);
}
} catch(Exception $e) {
print_r($e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)