You need to sign in to do that
Don't have an account?
gaurav arora 33
Metadata API for Owner field
I want to update the update the history tracking for Owner fields. but i am not able to do that. the below code is not working.
try{ MetadataService.MetadataPort service1 = new MetadataService.MetadataPort(); service1.SessionHeader = new MetadataService.SessionHeader_element(); service1.SessionHeader.sessionId = UserInfo.getSessionId(); MetadataService.MetadataPort service = service1; MetadataService.CustomField customField = new MetadataService.CustomField(); customField.fullName = 'AG_PCM_Issue_Code__c.OwnerId'; customField.type_x = 'Lookup'; //customField.label = 'Owner'; customField.relationshipLabel = 'Owner'; customField.relationshipName = 'Owner'; customField.referenceTo = 'User'; customField.trackHistory = true; List<MetadataService.SaveResult> results = service.updateMetadata(new MetadataService.Metadata[] { customField }); if(results[0].errors!=null) { List<String> messages = new List<String>(); messages.add( (results[0].errors.size()==1 ? 'Error ' : 'Errors ') + 'occured processing component ' + results[0].fullName + '.'); for(MetadataService.Error error : results[0].errors) messages.add( error.message + ' (' + error.statusCode + ').' + ( error.fields!=null && error.fields.size()>0 ? ' Fields ' + String.join(error.fields, ',') + '.' : '' ) ); if(messages.size()>0) system.debug('errorstoh:::'+String.join(messages, ' ')); } } catch(Exception e){ system.debug('error: '+e.getMessage()); }But if i use the same code for any custom lookup field then it is working.
try{ MetadataService.MetadataPort service1 = new MetadataService.MetadataPort(); service1.SessionHeader = new MetadataService.SessionHeader_element(); service1.SessionHeader.sessionId = UserInfo.getSessionId(); MetadataService.MetadataPort service = service1; MetadataService.CustomField customField = new MetadataService.CustomField(); customField.fullName = 'AG_Issue_Code__c.AG_Issue_Category__c'; customField.type_x = 'Lookup'; customField.label = 'Issue Category'; customField.relationshipLabel = 'AG_Issue_Codes'; customField.relationshipName = 'AG_Issue_Codes'; customField.referenceTo = 'AG_Issue_Category__c'; customField.trackHistory = true; List<MetadataService.SaveResult> results = service.updateMetadata(new MetadataService.Metadata[] { customField }); if(results[0].errors!=null) { List<String> messages = new List<String>(); messages.add( (results[0].errors.size()==1 ? 'Error ' : 'Errors ') + 'occured processing component ' + results[0].fullName + '.'); for(MetadataService.Error error : results[0].errors) messages.add( error.message + ' (' + error.statusCode + ').' + ( error.fields!=null && error.fields.size()>0 ? ' Fields ' + String.join(error.fields, ',') + '.' : '' ) ); if(messages.size()>0) system.debug('errorstoh:::'+String.join(messages, ' ')); } } catch(Exception e){ system.debug('error: '+e.getMessage()); }