【问题标题】:Salesforce PHP Toolkit - pullup data from nested SOQL querySalesforce PHP Toolkit - 从嵌套 SOQL 查询中提取数据
【发布时间】:2017-07-12 14:54:28
【问题描述】:

理想情况下,当我通过 PHPToolkit 在 salesforce 上执行单个 SOQL 查询时,我没有任何问题。

示例代码:

$querySourceQueues = "SELECT Id, AccountId, CaseNumber FROM Case WHERE CaseNumber = '00491258'";
$result = $mySforceConnection->query($querySourceQueues);
if ($result->size > 0) {
     foreach ($result->records as $case) {
          $CaseId = $case->Id;
          $AccountId = $case->AccountId;
          $CaseNum = $case->CaseNumber;

          echo "Case ID: ".$CaseId."<br>";
          echo "Account ID: ".$AccountId."<br>";
          echo "Case Number: ".$CaseNum."<br>";
     }
} else {
     echo "No Result";
}

但是当我做嵌套 SOQL 查询时,我不知道如何从子查询的结果中提取数据。下面是我的代码:

$querySourceQueues2 = "SELECT Id, AccountId, CaseNumber, (SELECT ActivityDate, Subject, Description FROM ActivityHistories ORDER BY ActivityDate DESC, LastModifiedDate DESC LIMIT 500) FROM Case WHERE CaseNumber = '00491258'";
$result2 = $mySforceConnection->query($querySourceQueues2);
if ($result->size > 0) {
     foreach ($result2->records as $case) {

          ////No Error in this part
          $CaseId = $case->Id;
          $AccountId = $case->AccountId;
          $CaseNum = $case->CaseNumber;
          echo "Case ID: ".$CaseId."<br>";
          echo "Account ID: ".$AccountId."<br>";
          echo "Case Number: ".$CaseNum."<br>";

          ////I got the error on this part
          $ActivityDate = $case->ActivityHistories->ActivityDate; // Line 66
          $Subject = $case->ActivityHistories->Subject; // Line 67
          $Description = $case->ActivityHistories->Description; // Line 68
          echo "Activity Date: ".$ActivityDate."<br>";
          echo "Subject: ".$Subject."<br>";
          echo "Description: ".$Description."<br>";
     }
} else {
     echo "No result.";
}

这是我从上面得到的错误代码。

注意: 未定义属性:C:\xampp\htdocs\automation\tcse\engine\nested_query.php 中的 stdClass::$ActivityDate 在第 66 行

注意: 未定义属性:stdClass::$Subject in C:\xampp\htdocs\automation\tcse\engine\nested_query.php 在第 67

注意: 未定义属性:stdClass::$Description in C:\xampp\htdocs\automation\tcse\engine\nested_query.php在第 68

当我执行 echo print_r($result2->records); 这就是我得到的结果:

Array (
    [0] => stdClass Object (
        [Id] => 5000B00000cfiq2QAA
        [AccountId] => 001U000000aBVbIIAW
        [ActivityHistories] => stdClass Object (
            [done] => 1 [queryLocator] => [records] => Array (
                [0] => stdClass Object (
                    [Id] => [ActivityDate] => 2017-07-06
                    [Description] => This is a system-generated email...
                    [Subject] => Request has been updated
                )
                [1] => stdClass Object (
                    [Id] => [ActivityDate] => 2017-07-06
                    [Description] => This is a system-generated email...
                    [Subject] => Email: Request has been updated
                )
            ) [size] => 2
        )
        [CaseNumber] => 00491258
    )
) 1

我的目标是获取 ActivityHistories 中的数据(ID、描述和主题),以便我可以将其分配给变量并继续我的项目。我需要你们的帮助。

【问题讨论】:

    标签: php salesforce


    【解决方案1】:

    我和朋友通过下面的代码解决了这个问题:

    $querySourceQueues2 = "SELECT Id, AccountId, CaseNumber, (SELECT ActivityDate, Subject, Description FROM ActivityHistories ORDER BY ActivityDate DESC, LastModifiedDate DESC LIMIT 500) FROM Case WHERE CaseNumber = '00491258'";
    $result2 = $mySforceConnection->query($querySourceQueues2);
    if ($result2->size > 0) {
        foreach ($result2->records as $case) {
            $CaseId = $case->Id;
            $AccountId = $case->AccountId;
            $CaseNum = $case->CaseNumber;
            echo "Case ID: ".$CaseId."<br>";
            echo "Account ID: ".$AccountId."<br>";
            echo "Case Number: ".$CaseNum."<br>";
    
            foreach ($case->ActivityHistories->records as $record) {
                $ActivityDate = $record->ActivityDate;
                $Subject = $record->Subject;
                $Description = $record->Description;
    
                echo "Activity Date: ".$ActivityDate."<br>";
                echo "Subject: ".$Subject."<br>";
                echo "Description: ".$Description."<br>";
            }
        }
    } else {
        echo "No result.";
    }
    

    通俗地说:由于结果是数组中的数组,所以我们在循环中使用循环提取数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多