我正在使用带有Enterprise WSDL的PHP Toolkit(v20)来访问我的webapp中的Salesforce对象和记录。
我成功地将所有内容都放在了我的本地主机上。
当我将脚本上传到我的webhost(inmotion)时,create函数根本不起作用。它没有显示任何错误或警告(虽然我已将错误报告设置为E_ALL),但脚本执行只是在遇到create函数时停止。
但是,使用查询函数运行查询或获取服务器时间戳等工作正常。
同样,它在我的localhost上运行正常,所以我不认为它是一个代码问题,但对于我的生活我无法弄清楚问题,因为没有显示错误/警告,也没有抛出异常。
我应该澄清一下,虽然在这个例子中我试图插入我的自定义对象,但我也尝试插入标准的Account或Contact对象,但它没有任何区别。
如果有人可以指导我如何解决问题,那将会很棒。
感谢。
代码如下:
<html>
<head></head>
<body>
<?php
ini_set("soap.wsdl_cache_enabled", "0");
define("USERNAME", "myusername");
define("PASSWORD", "mypassword");
define("SECURITY_TOKEN", "mysecuritytoken");
require_once ('soapclient/SforceEnterpriseClient.php');
try {
$sflink = new SforceEnterpriseClient();
$sflink->createConnection("soapclient/auv.wsdl.xml",null,array('trace'=>true));
//$sflink->createConnection("soapclient/auv.wsdl.xml");
$sflink->login(USERNAME, PASSWORD.SECURITY_TOKEN);
// Test to get the server timestamp - Works fine.
echo "Getting Timestamp<br>";
$resp = $sflink->getServerTimestamp();
print_r($resp);
echo "<br>";
// Test to query the server - Works fine.
$query = "SELECT Id, AccountId, FirstName, LastName FROM Contact WHERE Email = 'ankur@alfauv.com'";
$response = $sflink->query($query);
echo "Select result is: <br>";
print_r($response);
echo "<br>";
// Insert into UVSI Search Object (My custom object) - Does not work
$sObject = new stdclass();
$sObject->Account__c = "00190000006yxUrAAI";
$sObject->Contact__c = "00390000005ZYLcAAO";
$sObject->Application__c = "AAP";
$sObject->Flow__c = 66;
$sObject->Flow_Unit__c = "m3-hr";
$sObject->Dose__c = 33;
$sObject->UVT__c = 99;
echo "Attempting creation<br>";
$createResponse = $sflink->create(array($sObject), 'UVSI_Search__c');
echo "This line never prints.<br/>";
} catch (Exception $e) {
echo "In error condition<br>";
echo $sflink->getLastRequest();
echo $e->faultstring;
exit();
}
?>
</body>
</html>
答案 0 :(得分:0)
经过3天的折磨,我终于找到了解决方案。我将我的网站的PHP版本从5.2更改为5.3,问题就此消失了。
我仍然不知道为什么它不起作用,但这是解决方案,以防其他人遇到类似的问题。