Skip to main content
Kinetic Community

The Fulfillment KAPP Installation Guide

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 has two primary components, the fulfillment console and the work order. The work orders are the individual items assigned; the fulfillment console is the listing view(s) of the work orders. This Administration guide goes over how to install and configuration this Kinetic Application for use

The Fulfillment KAPP Installation

Prerequisites:

  • Kinetic Request 5.X 
  • Kinetic Task 3.1.X
  • ARS Bridge 

Installing the Fulfillment KAPP involves the following steps:

  1. Installing the web files
  2. Installing the Remedy Forms
  3. Installing the Bridges
  4. Install Work Order Handlers
  5. Import Service Items
  6. Add New Attribute
  7. Add Source Type
  8. Import Tree
  9. Update theme items (BridgeBase,jspf, models, bundleInitialization.jspf) for older bundles
  10. Update kd_review.css
  11. Update common\config\config.jspf
  12. Review/Update the configuration file

NOTE: Nearly all steps of this installation refer to a private GitHub package. For access to this package, please contact your Kinetic Sales person.

Web Files

Place the fulfillment folder from this package into the packages folder of the existing bundle.

Place ajaxServiceItem.js from the package into your bundle's core/resources/js directory if it is not already there. If it is already there, you may need to verify certain functionality/code/version. In older bundles, you may need to create this structure under the core directory.

Remedy Form Definitions

Import the Remedy form definitions from this package, appropriate for your Kinetic Request Version. This will be done using the tools provided by BMC to perform this task. With current versions of BMC Remedy, this is called Developer Studio.

Bridges

If using BMC ITSM Support Groups, import the bridges marked ITSM (FulfillmentbridgesITSM) in the bridges folder for this package.

If using the Assignment KAPP, import the bridges marked Assignment KAPP (FulfillmentBridgesAssignmentKAPP) in the bridges folder for this package.

Bridges are imported using the KURL application. The command to import the bridges would look something like this, but see the KURL command information for details, different versions may be different:

C:\Users\me\Documents\kurl>java -jar kurl.jar -action=build_bridges -config=config.yml -file="C:\Users\me\Documents\Fulfillment\ITSM_Fulfillment_Organizations.rb"

Once imported, you'll need to open the Bridge Manager and update the Model Mappings to reference the Bridge Name for the ARS Server connection in place on your system. You will want to update:

  • Fulfillment Base
  • Fulfillment Companies
  • Fulfillment Group Members
  • Fulfillment Group Members Assoc
  • Fulfillment Groups
  • Fulfillment Organizations
  • Fulfillment People
  • Fulfillment Work Info
  • Fulfillment Work Order

Work Order Handlers

Import work order handlers for create, retrieve and update of the work order. They are available in the Handlers folder of the package.

Instructions for importing task handlers for task 3.1 are here. Instructions for different versions may be different.

These are the handlers essential to the functionality of the KAPP; others will undoubtedly be needed to accomplish all the desired functionality of your request and work order flows. The work order fulfillment update tree sample tree, for example, includes a reference to an email handler. What email handler you use there (or anywhere) or what other handlers you decide to use will all be dependent on system requirements and design decisions. There are many task handlers available here.

Service Items

Import the items in the Service Items folder of the package. Be sure to make the following changes to these items so they will work for your desired catalog: 

  • Move the items into the desired catalog
  • Verify and modify (if necessary) the “Web Server URL”
  • Verify and modify (if necessary) the "Display Page" 
  • Change the “Auth Template Name” on the “Audit” Tab

​Note that one work order Template provided is the simple case, and one is a more complex case where there may be additional questions a fulfiller may need to fill in and, if there are many or it may take time to fill in, save before the work order is complete.

Add New Attribute

Set up a new attribute to be used to relate the Fulfillment Update tree to the work order. To so this, click the Configuration link from the Service Catalog console.

 AddAttr1.png

Then click the add Attribute tab and click New.

NewAttr2.png

Then add a "Fulfillment Update" attribute.

AddAttr3.png

Add A Source Type to Task Server

Add “Work Order” Source type to the Task server. The following image shows how this might look for Task 3, this will likely looks different in future versions. Also, you will need to make sure the API Access Policy in place is appropriate for your system.

WorkOrderSourceRoot.pngImport a Fulfillment Update Tree

Configure/Import a “Fulfillment Update” tree to the Work Order Service item from the Trees folder of the package. Note that you'll need the tree appropriate to your version of Task and neither tree does anything without additional work. These are just example structures. Both examples reference subtrees/routines you'll need to build. This is because these features will depend on system dependent items that will vary too much from implementation to implementation for us to provide. 

Trees are imported in the Tree section of the Task Administration Console.

trees.png

ImportTree.png

