Mission Control - LiquidAnalytics/ld-api-examples GitHub Wiki

#Introduction to the Liquid Platform Mission Control

What is it?

Mission Control is a Liquid Analytics internally developed tool, for use of managing data and interfaces for the Liquid Decisions Application

Purpose

This document is intended for developers, super users, support personnel. It will guide you on how to use Missions Control and how to manage data, users, devices and interfaces to the Liquid Decision platform.

Prerequisites

JAVA 7 client is required to run Mission Control. It will run on a MAC or Windows system.

Entering Mission Control

First, to enter into Mission Control, open up your browser and type in the address listed below:

Format: https://<server_host>:<server_port>/missioncontrol/

For your QA servers, this would be: [https://ldcloud-qa.liquidanalytics.com/missioncontrol/][29]

Upon getting there you should see the button below:

Click "Launch Mission Control" and you should be prompted to download "missioncontrol.jnlp". Download it and launch it. You will then be presented with this prompt.

Click on the Open button. You will then be prompted with this screen, press the Run button

You will now be presented with the login screen.

Login with your assigned username and password and hit enter. Once the app validates your credentials it will prompt you to select a community, select your community that belongs to you and click Sign In. There will usually only be one to choose from for a customer.

Finally, Mission Control has launched.

Items

Looking at Data

Allows the MC user to explore what is currently in the db that represents that item type, and allows modification as well as seeing neighboring items

The first thing is selecting the item of your choice. Make sure you are in the Items section. Then click on the drop down near the top left area, click it and select the item (data table) of your choice and click on Add Blotter. This will open the data table in a grid for you to look at. If you want to always show up when you log back into MC, click on the Save Layout button.

As you can see with the screenshot above, this view shows you all the items available, with all the columns defined on the schema. There are a couple of things you can do on this screen.

  • The default sort is by processedAt in descending order.
  • You can sort by any column by just clicking on the column header. When you first click on any column, it will sort it in Descending order first, if you click it again it will sort it in ascending order.
  • MC allows you to move columns around in the grid by just dragging it to where you want it. Click and hold on the column header and drag to the place you want.

Searching for data

There are several ways you can find data in MC. You can filter down the selection to narrow down to see the information you want.

* Note: There is a default limit of 500 that is located next to the Max Rows. If your search is more than that then you need to adjust this number so you can see all of the data. The maximum amount you can set it to is 10,000 records.

By User Id:

  • Where you see User Id, you can put in the username of the user that you want to see data entitled to them.

* Note: Entitled means that data is assigned and will display on their device.

By Device Id:

  • You can narrow the list for the username if there are more than one device that has that userid. You can search by a specific device Id that is given to you by the user for the user in question. You just need the first 5 characters of the users device id to identify it. This will show all data that is

  • if you remove the user id reference then you can't use the device Id option.

By schema Attributes:

You can search by any available attribute in the schema, such as accountid, product ID, orgpath, etc. There are two filter criterias you can use, so you can do account =xxxx AND status =xxxx.

  • Example 1:

  • Here we search for all users, where accountid = 1000002598

  • Example 2:

  • use can search by orgpath like this orgpath = /Org/company[1100]salesOrg[1100]/plant[1010]

  • Example 3:

  • name = BAYOU*

  • The operator for the filter can also be changed to be Not equal

  • The search criteria also supports Empty,Null, or Null or Empty by using the dropdown

*Note: The data you are looking for is case sensitive everywhere.

*Note: You can use wildcards only at the end of the search term not anywhere else

Viewing Details

  • This can be done by double clicking on any row of an item. A screen like the one below will appear

  • This view has a couple of major things

  • Item Details: the json representation is the item. This includes header information (which is internally used), and everything else, which is closed by the "data" key. Those are all the fields that ultimately the client (you) are sending.

  • Users: this outlines the users that are entitled to this item. The exception to this is the user item (the example i'm using).

  • Neighbour Count: The direct neighbours that this item associated with. What direct means is determined by the relationship. So for example, Users are directly associated with Positions.

  • Neighbors Summary: If you select on one of the neighbors (bullet point above), it will give you a list of what those neighbors are. Double clicking on this, will open up the details of those items

  • Related Items: This exists to show all items associated with a particular one. For example, you can use this to show all accounts related to a position, or all products related to an account. Good for debugging.

*Note: Not all data is entitled, data like a/r, invoicelineitem, pricing, and suggested products are all online calls and won't be entitled to a user since it doesn't reside on the device.

Data Correction

  • When viewing item details, the bottom contains 2 buttons. Refresh and Correct/Update. Selecting the latter brings up the following screen

This allows you modify the field of any item. (Just like modifying the DB). Notice that dimensions become a selectable list, and blocks are not editable in this view. For that, you must view the actual JSON (since blocks are json elements anyway). To do that, hit the JSON button on the top. Doing show brings up the raw json that can be edited.

*Note: You cannot change the primary key of an item, doing so will simply create a new item, with a new primary key. The original item will always exist. (Unless you explicitly delete it)

Item Entitlement

  • You have several options you user to see if a record is entitled or belongs to a user.

  • You can view the details of the record by double clicking on a record. The explore account window will appear. In the middle section, you will see the users section and this will show all users who should get this record.

  • View the data in the user's manifest from community user management (see community user manifest section below)

  • By typing in the userid in the User ID field.

Item History

  • MC has the ability to see the history of changes per record. To view this expand the Item History section by pressing Item History. If you select any record, the history of that record will be displayed below in the item history section.

  • This shows everything that has happened to this one item since it has been created. The history panel will be updated every time the item is updated (say new account attributes). Good for tracking when things change when there is a data discrepancy.

Import / Export Via CSV or JSON

You can always back up your data by exporting it via CSV. The columns will simply be what you see in the MC view. Similarly you can also import data using the same way to test Liquid Decisions or to put in data in the event something in the back end is not ready. The same can be said for JSON.

  • Select Export Items
  • A new dialog box will appear for Export File Options

  • Select the format of either CSV or JSON.
  • Select Export Selected or Export All from the table you are looking at and another dialog Save window will appear.
  • Enter a name for the file you want to save, select the location you want it in, and click Save

Viewing cart/order Information

One of the most useful functions is to look at the statuses of cart being built and sent to the host system. MC has the ability to view each stage of the cart process to validate whether it was created, verified, sent, and confirmed.

  • To view cart information, add the Cart item to the blotter

  • You have the option to filter by any attribute used in the cart, like acountId, userId, cartId, externalID (the host system order number), etc
  • If you click on any cart and have the item history expanded you will see all of the stages that cart went through. The screen shot below shows the selected cart and the different statuses that cart went through.

  • In the state column you have the following states for the cart

  • Received from Device - the information directly from the device.

  • Sending to Application - the cart which is being sent to the host system

  • Transaction Completed - the cart being confirmed from the host system

  • The appTime column is the time it takes to do the action. Its in miliseconds so you take the number and move the decimal over to the left three to get seconds. ex: 1485 is actually 1.45 seconds.

  • The processStatus column shows what the user action they performed editing, verify, or submit. If the host system sends it, it will have verified or submitted.

  • To look at cart errors being returned from the host system you see those in the receiptMessage column

Community User Management

How do I setup a user for Mission Control

  • A user who is not part of the data feed from the source host system, needs to be added manually to MC to access the system. These are admin, service desk, developers, etc.

  • To create a new user go to Community User Management located at the top bar.

  • Then click on the Invite a New User button

  • A dialog box will come that will ask you for the email of the person you want to invite

  • Once you type in the email of the user and click ok. An invitation will be sent out to the user to register and create a password.

  • Once the user registers you can assign them a role in MC. In most cases, you will assign them the MissionControlReadOnlyUser role. See list below of all available roles. MissionControlReadOnlyUser - cannot CRUD any items or configuration, can only view

*Note: You must have rights to assign rights to a user. At least have MissionControlSupportUser

  1. MissionControlDataUser - can CRUD any items, cannot CRUD any configurations, most users are setup as Data Users in PROD environments
  2. MissionControlMaintenanceUser - can CRUD and view all items, can only import configurations from files, cannot save them in place. Most users are setup as MaintenanceUsers in QA environments
  3. MissionControlSupportUser - can CRUD and view all items and configurations, most users are setup as a Support User in DEV environments
  4. MissionControlSuperUser - same as Support User, but also has ability to add and delete roles from users and reset credentials for any user
  5. CommunityAdmin - allows Decisions Console access
  • To assign roles in MC:

  • Find the user in the top blotter, or type in all or part of their userID and select it.

  • Then expand the user roles section and with the user select, select the role you want to give the user and hit the "Add Role For User" button.

  • After a moment, you should see the role you added appear in the lower right blotter, which means that the user is now entitled to that role, and will now be able to login to Mission Control or Decisions Console.

Setting Password for users

Users of the Liquid Decisions app can set and manage their own password. For those that can't or have problems doing so you can set them in MC for them.

  • In Community User Management, select the user you want to set the password.

*Note: You can multi-select more than one user to set the password if you are resetting it to the same one as a base.

  • Right click on the user(s) and select Set Password

  • Set Password dialog box will appear. Type in a New Password and repeat it in the Confirm Password.

*Note: The password must have the following conditions

Setting Permission for Users

There will be times where users need to have their data permission for the first time or again if there lots of changes or something happened with their userId. This process will go through all of the data and set what record belongs to this user and re-creates the manifest of data to be sent to the devices.

*Note: If a brand new user will begin using the app, someone needs to permission the data first and then the user can register his/her device.

  • In Community User Management, select the user you want to Setup Permissions.

*Note: You can multi-select more than one user to set permissions

  • Right click on the user(s) and select Setup Permissions

  • A dialog box will appear to choose which ones and which type to permission

  • Select, Selected and for All Types, the users permission will begin shortly
  • You can see the progress of the permissioning in the section of MC that says Tasks in Progress below the User Roles section.

  • When the task says Completed, then the user can begin registering or the data will begin flowing down to the device.

Viewing the User's Manifest

The manifest is the area where you can see how many of each type of data is permission or entitled to each user. The view breaks it down by data type in the system and a count in descending order. These counts should or will match what is in the users device.

  • In Community User Management, select the user you want to see the manifest.

*Note: You can only do one user at a time.

  • On the right-side of MC there is a button that says User Permission Summary.
  • Click on this to expand the view and see the list of permissioned items for the user.

  • From the Use Permission Summary view, you can double click on any of the Item Types to see the actual data that makes up the count. A dialog window will open showing the item data in the standard item blotter.
  • Below, I am looking at Accounts that belong to this user.

  • You can filter further in this window, just like you would do in the item area of MC

Device Management

The device management section of MC looks at the individual devices that have registered against Liquid Decisions. It keeps track of the data being sent to each device as well as which user has which device. Since Liquid Decision support the same user on multiple devices, a unique Device ID is assigned to each registration and can be found in the Liquid Decisions app under Connection Info under the i button. You will need the first 5 characters that are bolded.

You access the device management section by clicking the section called Device Management

Finding the Information

  • MC has the ability to find devices by

  • By UserID

  • DeviceId

  • OrgPath

  • Client Build

  • Time Period

  • Synch Status

  • Once you have the user and DeviceId you want to view, click on that row to highlight it.

  • You can scroll to the right and will see more information about the device. You can see:

  • Last Connection - last time the device connected to the LD Server

  • Last Transaction - last time the device sent a transaction to the LD Server

  • Expected Item Count - total amount of records the device should have

  • Verified Item Count - total amount of records verified on the device

  • % out of synch - the percentage of data that is not in synch

  • Pending Updates - total number of records waiting to be updated on device

  • Pending Deletes - total number of deletes waiting to be deleted on the device

  • Registration Time - the date/time of the device registration

  • Hardware Name - the name of the hardware of the device

  • Hardware ID - the hardware ID of the device

  • Application - the name of the application the device is communicating with

  • Client Build - the build version on the device

  • Version - version number

  • Synch Enabled - If synch is enable or disable for this device

  • Last Manifest Consistency Check - the last time the device did a manifest consistency check

  • Last Client Manifest Recon - last time the device manifest was reconciled

  • Device Notification Token

  • Resource Name

Exporting Device Information

You can use the data in MC to extract the information to answer certain questions. One of the most asked question is which users are not using the latest build of LD. To answer this question.

  • Go to Device Management.
  • Sort the list of Devices by userId by Clicking on the UserId column.
  • Then, using your mouse, highlight all of the device records by holding the mouse and scolling down the list.
  • When you reach the end, do a ctrl-copy
  • Open an excel empty sheet and paste this into the sheet.
  • You only need three columns the userId, HardwareName, and the client Build #
  • Re-sort the column to sort by UserID, HardwareName, and descending client build in Excel.
  • Remove duplicates that have the same UserID and HardwareName (Data, then Remove Duplicate Option)
  • This will leave you with the last registration for each user and ipad.
  • Filter out the records that have the current build.
  • This is your list of who is not on the latest build. Be sure to take note that it may be a test/training ipad. So make sure the hardware is the actual user's device.

Device Activity Detail

MC allows you to view the actual data that is being sent to the device by item type. This allows you to see if the device is connecting to the server and what data is still pending to send.

  • To view this information expand the Device Activity Detail button on the right-hand side of MC.

  • You have the option of viewing

  • Recent Device Activity - allows you to see the different synch times with start and stop times as well as how long it takes

  • You can change the date and time ranges to narrow the data to a specific window of time

  • Device Synch Log - allows you to see what item type is being sent and the status. Narrow the time window you want to see and then click Get Synch Log

  • Device Pending Counts - Allows you to see what item types are pending and how many. Click on Recalculate Selected and it will display the latest pending items, if any
  • You can see pending updates and deletes

Importing from the Source Data using LES

MC allows a user to import new data or re-import the data into Liquid Decisions Server.

  • On the menu bar of the MC, there is an LES menu Item. It has the following options:

  • Full Reload - This imports all of the data for the selected items you choose

  • Pre-validate Full refresh - this checks the structure of the source data to validate it is good before importing into the LD server

  • Resume Delta Refresh - this restarts the delta jobs in case they were stopped for the item(s) you choose

  • Pause Delta Refresh - this stops the delta job for the item(s) you choose

  • Cancel Full Refresh -this cancels the full load job for the item(s) you choose

  • By Selecting any of the above options you will get a new window to select the items you want to action on.

  • Select the items you want and click on the lower right-hand side button. In this case it is a Full Refresh. This will change depending on what action you select from the LES menu.

FAQ

How do I know if a user is entitled for an item?

There are a number of checks you can use to see if a user is entitled to an item or not.

  1. First check the itemSchema of the item in question under Schema Management panel, and check the permissionType of the schema. If it is set to All, then all users are entitled to these items, if it is set to None, no users are entitled to them. If it is set to relationship, see the step 2.
  2. Check that a relationship exists from User to the item type in question. Switch to the Relationships tab and at the bottom, choose From: "User" To: the item type in question, and hit "Get Path" button. If no path is returned, there are no relationships that link the item in question to a user, you must add new relationships to form a path.
  3. If a path exists, you can use the Explore Item function on the ItemBlotter to see what users are entitled for an item. Go to Item Blotter panel, and choose the item type you are looking for. Find the particular item you want to see the entitlements for and double click or hit the "Explore" button. In the upper right hand corner of the Item Explorer Box, is a "Users" table. The Users in that table are the users that are entitled for the item.
  4. If you believe a certain user should be entitled for an item, but it is not showing up in the Users table of the Item Explorer box, you need to examine the relationship path from User to your item type, and figure out why the path is not working. You can iterate on steps 2 and 3, going down the relationship path to see at which point the User is no longer entitled to items, and there you will likely find your problem.