// creating metadata
var metadata = {
fullName: 'SampleObject__c',
label: 'Sample Object',
label: 'Sample Object',
pluralLabel: 'Sample Object',
nameField: {
type: 'Text',
label: 'Sample Object'
},
deploymentStatus: 'Deployed',
sharingModel: 'ReadWrite'
};
conn.metadata.create('CustomObject', metadata, function(err, results) {
if (err) {
console.err(err);
}
else{
console.log('success ? : ' + result.success);
console.log('fullName : ' + result.fullName);
}
});
我无法在此处创建customField。仅创建了对象,并且没有可用于使用jsforce创建自定义字段的文档。我尝试过一种方法,即在成功创建自定义对象后,我已使用自定义字段更新元数据,但失败了。在customObject中创建customFields的方法是什么。
答案 0 :(得分:3)
将字段数组添加到自定义对象元数据定义中。我也很难过。我通过在Salesforce setup-> create->对象中创建字段(点击管理员)然后阅读通过以下方式生成的元数据来解决这个问题:
conn.metadata.read(type, [fullName1, fullName2, ..], callback)
将下面的对象数组放入元数据变量中,它应该可以工作。
fields: [ { fullName: 'A_Value__c',
externalId: 'false',
label: 'A Value 2',
precision: '18',
required: 'false',
scale: '0',
trackTrending: 'false',
type: 'Number',
unique: 'false' },
{ fullName: 'A3_Value__c',
externalId: 'false',
label: 'A Value 3',
precision: '18',
required: 'false',
scale: '0',
trackTrending: 'false',
type: 'Number',
unique: 'false' } ],
答案 1 :(得分:0)
当我尝试创建CustomField
时收到以下错误{
"errors":
{"message":"Must specify the name in the CustomObject.CustomField format (e.g. Account.MyNewCustomField), Name:SampleObject__c, Delimiter:.","statusCode":"FIELD_INTEGRITY_EXCEPTION"},
"fullName":"SampleObject__c",
"success":false
}
因此,传递以下元数据以为Lead对象创建自定义字段:
var metadata = {
fullName: 'Lead.SampleField__c',
length: 100,
type: 'Text',
label: 'Sample Field'
};
connection.metadata.create('CustomField', metadata, function(err, result){});
答案 2 :(得分:0)
var conn = new jsforce.Connection({ accessToken: '{!$Api.Session_Id}' });
var metadata = {
fullName: 'TestObject1__c.SampleField__c',
length: '75',
type: 'Text',
label: 'Sample Field'
};
connection.metadata.create('CustomField', metadata , function(err, result){
if (err) {
console.error(err);
} else {
console.log(result);
}
});
但请确保您已经创建了Test_Object自定义对象。您也可以同时创建自定义对象和自定义字段。我试过了,工作正常。并创建自定义对象,如下所示:
var conn = new jsforce.Connection({ accessToken: '{!$Api.Session_Id}' });
var metadata = [{
fullName: 'TestObject1__c',
label: 'Test Object 1',
pluralLabel: 'Test Object 1',
nameField: {
type: 'Text',
label: 'Test Object Name'
},
deploymentStatus: 'Deployed',
sharingModel: 'ReadWrite'
}];
conn.metadata.create('CustomObject', metadata, function(err, results) {
if (err) {
console.error(err);
}
for (var i=0; i < results.length; i++) {
var result = results[i];
console.log('success ? : ' + result.success);
console.log('fullName : ' + result.fullName);
}
});
答案 3 :(得分:0)
我有简单的解决方案。就这样做:
var conn = new jsforce.Connection({ accessToken: '{!$Api.Session_Id}' });
var metadata = [{
fullName: 'TestObject1__c',
label: 'Test Object 1',
pluralLabel: 'Test Object 1',
nameField: {
type: 'Text',
label: 'Test Object Name'
},
filds : {
"fullName": "devcqe7__Org_test__c",
"description": "This field records division for training session.",
"externalId": "false",
"label": "Org. Division",
"required": "false",
"trackTrending": "false",
"type": "Picklist",
"valueSet": {
"restricted": "true",
"valueSetName": "devcqe7__SQX_Division"
}
},
deploymentStatus: 'Deployed',
sharingModel: 'ReadWrite'
}];
conn.metadata.upsert('CustomObject', metadata, function(err, results) {
if (err) {
console.err(err);
}
for (var i=0; i < results.length; i++) {
var result = results[i];
console.log('success ? : ' + result.success);
console.log('fullName : ' + result.fullName);
}
});