function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Charu RaniCharu 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);
    }
Bhawani SharmaBhawani Sharma
What error you are getting while creating the validation rule? Probably this link will help:
https://github.com/BhawaniSharma/apex-mdapi