Update theme items (BridgeBase,jspf, models, bundleInitialization.jspf) for older bundles

In older bundles (newer bundles may have this already) you will need to go into core/framework/models/BridgeBase.jspf and add the following code:

         /*
         * PATCHED to fix checking for null
         *
         * Helper method for determining whether or not the resulting record
         * from a retrieve call is null.  Note that they use the getRecord
         * method defined below because we want to ensure that the futureRecord
         * is evaluated if necessary.  Also note that since we are evaluating the
         * futureRecord, these methods will block and wait for asynchronous calls
         * to return if necessary.
         */
        public boolean isNull() {
            return !getRecord().exists();
        }

Also, you may need to replace the models in the core/framework/models for kineticRequest and kineticTask for your bundle with newer versions. If you have a model for TaskServer in the kineticRequest directory and Run in the kineticTask directory, no action is likely needed. Otherwise, you'll want to take the models provided in the core folder in the repository and replace what you have for models and helpers. If you need to do this, you will also need to update core/framework/includes/bundleInitalization to *at least* contain this data.

<%-- Include any helper files. --%>
<%@include file="../helpers/DateHelper.jspf" %>
<%@include file="../helpers/Encoder.jspf" %>

<%-- Include any model files. --%>
<%@include file="../models/ArsBase.jspf" %>
<%@include file="../models/BridgeBase.jspf" %>
<%@include file="../models/kineticRequest/Catalog.jspf" %>
<%@include file="../models/kineticRequest/CatalogAttribute.jspf" %>
<%@include file="../models/kineticRequest/Category.jspf" %>
<%@include file="../models/kineticRequest/Submission.jspf" %>
<%@include file="../models/kineticRequest/TaskServer.jspf" %>
<%@include file="../models/kineticRequest/Template.jspf" %>
<%@include file="../models/kineticRequest/TemplateAttribute.jspf" %>
<%@include file="../models/kineticTask/Run.jspf" %>
<%@include file="../models/kineticTask/Task.jspf" %>
<%@include file="../models/kineticTask/TaskMessage.jspf" %>

Note that your file will contain more helpers than are listed here, these are just the new ones you will be adding or updating as part of this modification. Do not remove any references you have already in the initialization or you will break something in your theme.

Update kd_review.css

Update in webapps/kinetic/resources/css/kd_review.css (outside the theme folder)

.templateButtonLayer {
    display: none !important;
}

to

#reviewContent .templateButtonLayer {
    display: none !important;
}

In the current version as of the writing of this article, this is on line 25 of the file. 

It is highly recommended, though dependent on your theme (it might not be required), that you add #reviewContent before EACH class in the review.css file. This will prevent the review styles from affecting any custom questions you add to the individual work orders.

WARNING: Until this RFE is implemented in the base product, this change will be overwritten on upgrade and will need to be redone at those time.

Update common\config\config.jspf

Update the logoutUrl bundle property from it's current setting (after backing up this information for use in the next step) to the fulfillment logout function:

bundle.setProperty("logoutUrl",bundle.applicationPath() + "DisplayPage?name=Fulfillment_Logout");

Review/Update the configuration file

Review and update the Fulfillment configuration file, being sure to update the finalLogoutUrl property with the value you've saved from the previous step in addition to any other changes desired/required by your installation per this documentation.

The Assignment KAPP Installation

Prerequisites:

  • Kinetic Request 5.1.X
  • ARS Bridge

Installing the Fulfillment KAPP involves the following steps:

  1. Installing the web files
  2. Installing the Remedy Forms
  3. Installing the Bridges

Web Files

Place the assignment package into the packages folder of the existing bundle.

Remedy Form Definitions

Import the Remedy form definitions. This will be done using the tools provided by BMC to perform this task. With current versions of BMC Remedy, this is called Developer Studio.

Bridges

For the Assignment KAPP, import these bridges. Many of these bridges are duplicates if you are using the Fulfillment KAPP as well; messages that bridges already exist are fine and can be ignored.

Bridges are imported using the KURL application. The command to import the bridges would look something like this, but see the KURL command information for details, different versions may be different:

C:\Users\me\Documents\kurl>java -jar kurl.jar -action=build_bridges -config=config.yml -file="C:\Users\me\Documents\Fulfillment\ITSM_Fulfillment_Organizations.rb"

Once imported, you'll need to open the Bridge Manager and update the Model Mappings to reference the Bridge Name for the ARS Server connection in place on your system. You will want to update:

  • Fulfillment Base
  • Fulfillment Companies
  • Fulfillment Group Members
  • Fulfillment Groups
  • Fulfillment Organizations
  • Fulfillment People
  • Fulfillment Work Info
  • Fulfillment Work Order
  • KS Work Info