Skip to main content
Kinetic Community

The Fulfillment KAPP Configuration File

The fulfillment KAPP is a Kinetic Application meant to help fill fulfillment needs. Sometimes companies have a need for a simple fulfillment record to support their request (and perhaps incident) workflows; the fulfillment KAPP helps fill that need with a configurable, mold-able Kinetic application. The Fulfillment KAPP configuration file controls several components of the application: the details of the queries that populate the different tabs of the fulfillment console, the columns that display on the fulfillment console, the statuses that are displayed to the user in the work orders, which service item exposes the bridges, and what the URL for the fulfillment console is (so it can be reliably referenced in the code).

The Configuration File

The configuration file can be found within the fulfillment package at config\config.jspf

Fulfillment URL

You should change the part after the name= to match what you have entered in the Advanced Tab in the Display Name For URL field for your Fulfillment Console Service Item.

bundle.setProperty("fulfillmentUrl", bundle.applicationPath() + "DisplayPage?name=Fulfillment_Dev_Console");

Review Work Order Page

Work orders have a few different requirements for review, and there is a specific page built in the package to handle this.

bundle.setProperty("reviewWorkOrderPage", "themes/air_fulfillment_development/packages/fulfillment/reviewWorkorder");

Review Frame

Work Orders display the service items within a frame for review. The page used to display this is configurable, and the tag within this page that indicates the height of the page is also necessary.

    bundle.setProperty("reviewServiceItemFrame", "themes/air_fulfillment_development/packages/base/reviewFrame.jsp");
    bundle.setProperty("reviewServiceItemFrameSizeTag", "#reviewContent");

Final Logout URL

When installing Fulfillment, the KAPP needs to put a fulfillment step between when a user clicks the logout button and any logout actions that the theme already had in place. This means, once fulfillment has done it's part, it needs to finish the logout process, this property is used to tell fulfillment how to do that.

bundle.setProperty("finalLogoutUrl", "KSAuthenticationServlet?Logout=true");

Fulfillment Console Queries

The following section of code defines the queries for the different tabs/sections of the fulfillment console. Nothing needs to be done to this section of the configuration file. If you were to wish to change what is meant by any of these definitions, however, this is where it would be done.

    java.util.Map<String,String> fulfillmentGroups = new java.util.LinkedHashMap();
    if (context != null) {
        fulfillmentGroups.put("My Work Orders", "'Source System'=\"Kinetic Request\" AND 'Catalog'=\""+bundle.getProperty("catalogName")+"\" AND 'Status'<=\"Pending\" AND 'AssignedIndividualID'=\""+context.getUserName()+"\"");
        fulfillmentGroups.put("Open Work Orders", "'Source System'=\"Kinetic Request\" AND 'Catalog'=\""+bundle.getProperty("catalogName")+"\" AND 'Status'<\"Cancelled\"");
        fulfillmentGroups.put("Unassigned Work Orders", "'Source System'=\"Kinetic Request\" AND 'Catalog'=\""+bundle.getProperty("catalogName")+"\" AND ('AssignedIndividualID'=$NULL$ OR 'AssignedIndividualID'=\"\")" );
        fulfillmentGroups.put("Search", "'Source System'=\"Kinetic Request\" AND 'Catalog'=\""+bundle.getProperty("catalogName")+"\"");
    }

Bridge Container

When installing the Fulfillment KAPP, there is a Service Item imported that exposes bridges for use by the application. When configuring the application, you must take the Service Item Instance ID from the Advanced tab of that Service Item and place it in this line in the configuration file.

bundle.setProperty("bridgeContainerId","KS3cb8f26b156644dce76230da85e45aa5c");

Status Menu Values

The statuses visible to the user in the work order are configurable, but the statuses in the system are set. Thus, the desired visible statuses must be mapped to the existing system statuses. This is done in the configuration file. A system status can be used more than once, as with the Pending value below. 

// Status Menu Value Configuration (<text>:<value>)
    bundle.setProperty("fulfillmentAssignmentStatuses", "{\"New\":\"New\",\"Assigned\":\"Assigned\",\"In Progress\":\"In Progress\",\"Pending Customer Response\":\"Pending\",\"Pending Internal Action\":\"Pending\",\"Cancelled\":\"Cancelled\",\"Completed\":\"Closed\"}");

Fulfillment Console Columns

The columns displayed on the Fulfillment Console are controllable. No change to this section is necessary. Note that the format for the columns is "Field Name" : "Visible Name", and the Field Name must be accurate to the bridge being used to retrieve the data. Also note that if data used in functionality (eg ID) is removed, the functionality may cease to work. Note that the format for the Assignee Full name column is different: "assignedFullName": { "columnLabel": "Assigned To", "sortable": false }. This is because this data is built up client side and is not sortable (since paging and sorting is happening server side). You can use assignee last and first name (Assigned Individual Last Name and Assigned To fields) if you want the assignee information sortable. You can also use this format to make any of the other columns not sortable if desired.

//Set Fulfillment Console Display Fields
    bundle.setProperty("myFulfillmentColumnDisplay", "{\"Request\": \"Request\", \"Work Order Name\": \"Work Order\", \"Requested For\": \"Requested For\", \"Assigned Group\": \"Assigned Group\",  \"assignedFullName\": { \"columnLabel\": \"Assigned To\", \"sortable\": false }, \"Assignment Status\": \"Status\", \"Priority\":\"Priority\",\"Due Date\":\"Due\", \"Originating Request Id\": \"Id\"}");
    bundle.setProperty("openFulfillmentColumnDisplay", "{\"Request\": \"Request\", \"Work Order Name\": \"Work Order\", \"Requested For\": \"Requested For\", \"Assigned Group\": \"Assigned Group\",  \"assignedFullName\": { \"columnLabel\": \"Assigned To\", \"sortable\": false }, \"Assignment Status\": \"Status\", \"Priority\":\"Priority\",\"Due Date\":\"Due\", \"Originating Request Id\": \"Id\"}");
    bundle.setProperty("unassignedFulfillmentColumnDisplay", "{\"Request\": \"Request\", \"Work Order Name\": \"Work Order\", \"Requested For\": \"Requested For\", \"Assigned Group\": \"Assigned Group\",  \"assignedFullName\": { \"columnLabel\": \"Assigned To\", \"sortable\": false }, \"Assignment Status\": \"Status\", \"Priority\":\"Priority\",\"Due Date\":\"Due\", \"Originating Request Id\": \"Id\"}");
    bundle.setProperty("searchFulfillmentColumnDisplay", "{\"Request\": \"Request\", \"Work Order Name\": \"Work Order\", \"Requested For\": \"Requested For\", \"Assigned Group\": \"Assigned Group\",  \"assignedFullName\": { \"columnLabel\": \"Assigned To\", \"sortable\": false }, \"Assignment Status\": \"Status\", \"Priority\":\"Priority\",\"Due Date\":\"Due\", \"Originating Request Id\": \"Id\"}");

Fulfillment Console Row Display

The number of rows displayed per page by default, and the options for this shown to the user (called entry options)  are configurable as well. The rows per page should be a number, but the entry options should be a comma delimited list of numbers. Note that the rows per page shown by default must be present in the entry options for the table to function properly.

    //Set Values for Fulfillment Table display
    bundle.setProperty("fulfillmentTableRowsPerPage", "15");
    bundle.setProperty("fulfillmentTableEntryOptions", "15,30,60,120,240");

 

Related