dh-papi-sdk


Namedh-papi-sdk JSON
Version 1.0.13 PyPI version JSON
download
home_pageNone
SummaryPython SDK for Delivery Hero's Platform API APIGee routers
upload_time2025-08-07 12:23:43
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
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"
}
        
Elapsed time: 0.65242s