python 如何在Salesforce中创建新的自定义对象并向其写入记录?

xv8emn3q  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(152)

我正在尝试在Salesforce中创建一个具有两个字段的新自定义对象。正在创建该对象,但无法向其写入任何记录。根据错误,对象中不存在字段。

import pandas as pd
from simple_salesforce import Salesforce
sf = Salesforce(username='user', password='pass', security_token='token')

name = "CustomObject13__c"
label = "CO13"

md_api = sf.mdapi
custom_object = md_api.CustomObject(
        fullName=name,
        label=label,
        pluralLabel="Custom Objects",
        nameField=md_api.CustomField(
                label="Name",
                type=md_api.FieldType("Text")
        ),
        fields=[{
                'fullName': 'Age__c',
                'label': 'Age',
                'type': 'Text',
                'length': 255
        },
                {
                        'fullName': 'Description__c',
                        'label': 'Description',
                        'type': 'TextArea'
                }],
        deploymentStatus=md_api.DeploymentStatus("Deployed"),
        sharingModel=md_api.SharingModel("Read")
)
md_api.CustomObject.create(custom_object)
df = pd.DataFrame({'Name': ['Sal Vulcano', 'James Murray'], "Age__c": ["34", "54"],
                       "Description__c": ["tonight's big loser", "fool-proof plan"]})
for record in df.to_dict('records'):
    sf.__getattr__(name).create(record)

错误:
simple_salesforce.异常。Salesforce格式错误的请求:格式错误的请求https://rawcubes-dev-ed.my.salesforce.com/services/data/v52.0/sobjects/CustomObject13__c/。响应内容:[{"消息":"CustomObject13__c类型的对象上没有这样的列'Age__c'",'错误代码':"无效字段"}]
Object Manager - Fields and Relationships Viewer for the object 'CO13'

wh6knrhe

wh6knrhe1#

当你创建一个sObject(数据库中的表)时-它就在那里,但并不意味着你能自动看到它。作为系统管理员,你在管理组织时可以绕过一些检查(在安装程序中进行更改)-但API访问仍然会阻止你。
您需要授予“对象”本身的“创建”、“编辑”权限+添加的每个自定义字段的“编辑”权限。您可以通过编辑您的配置文件或权限集(或创建新权限集并通过将新记录插入PermissionSetAssignment表将其分配给您的用户)来完成此操作。
所以在你插入数据之前,你还需要做一些元数据操作。通常情况下,它是单独完成的,首先创建表(甚至手动),然后加载...

相关问题