Executive Summary - Kinetic Community - Kinetic Data

coldwaterphewΔιακομιστές

17 Νοε 2013 (πριν από 3 χρόνια και 9 μήνες)

105 εμφανίσεις



Title


Chapter 1

O
VERVIEW

K
INETIC
S
URVEY

Kinetic Survey and Kinetic Request are comprehensive tools for creating and administering surveys,
requests, and forms of all types using BMC Remedy
Action Request System®.

You can generate requests quickly across large or small groups with questions specifically tailored your
customers.

K
INETIC
D
ATA AND
BMC

P
ARTNERSHIP

As a BMC/Remedy user, you know that Remedy delivers service management software so
lutions that
enable your organization to automate and manage internal and external service and support processes.
As a BMC Solutions Partner, Kinetic Data delivers Remedy system enhancements expanding Remedy
capabilities and processes that save you time wh
ile providing results faster and more efficiently.

K
INETIC
A
DMINISTRATOR
T
RAINING
G
UIDE

This manual extends the User and Manager Guides, and provides advanced techniques for using Kinetic
Survey and Kinetic Request.

R
ELATED
D
OCUMENTATION



Kinetic Request
User and Manager Manual



Kinetic Survey User and Manager Manual



Kinetic Survey & Kinetic Request Installation Manual



Kinetic Survey & Kinetic Request Integration Manual



G
OALS FOR THIS
C
LASS



Understand how Kinetic Survey and Kinetic Request integrate with
other Remedy forms



Go over installation issues



Application Architecture



Brief introduction to Task Handlers




Chapter 2

I
NTEGRATIONS

Having a direct link between a Remedy form and Kinetic Survey and Kinetic Request lets you automate
your business processes. Integra
ting forms provides that link.

I
NTEGRATION
G
UIDE

Included with your installation is an integration guide detailing how to integrate a form. The process is
the same for both Kinetic Survey and Kinetic Request.

A
DDING
F
IELDS AND
W
ORKFLOW


The first step in

integrating a form is adding the fields and workflow. If the integration field ids are
already in use you can use Remedy’s change ID utility to update them before copying fields.

If you know you are going to integrate multiple forms, it is easier to do t
hem all at once.

Be prepared to spend some time asking what fields need to be passed into the survey
/request

record as
attributes. It is possible to do this with multiple filters, but one filter is better for maintenance.

D
ATA
S
ETS

While you are adding t
he fields and workflow is a good time to think about any additional data sets.
Adding the new data sets now while you are adding the workflow will reduce the potential for errors and
can help eliminate confusion later.


A
CTIVITY
1:

I
NTEGRATE
R
EMEDY
F
ORMS

Integrate
the Sample Incident form on the training image into Kinetic Survey or Kinetic Request.

Use the instructions in the Integration Manual.

Complete both Filter and Active Link integrations.


Things to Think About

What happens when the data you need
for an integration is not on the form? Is it better to add the data
to the form, or to get the data during the integration process.


I
NTEGRATION
D
IAGRAMS

These are copies of the diagrams from the manual for your reference.


Figure 1: Event Integration



Figure 2: Active Link Integration


Time criteria met for Batch Integration
(KS_ACC_Schedule)
Check Survey Rules
(KS_SRV_IntegrationRuleInstance)
Does FormEvent
Qualify?
Application Form Pushes to Survey
Connector
(KS_SRV_IntegrationConnector)
END
No
Pass Rules?
Yes
Yes
Create Survey Instance
(KS_SRV_CustomerSurvey_base)
Uses Integration Qualification set up in the
Integration Manager
Custom workflow is created by user to
handle this push to their application form.
All records matching the criteria are
pushed to.
Connector Module is used to create Form
Rules which, once passed create a survey
instance. An IntegrationOperationIDi is
created to track any surveys created for
this event.
Push Trigger to Event Instance
(KS_SRV_IntegrationEventInstance)
Shared Worfklow is used to determine
whether there are any valid integrations
tied to this form.
Kinetic Scheduling handles escalation
process/time criteria
Push Trigger To Application Form
Attribute fields are pushed from
Originating Form to
KS_SRV_CustomerSurvey_base
Using the IntegrationOperationID created
in the first step, a custom filter pushes
your attributes to any surveys with that
OperationID. If no surveys passed the
rules, no Customer Survey records exist
and the attributes are not pushed.
If a message template for this integration
has been specified, Kinetic Survey will
send an email invite using the AR System
Email engine.

Figure 3: Batch Integration





Chapter 3

I
NSTALLATION

In
stallation of Kinetic Survey, Kinetic Request, and Kinetic Task

can be done with an installer, depending
on your environment. In this chapter we wil
l look at common installer issues with

