working out with kurl! shayne koestler kinetic data

39
Working Out with KURL! Shayne Koestler Kinetic Data

Upload: laureen-hensley

Post on 27-Dec-2015

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Working Out with KURL! Shayne Koestler Kinetic Data

Working Out with KURL!

Shayne KoestlerKinetic Data

Page 2: Working Out with KURL! Shayne Koestler Kinetic Data

22

Questions Welcome

Page 3: Working Out with KURL! Shayne Koestler Kinetic Data

33

KURL

Page 4: Working Out with KURL! Shayne Koestler Kinetic Data

44

KURL

Kinetic Uniform Request Language

KURL is a domain-specific language (DSL) written in Ruby

DSL Example

=MIN(A2:A7)

DSL Definition

A language designed to solve a specific set of problems

KURL is designed to define service items in Kinetic Request

Page 5: Working Out with KURL! Shayne Koestler Kinetic Data

55

KURL Uses

Additional form of development

Text editing rather than point and click

One big save opposed to many small saves

Acts as an export format

Human readable

Easy to keep under version control

Page 6: Working Out with KURL! Shayne Koestler Kinetic Data

66

KURL Uses

Automate Service Item Development

KURL code is a serialized format for service items

Service items can be exported into the format

Data from external sources can be converted into this format

Page 7: Working Out with KURL! Shayne Koestler Kinetic Data

77

KURL DSL

Set of functions that model Kinetic Request service items

page – defines a page element

event – defines a javascript event

A few more

Functions are made available in specific contexts

question within page

choice within question

Page 8: Working Out with KURL! Shayne Koestler Kinetic Data

88

KURL DSL

KURL Guide

On Kinetic Community

Provides a complete list of functions available

Details all options for these functions

Details which functions are available in which contexts

Page 9: Working Out with KURL! Shayne Koestler Kinetic Data

99

KURL Files

kurl.jar

Builds service items from KURL code

Retrieves KURL code for service items

YAML config file

Often named config.yml

Configures connection to Remedy server

Can be generated automatically by kurl.jar

Page 10: Working Out with KURL! Shayne Koestler Kinetic Data

1010

KURL Files

Library files

Required to make API calls to Remedy

.dll (Windows) or .so (Linux)

KURL code files

Contain the KURL code of a service item

.rb file extension (Ruby)

Page 11: Working Out with KURL! Shayne Koestler Kinetic Data

1111

kurl.jar

Help

Displays usage details of the kurl.jar

Lists functionality provided by the kurl.jar

Page 12: Working Out with KURL! Shayne Koestler Kinetic Data

1212

kurl.jar

Version

Lists the version of the kurl.jar

New versions are released to accommodate new versions of Kinetic Request

The latest version is 2.1.1

Page 13: Working Out with KURL! Shayne Koestler Kinetic Data

1313

kurl.jar

Setup

Recommended method for configuration

Prompts for configuration values

Generates YAML configuration fileNamed config.yml In current directory

Page 14: Working Out with KURL! Shayne Koestler Kinetic Data

1414

kurl.jar

List Catalogs

Lists all catalogs in the Kinetic Request application

Page 15: Working Out with KURL! Shayne Koestler Kinetic Data

1515

kurl.jar

List Service Items

Requires a catalog name

Lists all service items in the given catalog

Page 16: Working Out with KURL! Shayne Koestler Kinetic Data

1616

kurl.jar

Retrieve Service Item

RequiresCatalog nameService item nameOutput directory

Generates the KURL code that defines the given service item

Saves KURL code to a Ruby file in the given directory

Page 17: Working Out with KURL! Shayne Koestler Kinetic Data

1717

Build Service Item

RequiresFile name

Builds service item in Kinetic Request from KURL definition

kurl.jar

Page 18: Working Out with KURL! Shayne Koestler Kinetic Data

1818

Retrieve Catalog

RequiresCatalog nameOutput directory

Builds KURL code for each service item in catalog

Builds KURL code for catalog itself

kurl.jar

Page 19: Working Out with KURL! Shayne Koestler Kinetic Data

1919

Build Catalog

RequiresDirectory containing KURL definitions

Builds catalog and service items in Kinetic Request fromKURL definitions

