I habe a code that should add new picklist value in all RecordTypes but after run it i get an error in method updateMetadata "System.CalloutException: Web service callout failed: WebService returned a SOAP Fault: '' is not valid for type xsd:boolean, should be '0', '1', 'true' or 'false' faultcode=soapenv:Client faultactor". I use MetadataService from this repo. Any suggestion to get it worked?
MetadataService.MetadataPort service = new MetadataService.MetadataPort();
service.SessionHeader = new MetadataService.SessionHeader_element();
service.SessionHeader.sessionId = UserInfo.getSessionId();
MetadataService.CustomField picklistField = (MetadataService.CustomField) service
.readMetadata('CustomField', new String[] { 'Employee__c.Job_Title__c' }).getRecords()[0];
MetadataService.CustomValue[] pickVals = picklistField.valueSet.valueSetDefinition.value;
/*
MetadataService.CustomValue newPickVal = new MetadataService.CustomValue();
newPickVal.fullName = 'New Picklist Value';
newPickVal.default_x = false;
newPickVal.isActive = null;
pickVals.add(newPickVal);
*/
String[] recordTypeNames = new String[] {'Hiring'};
MetadataService.Metadata[] mdRecordTypes = service.readMetadata('RecordType', recordTypeNames).getRecords();
MetadataService.RecordType[] recordTypes = (MetadataService.RecordType[]) mdRecordTypes;
MetadataService.RecordTypePicklistValue[] rtPickValues = new MetadataService.RecordTypePicklistValue[]{};
MetadataService.RecordTypePicklistValue rtPickValue = new MetadataService.RecordTypePicklistValue();
rtPickValue.picklist = 'Job_Title__c';
rtPickValue.values = pickVals;
rtPickValues.add(rtPickValue);
for(MetadataService.RecordType RT : recordTypes){
RT.PicklistValues = rtPickValues;
//System.debug(Json.serialize(RT.PicklistValues));
}
service.updateMetadata(new MetadataService.Metadata[] { mdRecordTypes[0] });