Name | dh-papi-sdk JSON |
Version |
1.0.13
JSON |
| download |
home_page | None |
Summary | Python SDK for Delivery Hero's Platform API APIGee routers |
upload_time | 2025-08-07 12:23:43 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
salesforce
api
sdk
bulk
deliveryhero
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
## 📋 API Modules
### VRM Bulk Operations
Complete Salesforce bulk API integration with 100% endpoint coverage.
```python
# Get bulk client
bulk = client.vrm_bulk
# Core operations
jobs = bulk.get_all_jobs() # List all jobs
job = bulk.create_job("Account", "insert") # Create INSERT job
job = bulk.create_job("Account", "upsert", external_id_field="Id") # Create UPSERT job
info = bulk.get_job_info(job_id) # Get job status
bulk.upload_job_data(job_id, csv_data) # Upload data
bulk.close_job(job_id) # Close for processing
# Results retrieval
successful = bulk.get_successful_results(job_id) # Get successful records
failed = bulk.get_failed_results(job_id) # Get failed records
unprocessed = bulk.get_unprocessed_records(job_id) # Get unprocessed records
# Management
bulk.delete_job(job_id) # Delete job
```
**⚠️ Important Notes:**
- **UPSERT operations** currently require an SDK update to support the `external_id_field` parameter
- **INSERT operations** work with the current SDK version
- For UPSERT, you must specify an External ID field (e.g., "Id", "External_ID__c")
**📚 [Complete VRM Bulk API Documentation →](sdk/py/docs/vrm-bulk.md)**
*Includes all 9 methods, complete workflow examples, and production-ready code samples.*
## 🔍 Troubleshooting
### Common Issues
#### 1. Authentication Issues
```python
# Test connection
if client.test_connection():
print("✅ Authentication working")
else:
print("❌ Check credentials")
```
#### 2. UPSERT Operation Failures
```
Error: InvalidJob : External ID was blank for [Object]. An External ID must be specified for upsert.
```
**Solution:** Your current SDK version doesn't support the `external_id_field` parameter required for upsert operations.
**Workaround:** Use INSERT operations instead:
```python
# Instead of upsert, use insert for new records
job = bulk.create_job("Bank_Information__c", "insert")
```
**Permanent Fix:** Update the SDK's `create_job` method to support:
```python
def create_job(self, object_name: str, operation: str, external_id_field: str = None):
# Implementation needed in vrm_bulk_client.py
```
#### 3. Debug Mode
```python
# Enable detailed logging in your application
import logging
logging.basicConfig(level=logging.DEBUG)
```
#### 4. APIGee Proxy Issues
If you see 403/500 errors:
- Check APIGee permissions and OAuth scopes
- Verify Salesforce backend connectivity
- Contact Platform API team with request IDs from error logs
## 🚧 Known Limitations
### Current SDK Version (v1.0.13)
- ✅ **INSERT operations**: Fully supported
- ❌ **UPSERT operations**: Requires SDK update to support `external_id_field` parameter
- ✅ **UPDATE/DELETE operations**: Supported (standard operations)
- ✅ **All result retrieval methods**: Fully supported
### Upcoming Features
- Enhanced upsert operation support with external ID fields
- Additional validation and error handling improvements
## 🔄 Version History
- **v1.0.13** - Current release with INSERT operations support
- **v1.1.0** - Planned release with full UPSERT support
Raw data
{
"_id": null,
"home_page": null,
"name": "dh-papi-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "salesforce, api, sdk, bulk, deliveryhero",
"author": null,
"author_email": "Delivery Hero Platform Team <dh_salesforce_platform_api@deliveryhero.com>",
"download_url": "https://files.pythonhosted.org/packages/8a/db/3b179003884ea0f10cb0d61c588bfdfeaade931d870b80420715bc398000/dh_papi_sdk-1.0.13.tar.gz",
"platform": null,
"description": "## \ud83d\udccb API Modules\n\n### VRM Bulk Operations\nComplete Salesforce bulk API integration with 100% endpoint coverage.\n\n```python\n# Get bulk client\nbulk = client.vrm_bulk\n\n# Core operations\njobs = bulk.get_all_jobs() # List all jobs\njob = bulk.create_job(\"Account\", \"insert\") # Create INSERT job\njob = bulk.create_job(\"Account\", \"upsert\", external_id_field=\"Id\") # Create UPSERT job\ninfo = bulk.get_job_info(job_id) # Get job status\nbulk.upload_job_data(job_id, csv_data) # Upload data\nbulk.close_job(job_id) # Close for processing\n\n# Results retrieval\nsuccessful = bulk.get_successful_results(job_id) # Get successful records\nfailed = bulk.get_failed_results(job_id) # Get failed records \nunprocessed = bulk.get_unprocessed_records(job_id) # Get unprocessed records\n\n# Management\nbulk.delete_job(job_id) # Delete job\n```\n\n**\u26a0\ufe0f Important Notes:**\n- **UPSERT operations** currently require an SDK update to support the `external_id_field` parameter\n- **INSERT operations** work with the current SDK version\n- For UPSERT, you must specify an External ID field (e.g., \"Id\", \"External_ID__c\")\n\n**\ud83d\udcda [Complete VRM Bulk API Documentation \u2192](sdk/py/docs/vrm-bulk.md)**\n\n*Includes all 9 methods, complete workflow examples, and production-ready code samples.*\n\n## \ud83d\udd0d Troubleshooting\n\n### Common Issues\n\n#### 1. Authentication Issues\n```python\n# Test connection\nif client.test_connection():\n print(\"\u2705 Authentication working\")\nelse:\n print(\"\u274c Check credentials\")\n```\n\n#### 2. UPSERT Operation Failures\n```\nError: InvalidJob : External ID was blank for [Object]. An External ID must be specified for upsert.\n```\n\n**Solution:** Your current SDK version doesn't support the `external_id_field` parameter required for upsert operations.\n\n**Workaround:** Use INSERT operations instead:\n```python\n# Instead of upsert, use insert for new records\njob = bulk.create_job(\"Bank_Information__c\", \"insert\")\n```\n\n**Permanent Fix:** Update the SDK's `create_job` method to support:\n```python\ndef create_job(self, object_name: str, operation: str, external_id_field: str = None):\n # Implementation needed in vrm_bulk_client.py\n```\n\n#### 3. Debug Mode\n```python\n# Enable detailed logging in your application\nimport logging\nlogging.basicConfig(level=logging.DEBUG)\n```\n\n#### 4. APIGee Proxy Issues\nIf you see 403/500 errors:\n- Check APIGee permissions and OAuth scopes\n- Verify Salesforce backend connectivity\n- Contact Platform API team with request IDs from error logs\n\n## \ud83d\udea7 Known Limitations\n\n### Current SDK Version (v1.0.13)\n- \u2705 **INSERT operations**: Fully supported\n- \u274c **UPSERT operations**: Requires SDK update to support `external_id_field` parameter \n- \u2705 **UPDATE/DELETE operations**: Supported (standard operations)\n- \u2705 **All result retrieval methods**: Fully supported\n\n### Upcoming Features\n- Enhanced upsert operation support with external ID fields\n- Additional validation and error handling improvements\n\n## \ud83d\udd04 Version History\n\n- **v1.0.13** - Current release with INSERT operations support\n- **v1.1.0** - Planned release with full UPSERT support\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python SDK for Delivery Hero's Platform API APIGee routers",
"version": "1.0.13",
"project_urls": {
"Repository": "https://github.com/deliveryhero/dh-sf-pa-apigee"
},
"split_keywords": [
"salesforce",
" api",
" sdk",
" bulk",
" deliveryhero"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "cd09602ea478671ba0cbb25a2f1e0900763c6da348499f454689aa4edb1a1ca0",
"md5": "7ed83a512b94e36f73afc752ecb68644",
"sha256": "d1aa6e2d54da5b7c46e4c37e65c80881244baa45ab41555db531e10cd2ec0993"
},
"downloads": -1,
"filename": "dh_papi_sdk-1.0.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7ed83a512b94e36f73afc752ecb68644",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 365367,
"upload_time": "2025-08-07T12:23:41",
"upload_time_iso_8601": "2025-08-07T12:23:41.830109Z",
"url": "https://files.pythonhosted.org/packages/cd/09/602ea478671ba0cbb25a2f1e0900763c6da348499f454689aa4edb1a1ca0/dh_papi_sdk-1.0.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8adb3b179003884ea0f10cb0d61c588bfdfeaade931d870b80420715bc398000",
"md5": "493cedf66747c7de8f0a5a745bee8fc1",
"sha256": "a47777eb7de8a80bf544fa2244493508e467670e167191d3145ff43bf78249c0"
},
"downloads": -1,
"filename": "dh_papi_sdk-1.0.13.tar.gz",
"has_sig": false,
"md5_digest": "493cedf66747c7de8f0a5a745bee8fc1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 99788,
"upload_time": "2025-08-07T12:23:43",
"upload_time_iso_8601": "2025-08-07T12:23:43.391820Z",
"url": "https://files.pythonhosted.org/packages/8a/db/3b179003884ea0f10cb0d61c588bfdfeaade931d870b80420715bc398000/dh_papi_sdk-1.0.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 12:23:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "deliveryhero",
"github_project": "dh-sf-pa-apigee",
"github_not_found": true,
"lcname": "dh-papi-sdk"
}