Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.
-
Upload
augustine-barber -
Category
Documents
-
view
220 -
download
0
Transcript of Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.
![Page 1: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/1.jpg)
Native JavaScript in Hyperion Intelligence
Unleashing the Power of Object-Oriented Programming
![Page 2: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/2.jpg)
What is JavaScript?
Created in 1995 by Brendan Eich of Netscape as “LiveScript”
Interpreted, object-oriented/procedural programming language
Extensively used in web pages in conjunction with HTML
Event-driven, case-sensitive, ignores extra spaces
![Page 3: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/3.jpg)
How Does Hyperion Intelligence Use JavaScript?
Introduced Netscape v1.4 JavaScript interpreter in v6.0
Supports all standard JavaScript commands Used in dashboards, computed items (except
in query sections), calculated report fields and document scripts
Proprietary object model
![Page 4: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/4.jpg)
Proprietary Object Model
Web object model uses objects like window, document, and location
Hyperion object model uses objects like Application, ActiveDocument and ActiveSection
Properties and methods will vary Core objects such as String, Number and Date
will be unchanged
![Page 5: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/5.jpg)
What About “_____”?
We will not cover anything proprietary to Hyperion Intelligence
We will not cover the basics (syntax, conditional statements, loops, etc.)
We will not cover redundancies (for example, the concat() method of a string object)
We will not cover advanced topics that would require a separate presentation altogether (for example, regular expressions)
We will cover everything else!
![Page 6: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/6.jpg)
Object-Oriented Programming
Objects, sub-objects and object collections Methods –
– Actions performed on or by an object– Called with parenthesis at the end to allow for the
passing of parameters
Properties –– Descriptive traits of objects– Sometimes read-only
![Page 7: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/7.jpg)
Other JavaScript Terms
Functions: parameters are passed in parenthesis returning a result
Statements: cause an action or series of actions
Operators: Used for mathematical calculations, value comparisons and shortcuts
Constants: Built-in variables (Infinity, NaN, null and undefined)
![Page 8: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/8.jpg)
Functions
eval() – evaluates a string of code and (optionally) returns a result
eval(“Alert(1)”) //returns no value
var x = eval(“10 * 10”) //returns a value of 100
![Page 9: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/9.jpg)
Functions (cont.)
isFinite() – returns true if the number is neither positive nor negative infinity
var x = isFinite(10) //returns true
var x = isFinite(Infinity) //returns false
![Page 10: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/10.jpg)
Functions (cont.)
isNaN() – returns true if the parameter is not or cannot become a number
var x = isNaN(10) //returns false
var x = isNaN(“Adam12”) //returns true
var x = isNaN(“1000”) //returns false
![Page 11: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/11.jpg)
Functions (cont.)
Number() – converts a non-numeric value to a numeric value
var x = Number(“10”) //returns the numeric value 10
String() – converts any value to its string representation
var x = String(10) //returns the string value “10”
![Page 12: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/12.jpg)
Statements
break – breaks a loop or conditional statement // - comments out a line of code /* - comments out several lines of code (closed
with */) continue – opposite of break do{} while() – executes a loop at least once for(){} – executes a loop
![Page 13: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/13.jpg)
Statements (cont.)
function(){} – declares a local function if(){} else{} – executes a condition return – returns a value from a function var – declares a local variable while(){} – executes a loop with(){} – declares top level object
with(ActiveDocument.Sections[“Query”]){ Name = “MyQuery”}
![Page 14: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/14.jpg)
Statements (cont.)
switch(){} – executes a conditional statement with multiple conditions possible
switch(x){ case “A” : var y = 1 break case “B” : var y = 2 break default : var y = 3}
![Page 15: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/15.jpg)
Statements (cont.)
try{} catch(){} – attempts to execute a statement in the try{} and executes the catch(){} if an error occurs
throw – passes a value to the catch(){}
![Page 16: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/16.jpg)
Statements (cont.)
try{
if(x == 1){throw "Error 1"}
else if(x == 2){throw "Error 2"}
}
catch(er){
if(er == "Error 1"){Alert(“Contact SysAdmin")}
if(er == "Error 2"){Alert("Please Reload the page")}
}
![Page 17: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/17.jpg)
Operators
Mathematical+ Add/Concatenate
++ Increment
+= Add/Append
- Subtract
-- Decrement
-= Subtract/Remove
/ Divide
* Multiply
% Modulus
Comparison== Equal
!= Not Equal
> Greater
>= Greater or Equal
< Less
<= Less or Equal
Assignment= Assign
![Page 18: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/18.jpg)
Operators (cont.)
Backslash Escaped\’ Quote
\” Double Quote
\\ Backslash
\b Backspace
\f Form Feed
\n New Line
\r Carriage Return
\t Tab
Logical&& And
|| Or
! Not
Special…
![Page 19: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/19.jpg)
Operators (cont.)
Question mark & colon – executes a single condition
(rowCount > 0) ? var x = “Rows” : var x = “No Rows”
new – creates an object
function makeBook(title){this.Title = title}
var book = new makeBook(“Don Quixote”)
Alert(book.Title) //returns “Don Quixote” as a property
![Page 20: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/20.jpg)
Operators (cont.)
typeof – returns the type of object
var x = typeof(10) // returns “number”
var x = typeof(“ABC”) // returns “string”
var x = typeof(true) // returns “boolean”
var x = typeof(null) // returns “object”
Methods & functions return “function”
![Page 21: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/21.jpg)
Operators (cont.)
Comma – used to separate multiple values delete – deletes an object, property or array
element this – used to refer to the parent object
Alert(this.Name) //returns the name of the object used
![Page 22: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/22.jpg)
Objects
String Number Date Array Math
![Page 23: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/23.jpg)
String Object
The length property returns the string length Methods include charAt(), charCodeAt(),
fromCharCode(), indexOf(), lastIndexOf(), slice(), split(), substr(), substring(), toLowerCase(), toUpperCase()
We will NOT be discussing regular expressions in this presentation
![Page 24: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/24.jpg)
String Object - Methods
String.charAt() – takes 1 argument, returns the character at the index of the argumentvar x = “AdamFranz”
Alert(x.charAt(0)) // returns “A”
String.charCodeAt() – takes 1 argument, returns the ASCII value of the character at the index of the argumentAlert(x.charCodeAt(0)) // returns 65 (ASCII for “A”)
![Page 25: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/25.jpg)
String Object – Methods (cont.)
String.fromCharCode() – builds a character from the ASCII value specified in the argumentAlert(String.fromCharCode(65)) // returns “A”
![Page 26: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/26.jpg)
String Object – Methods (cont.)
String.indexOf() – takes one or two arguments, returns the index of the first argument in the string (starting from the index of the second argument)Alert(x.indexOf(“a”)) // returns 2
Alert(x.indexOf(“a”, 4)) // returns 6
String.lastIndexOf() – same as above but returning the index of the last instance of the argument
![Page 27: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/27.jpg)
String Object – Methods (cont.)
String.slice() – returns a portion of the string between 2 specified indexesAlert(x.slice(1, 3)) // returns “da”
String.split() – returns an array from the string being broken on a designated charactervar y = “A, B”
var z = y.split(“,”)
Alert(z[0]) // returns “A”
Alert(z[1]) // returns “B”
![Page 28: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/28.jpg)
String Object – Methods (cont.)
String.substr() – returns a portion of the string starting at the index of the first argument for the length of the second argument (defaults to end of string)Alert(x.substr(2, 2)) // returns “am”
String.substring() – basically the same as String.slice()
![Page 29: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/29.jpg)
String Object – Methods (cont.)
String.toLowerCase() – returns the string in all lower caseAlert(x.toLowerCase()) // returns “adamfranz”
String.toUpperCase() – opposite of aboveAlert(x.toLowerCase()) // returns “ADAMFRANZ”
![Page 30: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/30.jpg)
Number Object
Represents a solely numeric value Number.MAX_VALUE = 1.79769e+308 Number.MIN_VALUE = 5e-324 Number.NaN, Number.NEGATIVE_INFINITY
and NUMBER.POSITIVE_INFINITY for comparison purposes
![Page 31: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/31.jpg)
Date Object
It is always a good idea to explicitly declare dates before performing any comparisons, calculations or calling any methods
var x = new Date(yourDateValue)
![Page 32: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/32.jpg)
Date Object - Methods
Date objects have a series of get & set methods used to return or set any specific portion of the date object
A get method, such as getFullYear(), returns the year from the date object whereas a set method, such as setFullYear(), sets the year portion of the date to the argument passed
A getUTC or setUTC gets or sets according to Universal Time (not discussed)
![Page 33: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/33.jpg)
Date Object – Methods (cont.)
.getDate() .getDay() .getFullYear() .getHours() .getMilliseconds() .getMinutes() .getMonth()* .getSeconds()
.setDate() .setDay() .setFullYear() .setHours() .setMilliseconds() .setMinutes() .setMonth()* .setSeconds()
* - zero-based, watch out!
![Page 34: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/34.jpg)
Date Object – Methods (cont.)
Date.getTimezoneOffset – returns the difference in minutes between local time and Greenwich Mean Time
Date.getTime(), Date.parse() and Date.valueof() used to return the number of milliseconds since 1/1/1970
![Page 35: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/35.jpg)
Array Object
Contains a series of values of any datatype designated by their array index (starting with zero)
The length property will return the total amount of elements in the specified array
![Page 36: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/36.jpg)
Array Object - Methods
Array.concat() – joins two or more array objects (passed as arguments) into a single array object (without effecting the original array)
Array.join() – converts an array object to a string separated by the character used in the argument (or a comma by default)
![Page 37: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/37.jpg)
Array Object – Methods (cont.)
Array.pop() – removes the last element of an array
Array.push() – adds an element specified as the argument to the end of an array and returns the new array length
Array.shift() – removes and returns the first element of the array
![Page 38: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/38.jpg)
Array Object – Methods (cont.)
Array.slice() – Returns a new array from a portion of the original array starting at the index of the first argument and ending at the second (or to the end of the array by default)
Array.sort() - re-indexes the array in ascending order by default or in the order provided as an argument in the form of a function
![Page 39: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/39.jpg)
Array Object – Methods (cont.)
Array.splice() – used to add, remove or replace elements of an arrayArray_name.splice(starting_index,
how_many_to_remove, replacement_value_1, replacement_value_2, etc.)
![Page 40: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/40.jpg)
Math Object
A native object accessible by direct reference without requiring instantiation
Used for performing calculations and to access unique mathematical values such as Pi, random numbers, etc.
Includes geometrical properties and methods such as Math.tan for calculating Tangent (not discussed)
![Page 41: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/41.jpg)
Math Object - Properties
Math.E – Euler’s constant Math.LN10 – Natural logarithm of 10 Math.LN2 – Natural logarithm of 2 Math.LOG10E – Base 10 logarithm E Math.LOG2E – Base 2 logarithm of E Math.Pi – Pi Math.SQRT1_2 – 1 divided by sq. rt. of 2 Math.SQRT2 – Square root of 2
![Page 42: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/42.jpg)
Math Object - Methods
Math.abs(x) – returns the absolute value of x Math.ceil(x) – returns x rounded up to nearest
whole number Math.exp(x) – returns Euler’s constant to the
power of x Math.floor(x) - returns x rounded down to
nearest whole number Math.log(x) – returns the natural logarithm
(base E) of x
![Page 43: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/43.jpg)
Math Object – Methods (cont.)
Math.max(x,y) – returns the greater of x or y Math.min(x,y) – returns the lesser of x or y Math.pow(x,y) – returns x to the power of y Math.random() – returns a pseudo-random
number (based on the current time) between 0 and 1
Math.round(x) – returns x rounded off Math.sqrt(x) – returns square root of x
![Page 44: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/44.jpg)
Conclusion
JavaScript is a powerful scripting language which extends beyond the Hyperion platform
All applicable JavaScript is valid in Hyperion Intelligence
JavaScript can be used in dashboards, document scripts, and any computed items (other than in a query)
Get out there and get scripting!!!
![Page 45: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/45.jpg)
Helpful Websites
http://www.devguru.com - an excellent JavaScript reference
http://www.adamfranz.com - sample code and presentations available for download
![Page 46: Native JavaScript in Hyperion Intelligence Unleashing the Power of Object- Oriented Programming.](https://reader036.fdocuments.us/reader036/viewer/2022062423/56649e725503460f94b70b92/html5/thumbnails/46.jpg)
The End
fin