问题描述
所以我正在尝试创建一个 C# 应用程序,它将值插入到一个选择列表中。我能够使用企业 WSDL 在 C# 中创建一个对象,但是插入它时不起作用。没有错误,当我在 SF 内部检查时,选择列表不存在。
我看到了几个例子,它们都比较老,而且是用 Java 编写的。 https://salesforce.stackexchange.com/questions/8403/rest-api-how-to-update-active-values-for-picklist
这是我尝试插入选项列表值的代码。
public void UpdateInsert_Picklist()
{
try {
MetadataService.recordtype productInfo = new MetadataService.recordtype();
productInfo.fullName = "ACustomObjectInsertedDotNet6__c.test";
productInfo.label = "test";
MetadataService.PicklistValue version1 = new MetadataService.PicklistValue();
version1.fullName = "Inserted Programatically";
MetadataService.recordtypePicklistValue recordtypepicklistvalue = new MetadataService.recordtypePicklistValue();
recordtypepicklistvalue.picklist = "TPicklist__c";
recordtypepicklistvalue.values = new MetadataService.PicklistValue[] { version1 };
productInfo.picklistValues = new MetadataService.recordtypePicklistValue[] { recordtypepicklistvalue };
MetadataService.Metadata updateMetadata = new MetadataService.Metadata();
updateMetadata = productInfo;
updateMetadata.fullName = productInfo.fullName;
MetadataService.SaveResult[] update = ms.updateMetadata(new Metadata[] { updateMetadata });
}
catch (Exception e)
{
Console.WriteLine("Unexpected error: " + e.Message);
Console.WriteLine(e.StackTrace);
}
}
我创建的对象和字段代码,这很好用。
public void Create()
{
try
{
MetadataService.CustomObject co = new MetadataService.CustomObject();
co.deploymentStatus = MetadataService.DeploymentStatus.Deployed;
co.deploymentStatusspecified = true;
co.description = "My Custom Object created from .NET";
co.fullName = "ACustomObjectInDotNet6__c";
co.label = "ACustomObjectInDotNet6";
co.pluralLabel = "ACustomObjectInDotNets6";
co.sharingModel = MetadataService.SharingModel.ReadWrite;
co.sharingModelSpecified = true;
co.nameField = new MetadataService.CustomField();
co.nameField.type = MetadataService.FieldType.Text;
co.nameField.label = "The Name";
co.nameField.length = 100;
co.nameField.lengthSpecified = true;
co.enableActivities = true;
co.nameField.typespecified = true;
MetadataService.UpsertResult[] results = ms.upsertMetadata(new Metadata[] { co });
}
catch (Exception e)
{
Console.WriteLine("Unexpected error: " + e.Message);
Console.WriteLine(e.StackTrace);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)