我有一个简单的自定义联系对象(使用API名称Contact__c),我在SalesForce DE站点中创建了一个具有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 vs Partner,并且每次更改自定义字段时都需要下载最新的enterprise.wsdl.
有什么指针吗?
想出来我相信,问题与我如何解析正在返回的数据有关.我现在只是直接访问它,而不是将返回的数据提供给SObject:
原文链接:https://www.f2er.com/php/134057.htmltry { $mySforceConnection = new SforcePartnerClient(); $mySoapClient = $mySforceConnection->createConnection(API_PATH . '/soapclient/partner.wsdl'); $mylogin = $mySforceConnection->login(API_USER,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); }