C# Salesforce Enterprise WSDL 插入选择列表

问题描述

所以我正在尝试创建一个 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 (将#修改为@)