Salesforce PHP Toolkit create()不起作用

时间:2013-09-18 08:36:08

标签: php salesforce

我正在使用带有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>

1 个答案:

答案 0 :(得分:0)

经过3天的折磨,我终于找到了解决方案。我将我的网站的PHP版本从5.2更改为5.3,问题就此消失了。

我仍然不知道为什么它不起作用,但这是解决方案,以防其他人遇到类似的问题。