kurl.jar

Page 20: Working Out with KURL! Shayne Koestler Kinetic Data

2020

Problem

Service catalog under development

Standards are well defined

New requirements dailyAdditions to service itemsNew service items

Page 21: Working Out with KURL! Shayne Koestler Kinetic Data

2121

Solution

Automate development with KURL

Gather requirements in a spreadsheet

Use spreadsheet data to construct KURL code

Execute KURL code to build service items

Could run this for every new requirements document

Page 22: Working Out with KURL! Shayne Koestler Kinetic Data

2222

KURL Automation

General process

Create a service item that definesLook and feelDefaults for service item contents

Retrieve KURL code for the service item above

Divide KURL code into small, specific code templatesA piece of KURL code that defines part of the service item

Page 23: Working Out with KURL! Shayne Koestler Kinetic Data

2323

KURL Automation

Template Service Item

Page 24: Working Out with KURL! Shayne Koestler Kinetic Data

2424

KURL Automation

General process

Create an empty file to store KURL code

For each piece of input dataAppend appropriate code template to the KURL code

Build service items with resulting KURL code

Page 25: Working Out with KURL! Shayne Koestler Kinetic Data

2525

Header Footer Text Question Date Question List QuestionHeader Footer Text Question Date Question List Question

KURL Automation

Input Output (KURL code)

Header Footer Text Question List QuestionHeader Footer Text Question Date Question List QuestionDate Question

Page 26: Working Out with KURL! Shayne Koestler Kinetic Data

2626

KURL Automation

HTML Parsing

We haveForm on a websiteCatalog of services or products on a website

We wantGenerate service items from the HTML data above

Page 27: Working Out with KURL! Shayne Koestler Kinetic Data

2727

KURL Automation

HTML Parsing

SolutionRuby program that parses HTML as input and assembles

KURL codeExecute KURL code to build service items

Page 28: Working Out with KURL! Shayne Koestler Kinetic Data

2828

KURL Automation

Catalog Provisioning

We haveCatalog templateSuite of pre-defined service items to choose from

We wantService item that gathers requirements for a new catalogTask process to automatically build the new catalog

Page 29: Working Out with KURL! Shayne Koestler Kinetic Data

2929

Catalog Provisioning

Components

Catalog template

Available service items

Catalog provisioning service item

2 task handlersCreate catalogClone service item

Page 30: Working Out with KURL! Shayne Koestler Kinetic Data

3030

KURL Automation

Spreadsheet Parsing

We haveSpreadsheet with service item requirementsService item that defines standards

We wantGenerate service items defined in the spreadsheet

Page 31: Working Out with KURL! Shayne Koestler Kinetic Data

3131

Spreadsheet Parsing

Components

Spreadsheet with requirements (saved as CSV file)Adheres to a strict format

Script that parses CSV to generate KURL codeContains KURL code templates

Page 32: Working Out with KURL! Shayne Koestler Kinetic Data

3232

Spreadsheet Parsing

Components

Page 33: Working Out with KURL! Shayne Koestler Kinetic Data

3333

Spreadsheet Parsing

Page 34: Working Out with KURL! Shayne Koestler Kinetic Data

3434

KURL Automation

Service Item Request

We haveService item that defines standards

We wantService item to gather requirements for a new service itemTask process that builds the requested service item

Page 35: Working Out with KURL! Shayne Koestler Kinetic Data

3535

Service Item Request

Components

Service item that gathers necessary requirementsNameQuestions

Task handler that assembles and executes KURL codeContains the KURL code templates

Page 36: Working Out with KURL! Shayne Koestler Kinetic Data

3636

Service Item Request

Page 37: Working Out with KURL! Shayne Koestler Kinetic Data

3737

Service Item Request

Page 38: Working Out with KURL! Shayne Koestler Kinetic Data

3838

Questions?

Page 39: Working Out with KURL! Shayne Koestler Kinetic Data

3939

KURL Resources

Files and introduction

http://community.kineticdata.com/60_KURL/Documentation/02_Get_Started

KURL guide

http://community.kineticdata.com/60_KURL/Documentation/03_Guide

Help (support for KURL is handled through our support forums)

http://support.kineticdata.com/viewforum.php?id=11