Освоение запросов Upsert с помощью PHP и REST API Salesforce

В современном цифровом мире интеграция Salesforce с приложениями PHP стала обычным требованием для многих компаний. Одним из важнейших аспектов этой интеграции является возможность выполнять запросы на обновление, которые позволяют вам либо вставлять новую запись, либо обновлять существующую на основе уникального идентификатора. В этой статье блога мы рассмотрим различные методы обработки запросов на обновление с использованием PHP и REST API Salesforce. Так что хватайте свое программирующее оборудование и приступайте!

Метод 1. Использование cURL и REST API Salesforce
Первый метод предполагает использование возможностей cURL, популярной библиотеки PHP для выполнения HTTP-запросов. Вот пример того, как вы можете выполнить запрос на обновление с помощью cURL:

<?php
$endpoint = "https://your-salesforce-instance.com/services/data/vXX.X/sobjects/Object__c/External_Id__c/external_id_value";
$access_token = "your_salesforce_access_token";
$data = array(
    "Field1__c" => "Value1",
    "Field2__c" => "Value2",
    // Additional fields
);
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Authorization: Bearer $access_token",
    "Content-Type: application/json",
));
$response = curl_exec($ch);
curl_close($ch);
// Handle the response
?>

Метод 2: использование набора инструментов Salesforce PHP
Если вы используете набор инструментов Salesforce PHP, процесс становится еще более простым. Набор инструментов предоставляет набор классов и методов для взаимодействия с REST API Salesforce. Вот пример выполнения запроса на обновление с использованием набора инструментов:

<?php
require_once('path_to_salesforce_php_toolkit/soapclient/SforceEnterpriseClient.php');
$wsdl = 'path_to_salesforce_php_toolkit/soapclient/enterprise.wsdl.xml';
$username = 'your_salesforce_username';
$password = 'your_salesforce_password_and_security_token';
$mySforceConnection = new SforceEnterpriseClient();
$mySforceConnection->createConnection($wsdl);
$mySforceConnection->login($username, $password);
$externalIdField = 'External_Id__c';
$object = new SObject();
$object->type = 'Object__c';
$object->fields = array(
    'Field1__c' => 'Value1',
    'Field2__c' => 'Value2',
    // Additional fields
);
$response = $mySforceConnection->upsert($externalIdField, array($object));
// Handle the response
?>

Метод 3: использование библиотеки PHP Salesforce (например, «phpforce»)
Существует несколько библиотек PHP, которые обеспечивают абстракции и упрощения более высокого уровня для интеграции Salesforce. Одной из таких библиотек является «phpforce». Вот пример выполнения запроса на обновление с использованием библиотеки phpforce:

<?php
require 'vendor/autoload.php';
use Phpforce\SoapClient\ClientBuilder;
use Phpforce\SoapClient\Result\SaveResult;
$wsdl = 'path_to_salesforce_php_toolkit/soapclient/enterprise.wsdl.xml';
$username = 'your_salesforce_username';
$password = 'your_salesforce_password_and_security_token';
$connection = ClientBuilder::create()
    ->setUsername($username)
    ->setPassword($password)
    ->setWsdl($wsdl)
    ->build();
$externalIdField = 'External_Id__c';
$object = new stdClass();
$object->type = 'Object__c';
$object->Field1__c = 'Value1';
$object->Field2__c = 'Value2';
// Additional fields
$response = $connection->upsert($externalIdField, array($object));
// Handle the response
?>

В этой статье мы рассмотрели три различных метода выполнения запросов на обновление с помощью PHP и REST API Salesforce. Независимо от того, предпочитаете ли вы использовать cURL, набор инструментов PHP Salesforce или библиотеку PHP, например phpforce, теперь у вас есть знания и примеры кода для беспрепятственной интеграции Salesforce в ваши приложения PHP. Так что смело внедряйте эти методы в соответствии со своими предпочтениями и требованиями проекта и раскройте весь потенциал интеграции Salesforce в вашу экосистему на базе PHP.