I
NSTALLER
I
SSUES

With the latest version of Kinetic Survey
,

Kinetic Request

and Kinetic Task
, an installer is used to import
workflow, data, and the web server.
The installer uses the 7.6.04 API (unless you are using

version 6.3
of Remedy, then you must use the Remedy Admin tool).

Many customers decide to use the built in apache/tomcat installer for the web server setup of Kinetic
Survey, Kinetic Request and Kinetic Task. It is an excellent way to get up and running q
uickly in a
development environment. However, if your web server is on a different server than your

Remedy
application server you will have to copy the installer to that server. The web server portion of the installer
only runs on Windows
. If you have a di
fferent OS, you will need to install your own web server, and then
copy the web files (or use a WAR file).

Common installer issues include:



Problems with API files (jar and library files)



License Key
s


U
PGRADE
I
SSUES

The process of performing an upgrade is

done very different from an original install.

There is no installer,
so the changes must be done by hand. Def files and data are imported using the various Remedy tools.
Changes to the web server are done with copy/paste or applying a new WAR file.

Commo
n Upgrade Issues



Major Version Upgrades

can include upgrades to data



Web Server Changes


C
ONFIGURATION
I
TEMS

The configuration dialog controls many of the default and application values in Kinetic Survey and Kinetic
Request. The individual values are cove
red in the installation manual included with your installation files.

Here is a brief overview of a few the individual configuration tabs:

Categories

(Kinetic Survey only)


Provides the ability to add, modify or delete categories.

Configuration Items



Ho
lds web default, logging, path, context and licensing information. Most of
the values set here only need to be touched once, during the product install.

Web Messages



All of the default error and informational messages for customers.


Attribute Types



Attributes are application specific, and cover properties like Category for Kinetic
Request or Expiration Date for Kinetic Survey.

Style



The style tab holds all the default CSS values for templates or service items.

Pattern



The pattern matching val
ues for select answer types, including default values.


A
CTIVITY
2:

C
ONFIGURATION
I
TEMS

Look through the configuration items tab and find where your system will have different values.

Add a new Attribute.

Alter one of the web messages to reflect your org
anization.

Experiment with exporting a service item or template

Things to Think About

There are many items in the Configuration Manager that can have a universal impact across both Kinetic
Request and Kinetic Survey. How you manage access will be somethin
g to discuss.

Web messages are the item most often forgotten.





Chapter 4

A
PPLICATION
A
RCHITECTURE

There are two different ways to think about the design of Kinetic Survey and Kinetic Request. The first is
to look at how the individual elements interact that make up templates and service items. The second is
a view from the individual answers, and how

they relate to individual surveys and requests.

S
URVEY
T
EMPLATE
/S
ERVICE
I
TEM
V
IEW

Main forms with a brief description:

KS_SRV_SurveyTemplate


Details on the individual templates or service items

KS_SRV_ContentsElementHTML


Generated HTML code for the
pages in the individual templates or
service items

KS_SRV_SurveyQuestion


Question details

KS_SRV_SurveyQuestionChoice


Values for list choices

KS_SRV_Manager


Dialog form for Survey Author Console

KS_RQT_Manager


Dialog form for Service Catalog Consol
e

KS_SRV_ElementDialog


Question and other page element dialog for both templates and service items.

KS_RQT_Task


Holds information about tasks related to service items.



S
URVEY
/R
EQUEST
R
ESULTS
V
IEW

Major forms with a brief description:

KS_SRV_CustomerS
urvey_base


Instance of this form is generated for each survey/request. It holds all
the attributes and basic data for each survey/request.

KS_SRV_SurveyAnswer


Individual survey/request answers.

KS_SRV_SurveyResult


All the answer viewers, and instanc
e Ids for the individual answers.

KS_SRV_CustomerSurveyResults_join


Also known as “The Flattener”, this form has information from
the base record, the template, all the answer viewers and the attributes.

Two main reporting forms:

KS_SRV_CustomerQuestionA
nswerResults_join

KS_SRV_CustomerSurveyQuestionAnswerJoin


K
INETIC
T
ASK
F
ORMS

Major Forms of the Task System


KS_TSK_Instance


One record created for each node on your task tree, per request submission.

Holds
both the return and deferred variables.

KS_TSK_Trigger


Records created in this form can both start a task tree process

and restart a task
process from a deferred node/instance.

KS_TSK_Trigger_Lock_join


Used to stop multiple Task Engines from processing the same tree instance.

KS_TSK_Tree


H
olds the Task Tree which is represented as an XML string. It is related

to a template by
the Association ID.

KS_TSK_Def


Holds a Task Handler and relates to its

