@RestResource(urlMapping='/project/*')
global with sharing class ProjectRESTService {
@HttpPost
global static String postProjectData(String ProjectRef, String ProjectName, String OpportunityId, Date StartDate, Date EndDate, Double Amount, String Status) {
SavePoint sp = Database.setSavepoint();
try {
Project__c p = new Project__c(ProjectRef__c=ProjectRef, Name=ProjectName, Opportunity__c=OpportunityId, Start_Date__c=StartDate, End_Date__c=EndDate, Billable_Amount__c=Amount, Status__c=Status);
upsert p ProjectRef__c;
Opportunity o = new Opportunity(Id=OpportunityId, DeliveryInstallationStatus__c='In Progress');
update o;
return 'OK';
} catch (Exception e) {
System.debug('~~~ Cause: ' + e.getCause() + ' Message: ' + e.getMessage() + ' getLineNumber: ' + e.getLineNumber() + ' StackTrace: ' + e.getStackTraceString() + ' Type: ' + e.getTypeName());
Database.rollback(sp);
return e.getMessage();
}
}
}
Please check below post i hope that will help you1) https://developer.salesforce.com/forums/?id=9060G000000I526QAC2) https://developer.salesforce.com/forums/?id=9060G000000I56rQAC3) @RestResource(urlMapping='/project/*')
global with sharing class ProjectRESTService {
@HttpPost
global static String postProjectData(String ProjectRef, String ProjectName, String OpportunityId, Date StartDate, Date EndDate, Double Amount, String Status) {
List<Project__c> projects = [SELECT Billable_Amount__c,End_Date__c,Id,Name,Opportunity__c,ProjectRef__c,Start_Date__c,Status__c FROM Project__c WHERE ProjectRef__c = :ProjectRef];
Project__c project = new Project__c();
if(projects.size() > 0)
project = projects.get(0);
Savepoint sp = Database.setSavepoint();
try{
project.Billable_Amount__c = Amount;
project.End_Date__c = EndDate;
project.Name = ProjectName;
project.Opportunity__c = OpportunityId;
project.ProjectRef__c = ProjectRef;
project.Start_Date__c = StartDate;
project.Status__c = Status;
upsert project;
//Update Opportunity
Opportunity opportunity = [SELECT Id, DeliveryInstallationStatus__c FROM Opportunity WHERE Id = :OpportunityId];
opportunity.DeliveryInstallationStatus__c = 'In progress';
update opportunity;
return 'OK';
}
catch(exception ex){
Database.rollback(sp);
return ex.getMessage();
}
}
}