public class GPMulesoftBillable {
public void callMuleSoftAPI() {
// Create the HTTP request
HttpRequest req = new HttpRequest();
req.setEndpoint(': https://d...content-available-to-author-only...b.com/sfdc);
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
String jsonPayload = '{"notifications":{"Notification":[{"GP_Project__c":{"Id":"a0kVN00000KH","GP_Oracle_PID__c":"NA","GP_RESPONSIBILITY_ID__c":"57295","GP_RESP_APPL_ID__c":"275","GP_USER_ID__c":"42685"}},{"GP_Project__c":{"Id":"a0kVN00000KH","GP_Oracle_PID__c":"NA","GP_RESPONSIBILITY_ID__c":"57295","GP_RESP_APPL_ID__c":"275","GP_USER_ID__c":"42685"}}]}}';
req.setBody(jsonPayload);
// Send the HTTP request
Http http = new Http();
HttpResponse res = http.send(req);
// Handle the response
if (res.getStatusCode() == 200) {
System.debug('Response: ' + res.getBody());
} else {
System.debug('Error: ' + res.getStatusCode() + ' ' + res.getStatus());
}
}
public static void triggerMuleSoftAPI() {
if (UserInfo.getOrganizationId() == '00DU9000003AHlpMAG') {
for (SObject record : Trigger.new) {
if ((record.isChanged('GP_Approval_Status__c') && record.get('GP_Approval_Status__c') == 'Approved') ||
(record.isChanged('GP_Oracle_Re_Submission_Counter__c') && record.get('GP_Approval_Status__c') == 'Approved')) {
MuleSoftAPIService service = new MuleSoftAPIService();
service.callMuleSoftAPI();
}
}
}
}
}
cHVibGljIGNsYXNzIEdQTXVsZXNvZnRCaWxsYWJsZSB7CiAgICBwdWJsaWMgdm9pZCBjYWxsTXVsZVNvZnRBUEkoKSB7CiAgICAgICAgLy8gQ3JlYXRlIHRoZSBIVFRQIHJlcXVlc3QKICAgICAgICBIdHRwUmVxdWVzdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoKTsKICAgICAgICByZXEuc2V0RW5kcG9pbnQoJzogaHR0cHM6Ly9kLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5iLmNvbS9zZmRjKTsgCiAgICAgICAgcmVxLnNldE1ldGhvZCgnUE9TVCcpOwogICAgICAgIHJlcS5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgU3RyaW5nIGpzb25QYXlsb2FkID0gJ3sibm90aWZpY2F0aW9ucyI6eyJOb3RpZmljYXRpb24iOlt7IkdQX1Byb2plY3RfX2MiOnsiSWQiOiJhMGtWTjAwMDAwS0giLCJHUF9PcmFjbGVfUElEX19jIjoiTkEiLCJHUF9SRVNQT05TSUJJTElUWV9JRF9fYyI6IjU3Mjk1IiwiR1BfUkVTUF9BUFBMX0lEX19jIjoiMjc1IiwiR1BfVVNFUl9JRF9fYyI6IjQyNjg1In19LHsiR1BfUHJvamVjdF9fYyI6eyJJZCI6ImEwa1ZOMDAwMDBLSCIsIkdQX09yYWNsZV9QSURfX2MiOiJOQSIsIkdQX1JFU1BPTlNJQklMSVRZX0lEX19jIjoiNTcyOTUiLCJHUF9SRVNQX0FQUExfSURfX2MiOiIyNzUiLCJHUF9VU0VSX0lEX19jIjoiNDI2ODUifX1dfX0nOwogICAgICAgIHJlcS5zZXRCb2R5KGpzb25QYXlsb2FkKTsKICAgICAgICAKICAgICAgICAvLyBTZW5kIHRoZSBIVFRQIHJlcXVlc3QKICAgICAgICBIdHRwIGh0dHAgPSBuZXcgSHR0cCgpOwogICAgICAgIEh0dHBSZXNwb25zZSByZXMgPSBodHRwLnNlbmQocmVxKTsKICAgICAgICAKICAgICAgICAvLyBIYW5kbGUgdGhlIHJlc3BvbnNlCiAgICAgICAgaWYgKHJlcy5nZXRTdGF0dXNDb2RlKCkgPT0gMjAwKSB7CiAgICAgICAgICAgIFN5c3RlbS5kZWJ1ZygnUmVzcG9uc2U6ICcgKyByZXMuZ2V0Qm9keSgpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0uZGVidWcoJ0Vycm9yOiAnICsgcmVzLmdldFN0YXR1c0NvZGUoKSArICcgJyArIHJlcy5nZXRTdGF0dXMoKSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB0cmlnZ2VyTXVsZVNvZnRBUEkoKSB7CiAgICAgICAgaWYgKFVzZXJJbmZvLmdldE9yZ2FuaXphdGlvbklkKCkgPT0gJzAwRFU5MDAwMDAzQUhscE1BRycpIHsKICAgICAgICAgICAgZm9yIChTT2JqZWN0IHJlY29yZCA6IFRyaWdnZXIubmV3KSB7CiAgICAgICAgICAgICAgICBpZiAoKHJlY29yZC5pc0NoYW5nZWQoJ0dQX0FwcHJvdmFsX1N0YXR1c19fYycpICYmIHJlY29yZC5nZXQoJ0dQX0FwcHJvdmFsX1N0YXR1c19fYycpID09ICdBcHByb3ZlZCcpIHx8CiAgICAgICAgICAgICAgICAgICAgKHJlY29yZC5pc0NoYW5nZWQoJ0dQX09yYWNsZV9SZV9TdWJtaXNzaW9uX0NvdW50ZXJfX2MnKSAmJiByZWNvcmQuZ2V0KCdHUF9BcHByb3ZhbF9TdGF0dXNfX2MnKSA9PSAnQXBwcm92ZWQnKSkgewogICAgICAgICAgICAgICAgICAgIE11bGVTb2Z0QVBJU2VydmljZSBzZXJ2aWNlID0gbmV3IE11bGVTb2Z0QVBJU2VydmljZSgpOwogICAgICAgICAgICAgICAgICAgIHNlcnZpY2UuY2FsbE11bGVTb2Z0QVBJKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0=