authentication information. There is an attachment
field that holds the imported handler.

KS_T
SK_Exception_Handler


Every error/exception thrown by the system is recorded in this form. They
are also viewable from the Task Management console.



A
CTIVITY
4:

R
EVIEW
F
ORMS

Look through the forms listed here and find how they relate to the

other forms i
n Kinetic Request, Kinetic
Survey,
and
Kinetic Task
. What types of conventions and names do we use? How can this information
benefit you as a Remedy developer?


Things to Think About

If you need to add workflow to “hook” into the Kinetic System, the flat
tener
(
KS_SRV_CustSurvey
Results_join) form is the best place to start.

Most of the information about Kinetic Task can be accessed through the Task Consoles. It can be easier
to see the relationships from there.




Chapter 5

T
ASK
H
ANDLER
S
TRUCTURE

D
IRECTORY
H
IERARCHY

kineticTask
\
tasks
\



taskHandlerName
\

o

handler

o

process

o

test

H
ANDLER
C
ODE
(
HANDLER
/
INIT
.
RB
)

Standalone specific piece of code designed to be simply configured to perform a business task. Tasks
take parameters, return results and can throw exceptions in the ev
ent of an error.

Handler Methods

initialize



Initialize the handler
,
pre
-
load form definitions

and load parameter/parameter value hashes

execute



This is a required method that is automatically called by the Kinetic Task

Engine



Returns

a
n Xml formatted
String representing the return variable results

preinitialize_on_first_load



Preinitialize expensive operations that are not task node dependent

escape



used to escape results values (returned in execute) that would cause the XML to be invalid

get_info_value



for retrieving

info.xml
values from the input document

H
ANDLER
I
NPUT
(
PROCESS
/
NODE
.
XML
)



The Task Engine is responsible for gathering information, building and passing an “Input
Document” to the Task Handler upon execution. This node.xml file defines the

content and
locations of the data elements to be gathered by the Task Engine.



Establishes Task Name and contains the description which is made visible on the Task Builder.



Defines the parameters for display on the node when configuring in the Task Builder
.



Defines h
ash of parameter names to parameter values

which can be utilized by the Task Handler.



Defines hash of info values. These are the static values configured as part of the info.xml file.



Defines hash of field values and field name mapping values t
o a Remedy form or external table
structure, also utilized by the Task Handler.

H
ANDLER
C
ONFIGURATION
(
PROCESS
/
INFO
.
XML
)



Defines static parameter and parameter values defined for the Task Handler process.



Values are configured using the TaskManagement

console as part of the Task Handler import
process.

H
ANDLER
C
ONFIGURATION
(
TEST
/)



Defines static parameter and parameter values defined for the Task Handler process.



Values are configured using the TaskManagement console as part of the Task Handler import

process.





Chapter 6

A
PPENDIX
A:

C
USTOM
J
AVASCRIPT

These javascript functions are built into Kinetic Survey & Request, and are available for your use.
Examples of their use can be seen in the service items in the sample Sithco IT catalog.


KD.
U
TILS
.A
CTIONS

These functions are detailed in the file
kd
-
actions.js

file in the following directory on your webserver:

<webserver>
\
webapps
\
kinetic
\
resources
\
js

You can look through this file to see how the functions work. The following list contains the most popular
a
nd useful functions you may use when developing your own templates or service items.

Each one of the functions is prefaced by “
KD.utils.Action


For example, the .setQuestionValuefunction is written out as
KD.utils.Action
.setQuestionValue(label, value)

.set
QuestionValue(label_id, value)



label_id is the Menu Label of the question (can use the Instance ID of the questions)



value is what the answer is set to

.getQuestionInput(label_id)



label_id is the menu label of the question (can use the Instance ID of the q
uestions)

.setReadOnly(label_id)



label_id is the menu label of the question (can use the Instance ID of the questions)

.setReadWrite(label_id)



label_id is the menu label of the question (can use the Instance ID of the questions)

.makeQuestionRequired(label
_id)



label_id is the menu label of the question (can use the Instance ID of the questions)

.makeQuestionOptional(label_id)



label_id is the menu label of the question (can use the Instance ID of the questions)

.setDateFields(qstnId, datearr)



qstnId is the i
nstance ID of the question (Advanced tab)



datearr is an array with the following parameters [YYYY, MM, DD]

Example of the .setQuestionValue function

KD.Utils.Actions.setQuestionValue(customerFirstName, “Joe”)

Joe will be set as the value (answer) of the qu
estion with the Menu Label ‘customerFirstName’. If “Joe”
was stored in a variable, that can be substituted in the function.



J
AVASCRIPT
D
ATE
C
OMPARE EXAMPLE

