shubinmi/salesforce-bulk-api
Composer 安装命令:
composer require shubinmi/salesforce-bulk-api
包简介
Client for Salesforce Bulk Api. Easy way to manipulate your Salesforce data.
关键字:
README 文档
README
Easy way to manipulate your Salesforce data
Don't worry, Be happy
Features
- INSERT job
- UPDATE job
- UPSERT job
- DELETE job
- QUERY (SELECT) job
For example see to the tests
Installation
Install the latest version with
$ composer require shubinmi/salesforce-bulk-api
Basic Usage
<?php use SalesforceBulkApi\dto\CreateJobDto; use SalesforceBulkApi\objects\SFBatchErrors; use SalesforceBulkApi\conf\LoginParams; use SalesforceBulkApi\services\JobSFApiService; // Set up API Client $params = (new LoginParams) ->setUserName('mySFLogin') ->setUserPass('MySFPass') ->setUserSecretToken('mySecretTokenFomSF'); // (optional) Flag as Sandbox // $params->setEndpointPrefixAsSandbox(); // Set up SF job $jobRequest = (new CreateJobDto) ->setObject('My_User__c') ->setOperation(CreateJobDto::OPERATION_INSERT); // Use CreateJobDto::OPERATION_UPSERT for upsert operation // (optional if Upsert) Set an External Id // $upsertKey = 'My_External_Id__c'; // $jobRequest->setExternalIdFieldName($upsertKey); // Data Batches $data = [ [ // Batch 1 [ 'Email__c' => 'new@user.net', 'First_Name__c' => 'New Net' ], [ 'Email__c' => 'new@user.org', 'First_Name__c' => 'New Org' ], ], [ // Batch 2 [ 'Email__c' => 'new1@user.net', 'First_Name__c' => 'New1 Net' ], [ 'Email__c' => 'new1@user.org', 'First_Name__c' => 'New1 Org' ], ], [ // Batch 3 [ 'Email__c' => 'new2@user.net', 'First_Name__c' => 'New2 Net' ], [ 'Email__c' => 'new2@user.org', 'First_Name__c' => 'New2 Org' ], ], ]; // Init Job $jobService = (new JobSFApiService($params)) ->initJob($jobRequest); // Add batches of data, can be up to 10000 records long each foreach ($data as $batchData) { $jobService->addBatchToJob($batchData); } // Gather up an ordered list of Batch ids to reference data in the batch, specifically on error handling // JobSFApiService::waitingForComplete update job statuses in the order returned from Salesforce // This new order is not necessarily the same order the data was submitted in making referencing the original data difficult $job = $jobService->getJob(); $batchesInfo = $job->getBatchesInfo(); $batchIdReference = array_flip(array_map(function($batchInfoDto){ return $batchInfoDto->getId(); }, $batchesInfo)); // Close Job and Wait for Job completion $jobService ->closeJob() ->waitingForComplete(); // Collect jobs errors $errors = $jobService->getErrors(); // Operate with errors foreach ($errors as $error) { /** @var SFBatchErrors $error */ $errorsBatch = $error->getBatchInfo(); $batchId = $errorsBatch->getId(); $batchNo = $batchIdReference[$batchId]; $errorsMsg = $error->getErrorMessages(); $errorsElementNumber = $error->getErrorNumbers(); if (empty($errorsElementNumber)) { // No specific errors echo "Batch $batchId (#$batchNo) returned a general error" . PHP_EOL; echo "\tState: " . $errorsBatch->getState() . ' (' . $errorsBatch->getStateMessage() . ')' . PHP_EOL; echo "\tNote: An error here might mean the data types sent are incorrect (eg \"0\" vs 0/false)." . PHP_EOL; } else { echo "Batch $batchId (#$batchNo) failed for following rows:" . PHP_EOL; foreach ($errorsElementNumber as $errorMsgKey => $errorRowNumber) { echo "\tRow number = " . $errorRowNumber . " Error message = " . $errorsMsg[$errorMsgKey] . PHP_EOL; $record = $data[$batchNo][$errorRowNumber]; echo "\t\tEmail = " . $record['Email__c'] . PHP_EOL; echo "\t\tFirst Name = " . $record['First_Name__c'] . PHP_EOL; } } }
Contribute safely
$ sh ./vendor/phpunit/phpunit/phpunit ./tests/services
shubinmi/salesforce-bulk-api 适用场景与选型建议
shubinmi/salesforce-bulk-api 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 60.05k 次下载、GitHub Stars 达 6, 最近一次更新时间为 2017 年 03 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「client」 「salesforce」 「bulk」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 shubinmi/salesforce-bulk-api 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 shubinmi/salesforce-bulk-api 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 shubinmi/salesforce-bulk-api 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PHP client for the Salesforce SOAP API
WakeOnWeb Salesforce client
FormRelay route for SFDC Web-To-Lead API.
A PSR-7 compatible library for making CRUD API endpoints
Mock PSR-18 HTTP client
Asynchronous MQTT client built on React
统计信息
- 总下载量: 60.05k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2017-03-06