我正在使用带有 Enterprise WSDL 的 PHP Toolkit (v20) 来访问我的 Web 应用程序中的 Salesforce 对象和记录。
我成功地让我的本地主机上的一切正常工作。
当我将脚本上传到我的虚拟主机(inmotion)时,创建功能根本不起作用。它不会显示任何错误或警告(尽管我已将错误报告设置为 E_ALL),但脚本的执行会在遇到 create 函数时停止。
但是,使用查询函数或获取服务器时间戳之类的方法运行查询可以正常工作。
同样,它在我的本地主机上运行良好,所以我不认为它是代码问题,但对于我的生活,我无法弄清楚问题,因为没有显示错误/警告,也没有抛出异常。
我应该澄清一下,虽然在这个例子中我试图插入到我的自定义对象中,但我也尝试插入到标准的 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>