The following javascript is meant to compare dates. The first example compares an entered date to the
current date, and the second compares one date with another. This is an example of an event that is not
provided “out of the box” with Kinetic Survey/Re
quest, but may be useful to implement. Comments in
the code show the purpose for the different parts of javascript used. This code would be called on a
beforeSubmit event on the Page where the date questions are located. The action would be custom, and
you will need to insert the question instance ID for the specific date questions as the parameters of the
function. The functions are normally placed in the CustomHeaderContent field on the advanced tab of
the specific template/service item.



C
ODE
E
XAMPL
E


<script>

// This function is called in the beforeSubmit event on the page the holds the related date question


function dateCheck(questionID){

// The questionID variable is for the date question to check

// It is on the advanced tab of the question


//

nowDate holds the current date

var nowDate = new Date();


// The array builds up the values needed by the setDateFileds function if it is called

var nowDateArray = new Array();

nowDateArray[0] = nowDate.getFullYear();

nowDateArray[1] = nowDate.getMonth()
+ 1;

nowDateArray[2] = nowDate.getDate();


// document.getElementByID gets the value of the hidden date question from the template

var surveyDate=document.getElementById("SRVQSTN_" + questionID).value;


// The Hidden date field stores the date a s acharact
er string.

// The following steps get the individual values, turn them into integers,

// and make them into a readable date format


surveyDateString = surveyDate.split('
-
');



var surveyDateInt = new Array();



surveyDateInt[0] = parseInt(
surveyDateString[0],10);


surveyDateInt[1] = parseInt(surveyDateString[1],10);


surveyDateInt[2] = parseInt(surveyDateString[2],10);



var surveyDateFinal = new Date();



surveyDateFinal.setFullYear(surveyDateInt[0], (surveyDateInt[1]
-

1),

surveyDateInt[2]);



// FInally, the two dates are compared


if (nowDate>surveyDateFinal)


{


// Personalized message to the user that date is not acceptable


alert('Selected Start Date must be set to after the current date');



KD.utils.Action.setDateFields(questionID, nowDateArray);


return false; //A return value of false will stop the submit process


}


}

</script>


Compare Date Check Code:


<script>


// this function is called in the beforeSubmit event o
n the page that holds the date questions.


function dateCheck(questionIDStart, questionIDEnd){

// questionIDStart & questionIDEnd are the instanceIDs of the two date questions from the template


//First I set the current date so it can be put back into the

date fields if the error comes up

var nowDate = new Date();


var nowDateArray = new Array();

nowDateArray[0] = nowDate.getFullYear();

nowDateArray[1] = nowDate.getMonth() + 1;

nowDateArray[2] = nowDate.getDate();


// The document.getelementById function s
impley retrieves the value from the hidden date field

// from the date questions on the template

var surveyStartDate=document.getElementById("SRVQSTN_" + questionIDStart).value;

var surveyEndDate=document.getElementById("SRVQSTN_" + questionIDEnd).value;


// The hidden date field stores the date as a string, so the following steps grab the individual

// values convert them to integers and make a date out of them.

// This is repeated for both Start and End dates.


surveyStartDateString = surveyStartDate.
split('
-
');



var surveyStartDateInt = new Array();



surveyStartDateInt[0] = parseInt(surveyStartDateString[0],10);


surveyStartDateInt[1] = parseInt(surveyStartDateString[1],10);


surveyStartDateInt[2] = parseInt(surveyStartDateString[2],
10);



var surveyStartDateFinal = new Date();



surveyStartDateFinal.setFullYear(surveyStartDateInt[0], (surveyStartDateInt[1]
-

1),
surveyStartDateInt[2]);



surveyEndDateString = surveyEndDate.split('
-
');



var surveyEndDateInt

= new Array();



surveyEndDateInt[0] = parseInt(surveyEndDateString[0],10);


surveyEndDateInt[1] = parseInt(surveyEndDateString[1],10);


surveyEndDateInt[2] = parseInt(surveyEndDateString[2],10);



var surveyEndDateFinal = new Date();




surveyEndDateFinal.setFullYear(surveyEndDateInt[0], (surveyEndDateInt[1]
-

1),
surveyEndDateInt[2]);



// Finally, the dates are compared


if (surveyStartDateFinal>surveyEndDateFinal)


{


// A message warns the user of the error and the
two fields are set back to the current date
(default)



alert('Selected End Date must be set to after the Start Date');


KD.utils.Action.setDateFields(questionIDStart, nowDateArray);


KD.utils.Action.setDateFields(questionIDEnd, n
owDateArray);


return false; //the return value of fasle stops continued processing of the submit action


}


}


</script>