为了账号安全,请及时绑定邮箱和手机立即绑定

Python Beatbox Salesforce外部ID更新

Python Beatbox Salesforce外部ID更新

米琪卡哇伊 2021-03-24 13:10:03
我正在尝试通过salesforce Beatbox python客户端添加记录,该upsert操作似乎可以正常工作,但是我不太想知道如何将externalid指定为外键:尝试使用以下方法进行验证:consolidatedToInsert = []for id,ce in ConsolidatedEbills.items():    consolidatedToInsert.append(        {            'type':'consolidated_ebill__c',            'Account__r':{'type':'Account','ETL_Natural_Key__c':ce['CLASS_REFERENCE']},            'ETL_Natural_Key__c':ce['ISSUE_UNIQUE_ID']        }    )print consolidatedToInsert[0]pc.login('USERNAME', 'TOTALLYREALPASSWORD')ret = pc.upsert('ETL_Natural_Key__c',consolidatedToInsert[0])print ret给出错误:'外部外键引用未引用有效实体:Account__r'[{'isCreated':False,'errors':[{'fields':[],'message':'外部外键引用未引用有效实体:Account__r','statusCode':'INVALID_FIEL D'} ],'id':'','success':False,'created':False}]]肥皂示例和错误文本的特殊性似乎表明这是可能的,但我在有关使用外部ID插入的文档中几乎找不到。仔细观察一下,我不确定这是否完全可能,一个完全错误的Account__r密钥似乎无声地传递,好像它甚至都不是XML转换的目标,尽管如此,我还是想错了。快速更改为pythonclient.py 422:0:     for k,v in field_dict.items():         if v is None:             fieldsToNull.append(k)             field_dict[k] = []         if k.endswith('__r') and isinstance(v,dict):             pass         elif hasattr(v,'__iter__'):             if len(v) == 0:                 fieldsToNull.append(k)             else:                 field_dict[k] = ";".join(v)另一个到__beatbox.py 375:0        for fn in sObjects.keys():            if (fn != 'type'):                if (isinstance(sObjects[fn],dict)):                    self.writeSObjects(s, sObjects[fn], fn)                else:                    s.writeStringElement(_sobjectNs, fn, sObjects[fn])它就像一些黑魔法一样起作用。
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

目前,Beatbox不支持像这样序列化嵌套字典,这对于您尝试执行的externalId解析是必需的。(如果查看生成的请求,则可以看到嵌套字典只是序列化为字符串)。


查看完整回答
反对 回复 2021-03-30
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信