Попытка увидеть настраиваемые поля в настраиваемом объекте, созданном с помощью API метаданных в Salesforce - PullRequest
0 голосов
/ 17 октября 2019

Итак, я работаю с операциями Salesforce на основе Metadata API CRUD и могу успешно создать пользовательский объект с помощью метода createMetadataAsync(). Но когда я пытаюсь добавить поля в пользовательский объект перед его созданием, он просто создает объект, а не поля, хотя я получаю успешный результат для создания обоих. Я прочитал в Интернете, что мне нужно пройти через пользовательский интерфейс в SF и разрешить просмотр этих полей, но когда я перехожу в свою среду SF, я вижу созданный мной объект, но не настраиваемое поле. Вот мой код, любая помощь будет отличной:

public async Task<createMetadataResponse> CreateObjectInSalesforce(string name, string label, string pluralLabel)
        {
            if (!this.isInitialized)
            {
                Initialize();
            }

            var nameField = new CustomField()
            {
                type = FieldType.Text,
                typeSpecified = true,
                label = label + " Name"
            };
            var customFields = new List<CustomField>()
            {
                new CustomField()
                {
                    type = FieldType.Text,
                    description = "this is the custom field 12 for test object 1",
                    label = "CustomFieldTest",
                    fullName = "CustomFieldTest12__c",
                    length = 255
                },
                new CustomField()
                {
                    type = FieldType.Text,
                    description = "this is the custom field 24 for test object 1",
                    label = "CustomFieldTest",
                    fullName = "CustomFieldTest24__c",
                    length = 255
                }
            }.ToArray();

            var customObject = new CustomObject()
            {
                fullName = name + "__c",
                label = label,
                pluralLabel = pluralLabel,
                nameField = nameField,
                deploymentStatus = DeploymentStatus.Deployed,
                deploymentStatusSpecified = true,
                description = "Created by Metadata API",
                enableActivities = true,
                fields = customFields,
                sharingModel = SharingModel.ReadWrite,
                sharingModelSpecified = true
            };

            return await CreateMetadata(new Metadata[] { customObject });
        }
public async Task<createMetadataResponse> CreateMetadata(Metadata[] objects)
        {
            this.metadataClient = new MetadataPortTypeClient(new MetadataPortTypeClient.EndpointConfiguration(), this.metadataUrl);
            var result = await this.metadataClient.createMetadataAsync(this.metadataCredentials, null, null, objects);

            return result;
        }
...