working out with kurl!
DESCRIPTION
Working Out with KURL!. Shayne Koestler Kinetic Data. Questions Welcome. KURL. 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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/1.jpg)
Working Out with KURL!
Shayne KoestlerKinetic Data
![Page 2: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/2.jpg)
22
Questions Welcome
![Page 3: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/3.jpg)
33
KURL
![Page 4: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/4.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/5.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/6.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/7.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/8.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/9.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/10.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/11.jpg)
1111
kurl.jar
Help
Displays usage details of the kurl.jar
Lists functionality provided by the kurl.jar
![Page 12: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/12.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/13.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/14.jpg)
1414
kurl.jar
List Catalogs
Lists all catalogs in the Kinetic Request application
![Page 15: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/15.jpg)
1515
kurl.jar
List Service Items
Requires a catalog name
Lists all service items in the given catalog
![Page 16: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/16.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/17.jpg)
1717
Build Service Item
RequiresFile name
Builds service item in Kinetic Request from KURL definition
kurl.jar
![Page 18: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/18.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/19.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/20.jpg)
2020
Problem
Service catalog under development
Standards are well defined
New requirements dailyAdditions to service itemsNew service items
![Page 21: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/21.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/22.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/23.jpg)
2323
KURL Automation
Template Service Item
![Page 24: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/24.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/25.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/26.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/27.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/28.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/29.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/30.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/31.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/32.jpg)
3232
Spreadsheet Parsing
Components
![Page 33: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/33.jpg)
3333
Spreadsheet Parsing
![Page 34: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/34.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/35.jpg)
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!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/36.jpg)
3636
Service Item Request
![Page 37: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/37.jpg)
3737
Service Item Request
![Page 38: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/38.jpg)
3838
Questions?
![Page 39: Working Out with KURL!](https://reader035.vdocuments.mx/reader035/viewer/2022062217/5681502e550346895dbe2384/html5/thumbnails/39.jpg)
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