Python SimpleSalesforce更改“concurrencyMode”

2024-09-27 22:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在利用Python的简单salesforce包执行批量上传。我看到一些不一致的响应错误,我认为可以通过将“concurrencyMode”更改为“Serial”来解决

我在文档中没有看到这个选项。有人知道是否有可能更新源代码以将该参数添加到请求中吗?我试着更新邮件头api.py公司以及散装.py没有运气。你知道吗

谢谢


Tags: 文档pyapi利用参数源代码选项错误
1条回答
网友
1楼 · 发布于 2024-09-27 22:33:18

simple-salesforce批量方法通过发布到https://<salesforce_instance>/services/async/<api_version>/job来使用SalesforceBulk API 1.0。在^{}中,作业的创建方式如下:

 def _create_job(self, operation, object_name, external_id_field=None):
        """ Create a bulk job
        Arguments:
        * operation   Bulk operation to be performed by job
        * object_name   SF object
        * external_id_field   unique identifier field for upsert operations
        """

        payload = {
            'operation': operation,
            'object': object_name,
            'contentType': 'JSON'
        }

这将生成以下XML负载:

<jobInfo
   xmlns="http://www.force.com/2009/06/asyncapi/dataload">
 <operation>...</operation>
 <object>...</object>
 <contentType>JSON</contentType>
</jobInfo>

要显式请求串行作业,需要向请求中添加concurrencyMode元素。jobInfo片段应该是

<jobInfo
   xmlns="http://www.force.com/2009/06/asyncapi/dataload">
 <operation>...</operation>
 <object>...</object>
 <concurrencyMode>Serial</concurrencyMode>
 <contentType>JSON</contentType>
</jobInfo>

_create_job更改为具有此额外元素:

 def _create_job(self, operation, object_name, external_id_field=None):
        """ Create a serial bulk job
        Arguments:
        * operation   Bulk operation to be performed by job
        * object_name   SF object
        * external_id_field   unique identifier field for upsert operations
        """

        payload = {
            'operation': operation,
            'object': object_name,
            'concurrencyMode': 'Serial',
            'contentType': 'JSON'
        }

相关问题 更多 >

    热门问题