【问题标题】:bulk insert Time Field via Simple-Salesforce通过 Simple-Salesforce 批量插入时间字段
【发布时间】:2018-09-24 18:30:14
【问题描述】:

我正在尝试使用 simple-salesforce 批量插入在 Salesforce 中创建记录。有问题的记录具有 Salesforce 的新“时间”字段,这会导致导入失败。我的问题是如何格式化(或以其他方式修改)时间值,以便 simple-salesforce .insert() 命令接受记录。

我的代码如下:

record = [{'Name': 'Event XZY',
  'Event_Date__c': '2018-09-28',
  'Start_Time__c': '16:00:00.000Z',
  'End_Time__c': '18:00:00.000Z'}]

sf.bulk.Custom_Event_Object__c.insert(record)

我收到的错误是标准的,不相关Response content: {'exceptionCode': 'InvalidBatch', 'exceptionMessage': 'Records not processed'}.

从另一个对象导入数据时,时间字段的格式没有改变。当我删除“时间”字段时,记录已成功创建。我也尝试将时间字段格式化为'T16:00:00.000Z''16:00:00Z''16:00:00z''4 pm',但没有一个有效。当导出到 csv 并使用 Data Loader 应用程序上传时,插入也可以正常工作。

【问题讨论】:

    标签: python python-3.x salesforce simple-salesforce


    【解决方案1】:

    您可以将时间格式化为 'hh:mm:ss' 格式。所以你可以在凌晨 4 点尝试“04:00:00”,在下午 4 点尝试 16:00:00。

    【讨论】:

      【解决方案2】:

      我认为您的格式有几秒钟的错误: https://developer.salesforce.com/docs/atlas.en-us.dataLoader.meta/dataLoader/data_loader_dates.htm?search_text=date

      "只有一定范围内的日期才有效。最早的有效日期是格林威治标准时间 1700-01-01T00:00:00Z,或 1700 年 1 月 1 日午夜刚过。最晚的有效日期是 4000-12-31T00:格林威治标准时间 00:00Z,或 4000 年 12 月 31 日午夜刚过。这些值会被您所在的时区抵消。例如,在太平洋时区,最早的有效日期是 1699-12-31T16:00:00,或 4 1699 年 12 月 31 日下午 00 点。”

      在您的示例中,您在 Z 时区字符之前添加了一个额外的 0,请尝试这样做:

      'Start_Time__c': '16:00:00.00Z',
      

      【讨论】:

      • 很遗憾没有。我试过'Start_Time__c': '18:00:00.00Z' 无济于事
      • help.salesforce.com/… 在您在问题中提供的示例中,没有一个完全遵循此处建议的格式。 Z 字符跟在十进制毫秒之后。请从那里尝试一些格式
      • 不幸的是,这些也不起作用。我已经尝试了以下所有方法,每个都失败了['04:00:00 PM','04:00:00.000 PM','16:00:00.000','16:00:00.000Z','04:00 PM','04:00PM','4 PM','4PM','16:00','16','1600']
      猜你喜欢
      • 2022-01-26
      • 2022-01-18
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      相关资源
      最近更新 更多