1. Create Source Code:
Ext.define("Terrasoft.configuration.service.UsrYourService", { alternateClassName: "Terrasoft.UsrYourService", statics: { serviceUrl: "rest/UsrYourService/", // Name of your Service yourAction: function(config) { var data = { recordId: config.id // Input parameter(s) of service }; Terrasoft.RequestManager.issueRequest({ supressRequestEvents: false, requestFn: Terrasoft.Ajax.request, requestFnConfig: { url: Terrasoft.util.encodeServiceUrl(this.serviceUrl) + config.action, method: "POST", jsonData: data, success: function(response) { var decodedResponse = Ext.JSON.decode(response.responseText, true); Ext.callback(config.success, config.scope, [decodedResponse]); }, failure: function(response) { var parser = Ext.create("Terrasoft.ServiceResponseParser", response); var exception = parser.getServiceFailureException(); Ext.callback(config.failure, config.scope, [exception]); }, scope: this }, responseToStatusCodeFn: function(response) { return response.status; }, scope: Terrasoft.Ajax }); } } });
2. Add in MobileApplicationManifest your service into CustomSchemas block:
"CustomSchemas": [ "UsrYourService" ]
3. Call service from your code:
yourFunction: function() { Terrasoft.UsrYourService.yourAction({ id: this.record.getId(), // RecordId action: "Start", // Method of service success: this.serviceSuccess, // Success callback failure: this.serviceFailure, // Error callback scope: this }); }, serviceSuccess: function(response) { if (response.isSuccess) { ///TODO: do something } else { Terrasoft.MessageBox.showMessage(Terrasoft.LocalizableStrings.StartErrorMessage); // Error message } }, serviceFailure: function(error) { var response = error.getResponse(); Terrasoft.MessageBox.showMessage(response.statusText); }