Zoho CRM Python SDK 2.1 不会更新记录所有者

问题描述 投票:0回答:1

当我尝试更改 Zoho 记录上的所有者时,我收到一条成功消息,但潜在客户所有者字段没有更改。记录在“Potentials”模块中(我认为这是一个自定义模块)

lead: Record = self.get_lead(int(lead_id))
user: ZCRMUser = self.get_user_by_email(owner_email)

# Perform the update
lead.add_key_value("Owner", user)
request = BodyWrapper()
request.set_data([new_record])
request.set_trigger(["approval", "workflow", "blueprint"])
response = self.record_operators.update_record(zoho_id, "Potentials", request)

更新已执行并且未报告任何错误,但不会更改“所有者”字段:

INFO Status: success
INFO Code: SUCCESS
INFO Details
INFO Modified_Time : 2024-05-13 11:23:12+10:00
INFO Modified_By : <zcrmsdk.src.com.zoho.crm.api.users.user.User object at 0x115384c10>
INFO Created_Time : 2024-05-02 14:03:19+10:00
INFO id : 68968000000476063
INFO Created_By : <zcrmsdk.src.com.zoho.crm.api.users.user.User object at 0x115347d10>
INFO Message: record updated

如果我检查引线本身,则该字段存在:

Owner = <zcrmsdk.src.com.zoho.crm.api.users.user.User object at 0x1153ae7d0>

用户对象也是一个有效的用户对象。我正在使用的 API 令牌似乎已授予所有权限。 Zoho 似乎只是悄悄地放弃了这个领域。我不知道这是权限问题、API 限制还是其他原因。

更新:我注意到我正在处理的代码已固定

zohocrmsdk2_1 = "^1.0.0"
,所以可能是一个老问题。将使用最新的 3.0.0 重新测试,看看是否有帮助。 更新2:没有帮助。与
1.1.0
3.0.0
zohocrmsdk2-1

版本存在同样的问题
python zoho
1个回答
0
投票

不感谢 Zoho 本身,他们的支持和文档完全毫无价值,但我能够通过跟踪 API 代码解决这个问题。

事实证明,API 只会更新它认为已更改的 json 键和子键。因为 User 对象已经存在,所以它不会将 User.email 视为新值,因此它会上传一个没有电子邮件字段的空 User 密钥。

技巧是通过假装发生更改来强制 Zoho 查看电子邮件字段(这将在用户对象上内部设置

_email_modified = True
或类似的内容,并使其正确序列化为 JSON。即:

user.set_email(owner_email)

即使检索到用户对象,您也应该执行此操作。如果您只想设置记录的所有者,您可以使用新的/部分用户对象,例如:

lead = Record()
lead.set_id(int(lead_id))
user = User()
user.set_email(owner_email)
lead.add_field_value(Field.Deals.owner(), user)
request = BodyWrapper()
request.set_data([new_record])
response = RecordOperations.update_record(lead_id, 'Lead', request)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.