Operations Mobile Application Project Setup
To configure the Operations Mobile Application on your existing NMS system, follow these steps:
1. Change the MBService startup parameters to include the -export option. This can be done in the $NMS_HOME/etc/system.dat file:
program MBService MBService -dbname mb -export
If that parameter was already on your MBService startup, skip ahead to step 3.
2. Restart MBService with net parameter:
$ Action any.MBService stop
$ sms‑start -f system.dat
3. Configure the Operations Mobile Application GeoJSON map generation process as defined in this document.
4. Generate new .geojson map files:
$ for f in `DBQuery "select filename from partitions where active
= 'Y' and filename like '%.mad';"`
do
DiagramBuilder -map ${f%.mad}
done
$ [project]-build-mobile-maps
5. Setup an Operations Mobile Application development environment on OSX, Windows 10, or Linux as describe in this document.
6. In the development environment, configure the default NMS Mobile Gateway URL into the development environment file src/js/resources/config/loginSettings.js file by changing these lines using your server and port:
// Specify server configurations you would like to have automatically configured for OMA (up to 9);
self.server1 = {
name: 'Production',
host: '[servername].[domain].com',
app: 'nms-ws',
port: 7102,
};
7. In the development environment, configure your device, condition, and conductor symbology. Put the device and condition .svg files in the src/js/symbols directory. Map the files to the geojson object SYMBOL using the FLEX configuration system as described in the OMA2/src/ts/client/config/examples/README.txt.
8. In the development environment, configure the classes of interest to get from the server. In the src/js/api/mobile-api.js file, locate the functions self.getConditionsByLatLong and self.getConditinsByPartition and adjust the list of condition types you want to use. The line will look like this:
let urlAppendage = "/mobile/conditions?qt=event,da,truck,instruct,incident,assessment,note,tag,info,clear,hold,hot,disable,wire_down,warn,ground,dcz,associated_document";
9. In the development environment, configure the self.event_type_labels in the src/js/resources/config/tasks.js file to match your project:
// labels for NMS event types
self.event_type_labels = {
NO_OUTAGE: 'Fuzzy Event',
PROBABLE_SERVICE_OUTAGE: 'Probable Service Outage',
PROBABLE_DEVICE_OUTAGE: 'Probable Device Outage',
...
10. In the development environment, configure the customer_type_labels in the src/js/resources/config/tasks.js file to match your project:
// labels for NMS critical customer types (From JBotFormat_en_US.properties file)
self.customer_type_labels = {
0: 'Standard',
1: 'Emergency',
2: 'Key',
3: 'Medical'
...
 
11. In the development environment, configure the picklist_type in the src/js/resources/config/tasks.js file to match your project:
// GUI types
// matches PICK_ENV_MAPPING in JBotFormat_en_US.properties
self.picklist_type = {
NO_OUTAGE: 'radial',
PROBABLE_SERVICE_OUTAGE: 'radial',
PROBABLE_DEVICE_OUTAGE: 'radial',
REAL_SERVICE_OUTAGE: 'radial',
...
12. In the development environment, configure the picklist_filters in the src/js/resources/config/tasks.js file to match your project:
// Event Details filters for each outage type
self.picklist_filters = {
'radial':
[
{
matches: [
{
option: "system_om",
option_values: ["Distribution OH"]
}
],
...
13. In the development environment, configure the picklist_cfg in the src/js/resources/config/tasks.js file to match your project:
/ label matches FIELD_NAME in MessageCode_en_US.properties
// if visible is true then corresponding list will be
// displayed
// if required is true then non-default value is required
// to complete event (making field required implicitly
// makes it visible)
self.picklist_cfg = {
system_om: { label: 'System', visible: true, required: false },
cause_om: { label: 'Sub-System', visible: true, required: false },
type_om: { label: 'Type', visible: true, required: false },
...
14. In the development environment, configure your map object attribute viewer options as defined in “Configuring OMA Object Attribute Viewer”.
15. In the development environment, configure the section_options in the src/js/resources/config/damage.js file to match your project:
self.section_options = [
{value:'Service', label:'Service'},
{value:'Secondary', label:'Secondary'},
{value:'Lateral', label:'Lateral'},
{value:'Backbone', label:'Backbone'},
];
16. In the development environment, configure your map object Search options as defined in “Configuring OMA Search Options”.
17. In the development environment, configure the location_options in the src/js/resources/config/damage.js file to match your project:
// location
self.location_options = [
{value: 'Street', label:'Street'},
{value:'Rear Lot Line', label:'Rear Lot Line'},
{value:'Other', label:'Other'},
];
18. In the development environment, build the Operations Mobile Application.
19. Configure your Mobile User Validation including predefined users, new user keys, and/or LDAP/AD authentication in the NMS Configuration Assistant or project scripts or jconfig.
20. Configure your Mobile Application Keys in the NMS Configuration Assistant or project scripts.
21. Install the Operations Model Application on each targeted device.
22. Deploy the Mobile Gateway on the WebLogic Application Server.
23. Test the Operations Mobile Application.