Defining the Custom Methods
You use custom operations for validations and complex business logic that you must code manually. In this example, the custom operation generates dummy data and persists it in the local database. This is required in order to have meaningful searches in case the data model on the server-side has no back-end adapter, BAPI wrapper, or back-end data. In such a case, no data can be synchronized with the mobile device and you must revert to generating local data for testing, instead.
You have created a service.
More information: Creating a Service
...
1. In the Service Explorer, select orderService under the Services node of your project.
2. Open the context menu and choose Open With → Object and Java Editor.
3. In the editor, choose to Add a service operation.
4. In the Create New Operation dialog box, choose Custom Operation, enter the NamegenerateTestData, and choose Next.
5. Choose Finish.
...
1. In the Java Editor, scroll to the implementation of generateTestData and enter the following code between the //@@begin implementation and //@@end tags:

Generate generateTestData() only once.
public void generateTestData() { //@@begin implementation if( !(((Order_srvModel)OcaRoot.getInstance().getModel(Order_srvModel.class)).getOrderOrderheaders().size() > 0)) { OrderOrderheader order = ((Order_srvModel)OcaRoot.getInstance().getModel(Order_srvModel.class)).createOrderOrderheader(); order.setOrderid("0023378"); order.setLongtext("Repair front door"); order.setServiceunit("SU01"); order.setCreatedOn(Date.valueOf("2007-06-30")); order.setCreatedAt(Time.valueOf("08:45:00"));
order = ((Order_srvModel)OcaRoot.getInstance().getModel(Order_srvModel.class)).createOrderOrderheader(); order.setOrderid("0024897"); order.setLongtext("Analyse malfunction"); order.setServiceunit("SU01"); order.setCreatedOn(Date.valueOf("2007-07-01")); order.setCreatedAt(Time.valueOf("09:00:00"));
order = ((Order_srvModel)OcaRoot.getInstance().getModel(Order_srvModel.class)).createOrderOrderheader(); order.setOrderid("0034534"); order.setLongtext("Repair escalator"); order.setServiceunit("SU03"); order.setCreatedOn(Date.valueOf("2007-07-03")); order.setCreatedAt(Time.valueOf("19:45:00"));
order = ((Order_srvModel)OcaRoot.getInstance().getModel(Order_srvModel.class)).createOrderOrderheader(); order.setOrderid("0024589"); order.setLongtext("Analyse computer problem"); order.setServiceunit("SU04"); order.setCreatedOn(Date.valueOf("2007-07-01")); order.setCreatedAt(Time.valueOf("15:45:00"));
order = ((Order_srvModel)OcaRoot.getInstance().getModel(Order_srvModel.class)).createOrderOrderheader(); order.setOrderid("0027890"); order.setLongtext("Repair door lock"); order.setServiceunit("SU03"); order.setCreatedOn(Date.valueOf("2007-07-05")); order.setCreatedAt(Time.valueOf("10:00:00"));
OcaRoot.getInstance().commit(); } //@@end } |
2. In OrderUi.java (UI component controller) to automatically insert the % sign enter:
public void getOrdersByLongtext() { //@@begin getOrdersByLongtext() String searchString = "%"; String origString = ""; if(getOrdersByLongtext.getLongtext() != null) origString = getOrdersByLongtext.getLongtext(); else origString = "";
getOrdersByLongtext.setLongtext(origString+"%");
//$$begin (Mobile Service Component) wdContext.nodeorder_srv().nodegetOrdersByLongtext().nodegetOrdersByLongtextOutput().bind(getOrdersByLongtext.execute());
//$$end getOrdersByLongtext.setLongtext(origString);
//@@end } |
3. Choose to Save service orderService.
4. Select Mobile Service Component order_srv and choose Development Component → Build in the context menu.