public class DeveloperUtility {
|
|
public static List<HTTPResponse> CreateFields(string sobject_name,string [] fields){
|
List<HTTPResponse> results = new List<HTTPResponse>();
|
for(string f : fields){
|
string old_label = f.removeEnd('__c').replace('_',' ');
|
string label = old_label + ' Encrypted';
|
string name = label.replace(' ','_')+'__c';
|
string description = '';
|
system.debug('old_label='+old_label);
|
system.debug('label='+label);
|
system.debug('name='+name);
|
results.add(CreateField(sobject_name,label,name,description,'Text'));
|
}
|
return results;
|
}
|
|
|
public static HTTPResponse CreateField(string sobject_name, string label,string name,string description,string type){
|
HTTP h = new HTTP();
|
HTTPRequest req = new HTTPRequest();
|
req.setMethod('POST');
|
req.setHeader('Content-Type', 'text/xml');
|
req.setHeader('SOAPAction', 'create');
|
|
|
//string sobject_name = 'Contact';
|
//string label = 'Title';
|
//string name = 'Title'+'_Encrypted__c';
|
//string description = '';
|
|
//string type = 'Text';
|
boolean typeSpecified = true;
|
|
String b = '<?xml version="1.0" encoding="UTF-8"?>';
|
b += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">';
|
b += '<soapenv:Header>';
|
b += '<ns1:SessionHeader soapenv:mustUnderstand="0" xmlns:ns1="http://soap.sforce.com/2006/04/metadata">';
|
b += '<ns1:sessionId>' + UserInfo.getSessionId() + '</ns1:sessionId>';
|
b += '</ns1:SessionHeader>';
|
b += '</soapenv:Header>';
|
b += '<soapenv:Body>';
|
b += '<create xmlns="http://soap.sforce.com/2006/04/metadata">';
|
b += '<metadata xsi:type="ns2:CustomField" xmlns:ns2="http://soap.sforce.com/2006/04/metadata">';
|
b += '<type>'+type+'</type>';
|
b += '<fullName>'+sobject_name+'.'+name+'</fullName>';
|
b += '<label>'+label+'</label>';
|
b += '<length>255</length>';
|
b += '<description>'+type+'</description>';
|
b += '</metadata>';
|
b += '</create>';
|
b += '</soapenv:Body>';
|
b += '</soapenv:Envelope>';
|
|
req.setBody(b);
|
req.setCompressed(false);
|
req.setEndpoint('https://ocsm--pipl.my.salesforce.com/services/Soap/m/25.0');
|
HTTPResponse resp = h.send(req);
|
System.debug(resp.getBody());
|
return resp;
|
}
|
}
|