You need to sign in to do that
Don't have an account?
Charu Rani
Hi actually i want to create validation rule through metadata api... what i m doing is first i m parsing and generating xml of a object and then creating cloned object and fields. objects and fields are created but not able to create validation rule.
public PageReference Insert_Validation()
{
XmlDom dom2 = new XmlDom(FinalObjectXML);
for(xmldom.element e1: dom2.getElementsByTagName('validationRules'))
{
MetadataService.MetadataPort service = createService();
List<MetadataService.ListMetadataQuery> queries = new List<MetadataService.ListMetadataQuery>();
system.debug('queries'+queries);
MetadataService.ListMetadataQuery queryValidationRule = new MetadataService.ListMetadataQuery();
queryValidationRule.type_x = 'ValidationRule';
queries.add(queryValidationRule);
MetadataService.ListMetadataQuery queryCustomField = new MetadataService.ListMetadataQuery();
queryCustomField.type_x = 'CustomField';
queries.add(queryCustomField);
MetadataService.FileProperties[] fileProperties = service.listMetadata(queries, 25);
for(MetadataService.FileProperties fileProperty : fileProperties)
system.debug('hiiiiii');
system.debug('e1 value===>'+e1+'====>>>'+e1.getvalue('fullName'));
MetadataService.ValidationRule ValidationRule1= new MetadataService.ValidationRule();
ValidationRule1.fullName=e1.getvalue('fullName');
ValidationRule1.active=Boolean.valueof(e1.getvalue('active'));
ValidationRule1.errorConditionFormula=customobjectlabel.trim()+'clone__c'+'.checkbox__c=true';//e1.getvalue('errorConditionFormula');
//ValidationRule.errorDisplayField=e1.getvalue('errorDisplayField');
ValidationRule1.errorMessage=e1.getvalue('errorMessage');
system.debug('ValidationRule'+ValidationRule1.fullName+'===>'+ValidationRule1.active+'====>'+ValidationRule1.errorConditionFormula+'=====>'+ValidationRule1.errorMessage);
MetadataService.AsyncResult[] results12 = service.create(new List<MetadataService.Metadata>{ValidationRule1});
system.debug('*****************'+results12);
}
{
XmlDom dom2 = new XmlDom(FinalObjectXML);
for(xmldom.element e1: dom2.getElementsByTagName('validationRules'))
{
MetadataService.MetadataPort service = createService();
List<MetadataService.ListMetadataQuery> queries = new List<MetadataService.ListMetadataQuery>();
system.debug('queries'+queries);
MetadataService.ListMetadataQuery queryValidationRule = new MetadataService.ListMetadataQuery();
queryValidationRule.type_x = 'ValidationRule';
queries.add(queryValidationRule);
MetadataService.ListMetadataQuery queryCustomField = new MetadataService.ListMetadataQuery();
queryCustomField.type_x = 'CustomField';
queries.add(queryCustomField);
MetadataService.FileProperties[] fileProperties = service.listMetadata(queries, 25);
for(MetadataService.FileProperties fileProperty : fileProperties)
system.debug('hiiiiii');
system.debug('e1 value===>'+e1+'====>>>'+e1.getvalue('fullName'));
MetadataService.ValidationRule ValidationRule1= new MetadataService.ValidationRule();
ValidationRule1.fullName=e1.getvalue('fullName');
ValidationRule1.active=Boolean.valueof(e1.getvalue('active'));
ValidationRule1.errorConditionFormula=customobjectlabel.trim()+'clone__c'+'.checkbox__c=true';//e1.getvalue('errorConditionFormula');
//ValidationRule.errorDisplayField=e1.getvalue('errorDisplayField');
ValidationRule1.errorMessage=e1.getvalue('errorMessage');
system.debug('ValidationRule'+ValidationRule1.fullName+'===>'+ValidationRule1.active+'====>'+ValidationRule1.errorConditionFormula+'=====>'+ValidationRule1.errorMessage);
MetadataService.AsyncResult[] results12 = service.create(new List<MetadataService.Metadata>{ValidationRule1});
system.debug('*****************'+results12);
}
https://github.com/BhawaniSharma/apex-mdapi