Fulfillment insights tutorial - IBM/intelligence-suite-supply-chain-solutions GitHub Wiki
This page is intended to be a Lab tutorial which can be followed using the new SCIS dashboard and card builder to create and expand on a new business topic.
Business concept
SCIS comes with four dashboards in a default installation -- Overview, Supply, Inventory, and Shipments. Almost all of the content in the default installation has to do with inbound supply of materials or replenishment stock. Concepts of outbound order fulfillment are not well covered, so this lab will introduce some new KPI types for fulfillment and guide an administrator through the process of creating a new dashboard.
SCIS product documentation covers several fulfillment business concepts and a guide for how to implement them. We will start here in part 1 with building a dashboard with a list view of "Past Due Order Shipments":
Prerequisites
- Access to an SCIS tenant with sample data (LightTree recommended)
- You must be assigned to the Builder User access group
- (Optional) Insomnia or other API tool for advanced API changes to your solution
Step 1 - Copy an existing list view "Card"
It is often easier to open and modify an existing card, so let's use a copy of "Past due shipments", which is a list of inbound shipments. We will change the queries to represent outbound orders instead.
- Log into SCIS at https://www.supply-chain.ibm.com/
- Go to the Card builder page
- Go to Samples
- Find "Past Due Shipments"
- Click "Copy"
- Change title to "Past due order shipments"
- Change description to "Orders currently late to being shipped"
- Let's make this a full width widget that adjusts height to what is returned:
- Change "Width" to 4
- Next to "Height" click "Resize to content"
- Select the "Query" tab then "Edit" icon
- Click "Prettify"
Step 2 - Modify the query
Note - in the future the GraphiQL interface will be optional and replaced by a visual query editor. A preview of this editor can be found here. Running short on time? Just paste in this query which contains all changes listed below.
2.1 change these values everywhere
- change all instances of "Shipment" to "Order"
- change all instances of "shipment" to "order"
- change "INBOUND" to "OUTBOUND"
- change "committedTimeOfArrival" to "plannedShipDate"
- change "statusByDate" to "shipmentStatusByDate"
- change "DELIVERED" to "FULLY_SHIPPED"
- change "vendor" to "buyer"
- change "shipFromLocation" to "shipFromInstructionLocation"
- change the "first" value from 8 to 15
2.2 remove these attributes from the query
- estimatedTimeOfArrival
- actualTimeOfArrival
- requestedTimeOfArrival
2.3 add these attributes to the query
- shipmentStatusByDate
- createdDate
- requestedShipDate
- plannedShipDate
- totalValue
- orderValueCurrency
- lineCount
2.4 change query variables
- change all instances of "Shipment" to "Order"
- change all instances of "shipment" to "order"
Test the query by clicking the "play" button
2.5 change the transformation to the following
{
"errors": "{{#? this.errors}}",
"totalCount": "{{this.data.totalPastDueOrder.totalCount}}",
"pageInfo": "{{this.data.totalPastDueOrder.pageInfo}}",
"results":
{
"{{#each this.data.totalPastDueOrder.edges}}":
{
"id": "{{this.object.id}}",
"orderIdentifier": "{{this.object.orderIdentifier}}",
"customer": "{{ this.object.buyer }}",
"shipFromInstructionLocation": "{{ this.object.shipFromInstructionLocation }}",
"shipToLocation": "{{ this.object.shipToLocation }}",
"shipmentStatusByDate": "{{ this.object.shipmentStatusByDate }}",
"createdDate": "{{ this.object.createdDate }}",
"requestedShipDate": "{{ this.object.requestedShipDate }}",
"plannedShipDate": "{{ this.object.plannedShipDate }}",
"totalValue": "{{ this.object.totalValue }}",
"orderValueCurrency": "{{ this.object.orderValueCurrency }}",
"lineCount": "{{ this.object.lineCount }}",
"cursor": "{{this.cursor}}"
}
}
}
2.6 Click "Done"
Step 3 - Modify the table card columns
- Under "Columns" click "Configure".
- Remove any old "shipment" related columns
- Select the following column values:
orderIdentifier
customer.organizationIdentifier
requestedShipDate
plannedShipDate
shipmentStatusByDate
totalValue
orderValueCurrency
shipFromInstructionLocation.locationIdentifier
- Sort and rename columns for clean presentation
- Modify the "Template" value as needed for clean presentation
- date formats
- number formats
- For the "Order ID" column, make the template a "Link" with the following value. This will make the link clickable to a detail page:
- DEFAULT_ORDER_DETAIL_OUTBOUND_LAYOUT_TEMPLATE
When you are done, your column configuration should look something like this:
- On the Palette icon, let's make some final changes
- Add a Card title
- Turn off "Footer link" since we don't have a view-all page at this time
When you are done, your card preview should look like this:
Step 4 - Create a new dashboard
- Open dashboard builder page
- Click "New Dashboard"
- Set the title "Fulfillment-<YOUR_INITIALS>"
- Add a description
- Change the active flag from "Inactive" to "Active"
- Click "Create"
You will be taken to the dashboard builder page
- Find your new "Past due order shipment" card on the right side of the screen
- Click "+" to add the widget
- If desired, add and re-arrange other existing cards
- When complete, click "Save"
- Navigate back to the Dashboard tab to see your new dashboard!
Step 5 - Create work queues
- Navigate to the Work Queue builder
- Using the logic and field values from above, create a work queue for "Past due order shipment"
Step 6 - Create resolutions
- Navigate to the Resolution builder
- Create several "Best practice" resolutions. Use your imagination. Here are some ideas:
- Expedite order in manufacturing
- Schedule expedited shipping
- Notify customer regarding late orders
- Offer cancellation to customer
- Offer a discount code to customer
- Navigate to the Work Queue builder
- Attach resolutions to your work queue
Next steps
At this time (July 2022) only the Table card builder is available. More builders will be deployed every few weeks this year. For now if you would like to add additional content to your dashboard, here are some suggestions:
- Create a table for "Late order shipments" showing actual late shipments from the past (see business concepts above) using the card builder
- Modify a metric widget to capture outbound "Open orders" and "Incomplete orders" (ADVANCED - requires API implementation at this time)
- Add filters to your page (ADVANCED - requires API implementation at this time)
- Create a "View all" page and layout for your existing list views
- Create a metric widget for any of the above content (ADVANCED - requires API implementation at this time)
These and other topics can be covered in future Labs.