Как предоставить вложенный SObject для поля внешнего ключа - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь создать новую возможность из приложения USSD в salesforce через php rest api.Я анализирую идентификатор типа записи вместо имени типа записи.Ниже приведен фрагмент для создания новой возможности.

public function log_case_opp( $sobject = 'Opportunity', $recordType = '012D00000003H8DIAU', $name='XXXXXX', $account, $stage, $currency='KES - Kenyan Shilling', $close_date ) {

  $url = "$this->instance_url/services/data/v24.0/sobjects/{$sobject}/";

  $content = json_encode(array("Name" => "{$name}",
                               "RecordType" => "{$recordType}",
                               "Account" => "{$account}",
                               "StageName" => "{$stage}",
                               "CurrencyIsoCode" => "{$currency}",
                               "CloseDate" => "{$close_date}"
                              ));

  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_HEADER, false);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_HTTPHEADER,
          array("Authorization: OAuth $this->access_token",
              "Content-type: application/json"));
  curl_setopt($curl, CURLOPT_POST, true);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

  $json_response = curl_exec($curl);

  $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

  if ($status == 400 && $json_response['error_description'] == 'expired authorization code') {
      //access code has been expired
      die('ERROR : new code required');

  }elseif ( $status != 201 ) {

      die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
  }

  curl_close($curl);

  $response = json_decode($json_response, true);

  return $response["id"];

}

При попытке создать возможность появляется ошибка ниже

[{"message":"The value provided for foreign key reference RecordType is not a nested SObject","errorCode":"INVALID_FIELD"}]

Пожалуйста, помогите, что яделать неправильно или не делать

1 Ответ

0 голосов
/ 16 октября 2018

Я смог решить эту ошибку, добавив Id к ссылочным полям, т.е. изменив блок кода $ content на:

$content = json_encode(array("Name" => "{$name}",
                               "RecordTypeId" => "{$recordType}",
                               "AccountId" => "{$account}",
                               "StageName" => "{$stage}",
                               "CurrencyIsoCode" => "{$currency}",
                               "CloseDate" => "{$close_date}"
                              ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...