php
  • salesforce
  • soql
  • 2013-03-29 2 views 2 likes 
    2

    PHP API를 사용하여 SalesForce 데이터베이스를 쿼리하려고합니다. 나는 성공적으로 검색 결과를 얻지 만 그들은 거의 쓸모가 없습니다.SalesForce 쿼리 결과에 문제가 있습니다 - PHP 툴킷

    검색어 : $ 응답 -> 기록의

    $query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'"; 
    $response = $client->query($query); 
    

    에서 print_r 출력 :

     
    stdClass Object (
        [type] => Contact 
        [Id] => Array 
         (
          [0] => ###### 
          [1] => ###### 
         ) 
    
        [any] => NameTest*********@gmail.com 
    ) 
    

    나는 결과에 인 print_r을 수행 할 때, 나는 다음과 같은 쿼리의 결과를받을 출력 개체에서 [fields] 요소를 볼 것으로 예상되지만, 필자는이 필드에 구분 기호가없는 문자열 만 볼 수 있습니다. partner.wsdl.xml을 사용 중이며 데이터를 SF로 푸시하는 데 문제가 없으며 검색 만합니다. 어떤 아이디어라도 [fields] 요소 나 [any] 요소에서 최소한 구분자를 얻는 방법은 무엇입니까?

    답변

    1

    가치가있는 부분에 대해서는 "쿼리"메서드와 함께 API의 "검색"메서드를 사용하여 필드를 검색 할 수있었습니다. 쿼리 메서드를 사용하여 SalesForce ID를 얻었습니다. 쿼리에서 검색 조건을 지정한 다음 쿼리 메서드의 특정 ID로 검색 함수를 사용했기 때문입니다. 가장 효율적인 것 같지 않지만 일을 끝내게됩니다.

    "레코드 검색"섹션을 참조하십시오.

    http://wiki.developerforce.com/page/Getting_Started_with_the_Force.com_Toolkit_for_PHP

    1

    당신이 SObject 대신 stdClass을 다시 얻고있는 것으로 보인다. 이 작업은 자동으로 수행되지만 명시 적으로 레코드를 new SObject() 생성자에 전달하십시오. 이런 식으로 뭔가 (records 실제로 배열 인 경우 루프으로 변경해야합니다가) :

    new SObject($response->records); 
    

    지금, 당신은 결과에 ->fields를 호출 할 수 있어야합니다.

    까지 [any]까지 구분 기호가 표시되지 않는 것은 XML 태그이고 브라우저에서 보는 것이기 때문에 태그가 HTML로 렌더링되어 사라지는 것입니다. 페이지의 HTML 소스를보고 시도해야합니다.

    6

    나는이 동일한 문제를 해결했습니다. 나는 결국 다음과 같은 코드로 작업있어 :

    $query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'"; 
    
    $response = $mySforceConnection->query($query); 
    
    foreach ($response as $record) { 
        $sObject = new SObject($record); 
        print_r($sObject); 
    } 
    
    2
    $query = "SELECT C.Id, C.FirstName, C.LastName, C.Email FROM Contact C WHERE C.Email = '*******@gmail.com'"; 
    
    $response = $mySforceConnection->query($query); 
    
        foreach ($response as $record) { 
        $sObject = new SObject($record); 
    
        echo $sObject->fields->FirstName; 
        echo $sObject->fields->LastName; 
        echo $sObject->fields->Email; 
        echo $sObject->Id; //(Id will show like this) 
    
    } 
    
    관련 문제