You need to sign in to do that
Don't have an account?

Method does not exist or incorrect signature: void createService() from the type anon
I am trying to create objects and fields dynamically using apex code, But I'm getting the error "Method does not exist or incorrect signature: void createService() from the type anon". I have deployed the metadataservice class and related classes in my Org. I try to create an object using below code:
MetadataService.MetadataPort service = createService();
MetadataService.CustomObject customObject = new MetadataService.CustomObject();
customObject.fullName = 'Test__c';
customObject.label = 'Test';
customObject.pluralLabel = 'Tests';
customObject.nameField = new MetadataService.CustomField();
customObject.nameField.type_x = 'Text';
customObject.nameField.label = 'Test Record';
customObject.deploymentStatus = 'Deployed';
customObject.sharingModel = 'ReadWrite';
List<MetadataService.SaveResult> results =
service.createMetadata(
new MetadataService.Metadata[] { customObject });
handleSaveResults(results[0]);
I have executed the above code and I got the error: I am getting the error because I don't have Createservice() method in my metadataservice class. Can anyone help me how to fix this?
MetadataService.MetadataPort service = createService();
MetadataService.CustomObject customObject = new MetadataService.CustomObject();
customObject.fullName = 'Test__c';
customObject.label = 'Test';
customObject.pluralLabel = 'Tests';
customObject.nameField = new MetadataService.CustomField();
customObject.nameField.type_x = 'Text';
customObject.nameField.label = 'Test Record';
customObject.deploymentStatus = 'Deployed';
customObject.sharingModel = 'ReadWrite';
List<MetadataService.SaveResult> results =
service.createMetadata(
new MetadataService.Metadata[] { customObject });
handleSaveResults(results[0]);
I have executed the above code and I got the error: I am getting the error because I don't have Createservice() method in my metadataservice class. Can anyone help me how to fix this?
it is createMetadata
check this class and it's methods
https://raw.githubusercontent.com/financialforcedev/apex-mdapi/master/apex-mdapi/src/classes/MetadataService.cls
All Answers
use
This way you can create new service check this post for more info https://salesforce.stackexchange.com/a/112138/18731
Now iam getting another error : "Method does not exist or incorrect signature: void create(List<MetadataService.Metadata>) from the type MetadataService.MetadataPort"
service.SessionHeader = new MetadataService.SessionHeader_element();
service.SessionHeader.sessionId = UserInfo.getSessionId();
//system.debug('session id:'+UserInfo.getSessionId());
System.debug(UserInfo.getOrganizationId()+''+UserInfo.getSessionId().SubString(15));
List<MetadataService.Metadata> fields = new List<MetadataService.Metadata>();
MetadataService.CustomObject customobject = new MetadataService.CustomObject();
customobject.fullName = 'custom_create__c';
customobject.label = 'Custom created object';
customobject.pluralLabel = 'Custom created objects';
customObject.nameField = new MetadataService.CustomField();
customobject.nameField.type_x = 'Text';
customobject.nameField.label = 'Custom created field';
customobject.deploymentStatus = 'Deployed';
customObject.sharingModel = 'ReadWrite';
fields.add(customobject);
MetadataService.AsyncResult[] results = service.create(fields);
it is createMetadata
check this class and it's methods
https://raw.githubusercontent.com/financialforcedev/apex-mdapi/master/apex-mdapi/src/classes/MetadataService.cls
Got another error : "System.CalloutException: IO Exception: Unauthorized endpoint, please check Setup->Security->Remote site settings. endpoint = https://ap5.salesforce.com/services/Soap/m/38.0" . Do i need to create any remote site settings for this.