About This File
Live Dashboard for TIBCO Fulfillment Order Management
Using this shared component, you can display real-time analytics using TIBCO® Live DataMart.
You must have the following software installed to use this feature:
- TIBCO® Fulfillment Order Management 4.0.1
- TIBCO Live Datamart 10.2
- TIBCO Enterprise Messaging Service? 8.3
- Apache Maven 3.x (or above)
Configuring for the Live Dashboard for TIBCO Fulfillment Order Management (LD4FOM)
Complete the following configurations before running the Live Datamart dashboard.
Procedure
-
Setting the following Environment Variables
- Set the TIBCO_EP_HOME environment variable to the file system location of your TIBCO StreamBase installation. This is the same location identified by the STREAMBASE_HOME environment variable. For example, $TIBCO_HOME/sb-cep/10.2.
-
Add TIBCO_EP_HOME/distrib/tibco/bin to the PATH environment variable.
-
Set the environment variable SB_MAVEN_REPO to $TIBCO_EP_HOME/sdk/maven/repo.
-
Installing External Dependencies
The dashboard project requires the jms-2.0.jar and tibjms.jar files to be in the local Apache Maven repository, which is specific to the current user on the current machine. By default, this is the .m2 directory of the user's home directory. As per the POM currently available with fom-notification-dashboard project, it will try resolve the dependencies by checking in $TIBCO_EP_HOME/sdk/maven/repo but you can add multiple repositories in the POM.
Procedure
Use the following command syntax (the command is shown on multiple lines, but must be entered as one long command):
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar -DgeneratePom=true
-
Setting the Outbound Notifications
To generate the live or real-time analytical reports, the Live DataMart dashboard uses outbound TIBCO Enterprise Messaging Service messages from TIBCO® Fulfillment Order Management. Set the following properties in Fulfillment Order Management Configurator so the application can send the outbound notifications.
Procedure
Set the following properties in Fulfillment Order Management Configurator to true:
For the provided dashboard reports, only these outbound notifications are used.
- Order Status Change Notification
- Plan Status Change Notification
- PlanItem Status Change Notification
- OrderLine Status Change Notification
-
Setting TIBCO Enterprise Messaging Service Configurations
Update the fom-notification-dashboard/src/main/resources/adapter-configurations.xml file with the respective TIBCO Enterprise Messaging Service configurations.
Procedure
-
Under the "jms-server" section, update the following attributes:provider-url attribute with the TIBCO Enterprise Messaging Service server?s IP and port.
It is recommended when you modify the password field, you encrypt your password using the command sbcipher -c "admin" from TIBCO Streambase. For example:
C:tibcosb-cep10.2bin>sbcipher -c "admin" Vzz+hSVqZjrTyiA08RL87YgAnPxI/AygAnrXVWeS0IspfKihwJ/YJ8hCzyTLpFVlIg/6eD/EvYaEmVNmB1NFRQ==
- Update the provider URL attribute with the TIBCO Enterprise Messaging Service server?s IP and port.
- Update the username attribute with the TIBCO Enterprise Messaging Service username.
- Update the password attribute with the TIBCO Enterprise Messaging Service password.
- Under the "destination" section, update the message-selector attribute with the value of your specific tenant. The default TENANTID is kept as TIBCO. For example, if you have a tenant ID ?A?, the message-selector attribute should be updated as message-selector="TENANTID='A'".
-
-
Setting Configuration Parameters
Change the configuration parameters in fom-notification-dashboard/src/main/resources/configurationparameters file before running the dashboard.
Procedure
Set the following configuration parameters:
The values of the parameters in this file must be updated and the configuration-parameters file reference must be passed in the epadmin command. For more information on epadmin commands and how it works, refer to the TIBCO StreamBase documentation on epadmin.
-
clean_up_completed_orders_days = 1
For more information on this parameter, see CLEAN_UP_COMPLETED_ORDERS_DAYS in the "Automatic Deletion" topic.
-
completed_orders_clean_up_frequency_seconds = 3600
For more information on this parameter, see COMPLETED_ORDERS_CLEAN_UP_FREQUENCY_SECONDS in the "Automatic Deletion" topic.
-
eventflow_engine_tcp_port = 10000
This is the default port where the TIBCO StreamBase engine starts.
-
liveview_tcp_port = 10080
This is the default port where the LiveView engine starts.
-
-
Creating the TIBCO Enterprise Messaging Service Channels
Setting up JMS-routing is not a mandatory setup, but is recommended to reduce the load on the TIBCO Enterprise Messaging Service server used by TIBCO® Fulfillment Order Management. It is recommend to use a separate TIBCO Enterprise Messaging Service server for the Live DataMart dashboard and enable routing on the application's TIBCO Enterprise Messaging Service server, and use the second TIBCO Enterprise Messaging Service server for the Live DataMart dashboard.
Procedure
Execute the channel creation script fom-reporting-dashboard/bin/af-dashboard-create-ems-channel.txt.
This script creates all the required queues and bridges between TIBCO® Fulfillment Order Management application?s topics and the dashboard?s queues.
TIBCO Live Datamart Dashboard Deployment
You have to import the provided source code in TIBCO StreamBase Studio and make the required configuration changes as stated above and then deploy the TIBCO Live Datamart dashboard to start the dashboard service with the provided reports.
Deploying the Live Datamart Dashboard with Provided Source Archives
This is the deployable option to extend the existing Dashboard functionality by adding new reports to the dashboard.
Procedure
-
Following are two project source directories:
- fom-reporting-dashboard/src/deploy-fom-dashboard
- fom-reporting-dashboard/src/fom-notification-dashboard
-
Import the fom-notification-dashboard and deploy-fom-dashboard projects into TIBCO StreamBase Studio.
Result
fom-notification-dashboard is ready to run in your designer.
Building the source from command prompt
You can use the ant script fom-reporting-dashboard/src/build.xml to trigger the build and generate the deployable archive.
$ fom-reporting-dashboard/src> ant
Starting TIBCO Live Datamart Dashboard
After doing the above mentioned changes, you are ready to start the dashboard using epadmin
-
Install the application as a service and create a node by running the following command:
$> epadmin install node application=fom-reporting-dashboard/src/deploy-fom-dashboard/target/deploy-fom-dashboard-0.0.1-SNAPSHOT-ep-application.zip nodename=A.fom_notification_dashboard nodedirectory=<any-tmp-directory> substitutionfile=<path-to-configuration-parameters-file>
When running this command, the nodename identifies a unique service name. A service name consists of the following parts:
servicename = <nodename-label>.[[<group-label>.]*]]<clustername.label>
The following are some example service names:
These service names uniquely identify five different nodes, all in the same cluster.
- a cluster name
- an optional grouping
- a node name
- applicationcluster
- eastcoast.applicationcluster
- eastcoast.applicationcluster
- westcoast.applicationcluster
- westcoast.applicationcluster
-
Start the created node by running the following command:
$> epadmin servicename=A.fom_notification_dashboard start node
-
You can stop the node by running the following command:
$> epadmin servicename=A.fom_notification_dashboard stop node
-
You can remove the node by running the following command:
$> epadmin servicename=A.fom_notification_dashboard remove node
- Access the dashboard on browser using -
http://<IP-Address>:<port>
default port to access the dashboard is 10080.
LDM Dashboard Reports
The dashboard provides out-of-the-box reports based on the outbound notifications.
The following table describes the provided reports:
Report Name | What is Shown |
---|---|
Orders Inflow Rate | This graph shows the number of orders currently coming in TIBCO® Fulfillment Order Management. By default the order's inflow is shown on a per minute scale but you can change the scale to per hour or per day. To customize this graph, see Customizing the Orders Inflow Rate Graph |
Process Component Average Completion Time | This graph shows the average completion time for all the completed process components (Y- Axis) on the scale of millisecond (X-Axis). To find the average, this graph considers the last 100 process components which are marked as complete in the system. |
Order Average Completion Rate Time | This graph shows the average number of orders completed in TIBCO® Fulfillment Order Management on a time scale. By default the order's inflow is shown on a per minute scale, but you can change the scale to per hour or per day. To customize this graph, see Customizing the Average Order Completion Rate Graph. |
Order Completion Rate | This graph shows the number of orders completed in TIBCO® Fulfillment Order Management on a time scale. By default the order's inflow is shown on a per minute scale, but you can change the scale to per hour or per day. To customize this graph, see Customizing the Order Completion Rate Graph. |
Ordered Products | This pie chart displays the number of ordered products and the percentage it has against other products. |
Order Status | This table shows all the orders' current state. When you click on any of the orders, the corresponding Plan, Plan Item and Order Line grids are populated. |
Order Line Status | This table shows order-lines with its current state that are related to the order selected in the Order Status table. |
Plan Status | This table shows all plans with its current state that are related to the order selected in the Order Status table. |
Plan Item Status | This table shows all plan-items with its current state that are related to the order selected in the Order Status table. |
Process Component Competition Rate | After clicking any of the plans in the plan status table, this bar graph is populated for the process components that are completed. |
Stuck Plan Items Grid | This table shows all plan-items with a state as ERROR or ERROR_HANDLER. |
Long Running Orders | This table shows all orders in the system that exceeded a specified time. You can form multiple grids for this type with different specified times. To customize this table, see Customizing the Long Running Orders Grid. |
Customer and Location | This heat chart displays the density of customers in every country. To create your own custom heat chart on a country level, see Customizing the Customer and Location Heat Chart. |
Customizing Provided LDM Dashboard Reports
Customizing the Orders Inflow Rate Graph
You can change the order's inflow on a per minute (default), per hour, or per day scale.
- Click the edit button on the Orders Inflow Rate graph.
- Change the x-axis based on what time scale you want shown on the graph:
- Per Minute (default)
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToMinutes FROM SubmittedOrders GROUP BY roundOffTimestampToMinutes.
- Select the Visualization tab. From the Field drop-down menu, select roundOffTimestampToMinutes.
- Per Hour
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToHours FROM SubmittedOrders GROUP BY roundOffTimestampToHours.
- Select the Visualization tab. From the Field drop-down menu, select roundOffTimestampToHours.
- Per Day
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToDay FROM SubmittedOrders GROUP BY roundOffTimestampToDay.
- Select the Visualization tab. From the Field drop-down menu, select roundOffTimestampToDay.
- Per Minute (default)
- Update the Axis Name to Time.
- Click Save.
Customizing the Average Order Completion Rate Graph
- Click the edit button on the Average Order Completion Rate graph.
- Change the x-axis based on what time scale you want shown on the graph:
- Per Minute (default)
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToMinutes FROM CompletedOrders GROUP BY roundOffTimestampToMinutes.
- Select the Visualization tab.
- From the Field drop-down menu, select roundOffTimestampToMinutes.
- Per Hour
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToHours FROM CompletedOrders GROUP BY roundOffTimestampToHours.
- Select the Visualization tab.
- From the Field drop-down menu, select roundOffTimestampToHours.
- Per Day
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToDay FROM CompletedOrders GROUP BY roundOffTimestampToDay.
- Select the Visualization tab.
- From the Field drop-down menu, select roundOffTimestampToDay.
- Per Minute (default)
- Update the Axis Name to Time.
- Click Save.
Customizing the Order Completion Rate Graph
- Click the edit button on the Average Order Completion Rate graph.
- Change the x-axis based on what time scale you want shown on the graph:
- Per Minute (default)
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToMinutes FROM SubmittedAndCompletedOrders GROUP BY roundOffTimestampToMinutes.
- Select the Visualization tab.
- From the Field drop-down menu, select roundOffTimestampToMinutes.
- Per Hour
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToHours FROM SubmittedAndCompletedOrders GROUP BY roundOffTimestampToHours.
- Select the Visualization tab.
- From the Field drop-down menu, select roundOffTimestampToHours.
- Per Day
- From the Data tab, change the query to SELECT count_distinct(orderID) AS Orders, roundOffTimestampToDay FROM SubmittedAndCompletedOrders GROUP BY roundOffTimestampToDay .
- Select the Visualization tab.
- From the Field drop-down menu, select roundOffTimestampToDay.
- Per Minute (default)
- Update the Axis Name to Time.
- Click Save.
Customizing the Long Running Orders Grid
- Click the edit button on the Long Running Orders grid.
- Change the x-axis based on what time scale you want shown on the graph:
- Per Minute (default)
- From the Data tab, change the query to SELECT orderID, status, eventTimestamp, orderRef FROM OrderNotifications WHERE status != 'COMPLETE' WHEN eventTimestamp BETWEEN epoch() and now()-minutes(1) .
- Per Hour
- From the Data tab, change the query to SELECT orderID, status, eventTimestamp, orderRef FROM OrderNotifications WHERE status != 'COMPLETE' WHEN eventTimestamp BETWEEN epoch() and now()-hours(1).
- Per Day
- From the Data tab, change the query to SELECT orderID, status, eventTimestamp, orderRef FROM OrderNotifications WHERE status != 'COMPLETE' WHEN eventTimestamp BETWEEN epoch() and now() - days(1).
- Per Minute (default)
- Click Save.
Customizing the Customer and Location Heat Chart
- Click New Cart.
- Paste the following query in the "Type your LiveQL" section:
SELECT region, count(customerID) as customers from CustomerHeatMap WHERE region != "null" GROUP BY region
- Click the Visualization tab.
- Select Region Map.
- Select region.
- In the Region field, select the desired country.
- Name the cart as per your region.
- Click Save and close the edit mode.
Apart from the out of box reports, you can also create your own analytical reports based on the notification data TIBCO Fulfillment Order Management sends.
LDM Data Deletion
There are two ways for deleting data from the LDM tables: automatic and manual. Manual trimming is only for the tables that do not have the auto trimming mechanism.
Automatic Deletion
Periodic trimming of the LiveView reports's older data ensures that the LDM service does not run out of memory.
The automatic LDM reports data deletion is already set-up for deleting completed orders, but the default value can be overridden.
The following two parameters are used for deleting data:
- CLEAN_UP_COMPLETED_ORDERS_DAYS - This variable defines how old the completed orders should be when deleted from the reports. The unit of value is days, and the default is set to 1 day. So any order which is in COMPLETE status for more than 1 day is removed from the reports.
- COMPLETED_ORDERS_CLEAN_UP_FREQUENCY_SECONDS - This variable defines how frequent an older completed order should be deleted. The unit of value is seconds, and the default is set as 3600 seconds. So the completed orders deletion is triggered every 3600 seconds (1 hour).
If you want to override the default value for any of the above stated variables, use substitutions as one of the parameters passed to the epadmin command when installing the node.
Manual Deletion
For the tables that do not have the auto trimming mechanism, such as the Ordered Products pie chart, you have to use the lv-client delete command. For ad-hoc manual deletes, you can use the lv-client delete command. For more information, see the TIBCO Streambase LiveView Command Reference documentation on lv-client. The Ordered Products pie chart data can be cleaned up from the productID, orderLine, orderRefcolumns by running the following command:
lv-client -u lv://lvserver:<port> "delete from ProductPieChart where predicate"
Multi-Tenant Environment for LDM Dashboard
The LDM dashboard supports multi-tenancy through the TIBCO EMS message-selector property. You can have one node started for a single tenant. The following diagram shows one-to-one mapping between nodes and tenants based on TIBCO EMS message selector:
To use a multi-tenant LDM Dashboard, configure the message selector in TIBCO EMS before starting the node to run dashboard as described in the "Setting TIBCO EMS Configurations" topic.
Data Persistence for LiveView Table
Data persistence allows you to restore data even if the node goes down and gets removed. Data persistence for the LiveView table is enabled by default. Navigate to the node directory, the directory you have defined while installing the node as described in the "Deploying the LDM Dashboard" topic, and navigate to the engine directory: lv_tablespace/persisted_data. The LDM table-wise directories are created inside the persisted_data directory and contains the database files. It is highly recommended to periodically take a backup of the persisted_data directory, so that this directory can be restored whenever required.