У меня есть простой настраиваемый объект контакта (с именем 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 каждый раз, когда вы меняете настраиваемые поля.
Есть указатели?