Я хочу добавить некоторые PickListValues от Apex. Это мой код:
MetadataService.MetadataPort service = createService();
MetadataService.CustomField customField = new MetadataService.CustomField();
customField.fullName = 'CustomAddress__c.city2__c';
customField.label = 'Packlast';
customField.type_x = 'Picklist';
customField.description = 'HHHHHH';
metadataservice.Picklist pt = new metadataservice.Picklist();
pt.sorted= false;
metadataservice.PicklistValue two = new metadataservice.PicklistValue();
two.fullName= 'MyAPI';
two.default_x=true ;
metadataservice.PicklistValue three = new metadataservice.PicklistValue();
three.fullName= 'Klostein';
three.default_x=false ;
pt.picklistValues = new list<metadataservice.PicklistValue>{two,three};
customField.picklist = pt ;
List<MetadataService.SaveResult> results =
service.updateMetadata(
new MetadataService.Metadata[] { customField });
handleSaveResults(results[0]);
Это хорошо работает. Но мне нужно записать метку и имя API в значение. Поэтому я попытался добавить строковую метку в классе PicklistValue для field_order_type_info:
private String[] field_order_type_info = new String[
{'label','color','fullName','default_x','description','isActive', 'allowEmail','closed','controllingFieldValues','converted','cssExposed','forecastCategory','highPriority','probability','reverseRole','reviewed','won'};
Но я получаю исключение
System.CalloutException: Web service callout failed: WebService returned a SOAP Fault: Element {http://soap.sforce.com/2006/04/metadata}label invalid at this location in type PicklistValue faultcode=soapenv:Client faultactor=