Communication and data flow

You can use Maximo Anywhere mobile apps in online and offline scenarios. In an online scenario, the app is connected to the server and uses the services and data that are provided by the enterprise system. In an offline scenario, the app is not connected to the server but continues to operate with locally stored data.

Online and offline operations

When mobile workers are online, Maximo Anywhere apps interact with the enterprise system and exchange data that is represented in a simple interchange format called JSON (JavaScript Object Notation). Requests for data and authentication are routed initially to MobileFirst Server and then transmitted to the enterprise system by the Maximo Anywhere adapter. In the enterprise system, requests are processed by an OSLC service provider, and a response is returned.

The data that is retrieved from the enterprise system is automatically saved to the device in a JSON data store. The availability of locally stored data makes online data operations more efficient and users can continue working when planned or unexpected disconnection occurs. While users are online, local data is automatically synchronized to maintain consistency with the enterprise system. Users can also manually synchronize data.

The following figure shows the flow of data between the Maximo Anywhere apps and the enterprise system.

Communication between Maximo Anywhere and the enterprise system. Details are provided in the text that precedes the diagram.
Figure 1. Communication between the Maximo Anywhere apps and the enterprise system

In an offline scenario, requests are processed on the device by using data that was retrieved during online operations. When connectivity is restored, local data is automatically synchronized.

In both scenarios, data changes on the device must be validated. Depending on the type of change, validation is managed by the app or by the server. Mobile workers must resolve any errors that are identified during validation or undo the changes in the app.

Large data operations

In online operations, Maximo Anywhere has a maxFetchDataLimit property value of 500 for transactional resources. When the list page has transactional records equal to or more than 500 on the device, you can reload the transactional records on the device. The updates must be reloaded from the server because automatic updates are not enabled even if you are connected to the network.

You can configure the maxFetchDataLimit property in the app.xml file in the Anywhere\MaximoAnywhere\apps\app_name\artifact directory to ensure that data can be reloaded after the threshold is triggered:
<resource class=”application.business.WorkOrderObject” maxFetchDataLimit=”300”
defaultOrderBy=”wonum asc” describedBy=”http://jazz.net/ns/ism/work/
smarter_physical_infrastructure#WorkOrder” id=”workOrder” name=”workOrder” 
pageSize=”40” providedBy=”/oslc/sp/WorkManagement”>
<attributes id=”workOrder_attributes”>

For performance considerations, a smaller MaxFetchDataLimit property value provides faster reloads.

With the Reset Worklist option, you can resume normal mode. The data page size reverts to the default value, and you receive all the updates on the list page.

With large data support, you can always see the server count on your device. Only up to two pages are shown on the device, and a limited set of data is downloaded. The total count for the list page is also shown.

In connected mode, all bar codes are scanned to the server if you do not have all the data on the device. If you download all the data to your device, the scan occurs locally for best performance.

With large data support, all sorting on the list page occurs on the server if you do not have all the data on the device. If you download all the data to your device, the sort occurs locally for best performance.

Maximo Anywhere supports display page size and resource page size configuration. With display data page size, you can display the amount of data on the list screen. With resource page size, you can receive the data in chunks from the server. With large data support, the resource page size is configured to be smaller to ensure that the device can access the network. The smaller resource page size also uses a smaller amount of network throughput when you receive data from the server. The smaller resource page size also uses an optimal amount of device memory and processing power while it processes and stores data in device storage. You can continue to work with the next pages, and the device continues to download data in chunks.

For example, to configure best performance, in the app.xml file, set the display page size property to 20 and the resource page size property to be 40:
<list displayPageSize="20">
<resource pageSize="40">

Set the size of the resource page size to be twice the display page size. The resource page size should be as small as possible for a faster login process and lower memory and cpu usage on the device.

In disconnected mode, the list pages do not show counts.

Login and authentication

To access remote or locally stored data, users must log in to the app by entering the credentials that they use in the enterprise system. The first time that users log in, they must be connected to the enterprise system. After the first login, depending on connectivity, credentials are validated locally or on the server.