Usage
Executes an Apex method from an Apex class that's exposed in Salesforce. This method is available in API version 38.0 or later.
Syntax
sforce.opencti.runApex({
apexClass:STRING,
methodName:STRING,
methodParams:STRING,
callback:FUNCTION //Optional
})
Arguments
Pass a single args object with the following properties.
| Name | Type | Description |
|---|---|---|
apexClass |
string | Specifies the Apex class of the method to execute. |
methodName |
string | Specifies the method to execute. |
methodParams |
string | Specifies the method parameters to pass. The string must include field value pairs formatted as a valid query string. If the Apex method doesn't take any parameters, specify methodParams as none or an empty object, {}. |
callback |
function | JavaScript method called upon completion of the method. Optional. |
Example methodParams value:
name=acme&phone=(212) 555-5555
Sample Code–HTML and JavaScript
-
In Setup, create an Apex class and Apex method.
<!-- javascript set_clipboard -->global class AccountRetrieval{ webService static String getAccount(String name) { List<Account> accounts = new List<Account>(); for (Account account : Database.query('Select Id, Name, phone from Account where Name like \'' + name + '%\'')){ accounts.add(account); } String JSONString = JSON.serialize(accounts); return JSONString; } } -
In Setup, click Generate from WSDL to expose the method and class so that a third-party softphone can call it.
-
Add your code to the softphone:
<!-- html set_clipboard --><html> <head> <script type="text/javascript" src="http://domain:port/support/api//lightning/opencti_min.js"></script> <script type="text/javascript"> var callback = function(response) { if (response.success) { console.log('API method call executed successfully! returnValue:', response.returnValue); } else { console.error('Something went wrong! Errors:', response.errors); } }; function runApex() { var param = {apexClass: 'AccountRetrieval', methodName: 'getAccount', methodParams: 'name=acme'}; param.callback = callback; //Invokes API method sforce.opencti.runApex(param); } </script> </head> <body> <button onclick="runApex();">runApex</button> </body> </html> -
Output is returned. In this example, one account named Acme was found:
{ "success": true, "returnValue": { "runApex": "[{\"attributes\":{\"type\":\"Account\",\"url\":\"/services/data/v38.0/sobjects/Account /001xx000003DGawAAG\"},\"Id\":\"001xx000003DGawAAG\",\"Name\":\"Acme\",\"Phone\":\"(212) 555-5555\"}]" }, "errors": null }
Response
| Name | Type | Description |
|---|---|---|
success |
boolean | Returns true if the API method call was invoked successfully, false otherwise. |
returnValue |
object | A JavaScript object containing the result from executing the method from the specified Apex class. No specific format is returned. The format is determined by the value from the method that executed. |
errors |
array | If the API call was successful, this variable is null. If the API call failed, this variable returns an array of error messages. |
Example returnValue:
{"runApex":"[{\"attributes\":{\"type\":\"Account\",
\"url\":\"/services/data/v/sobjects/Account/
001xx000003DGawAAG\"},\"Id\":\"001xx000003DGawAAG\",
\"Name\":\"Acme\",\"Phone\":\"(212)555-5555\"}]"}