1 / 46

Native JavaScript in Hyperion Intelligence

Native JavaScript in Hyperion Intelligence. Unleashing the Power of Object-Oriented Programming. What is JavaScript?. Created in 1995 by Brendan Eich of Netscape as “LiveScript” Interpreted, object-oriented/procedural programming language

liam
Download Presentation

Native JavaScript in Hyperion Intelligence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Native JavaScript in Hyperion Intelligence Unleashing the Power of Object-Oriented Programming

  2. 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

  3. 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

  4. 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

  5. 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!

  6. 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

  7. 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)

  8. 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

  9. 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

  10. 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

  11. 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”

  12. 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

  13. 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” }

  14. 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 }

  15. 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(){}

  16. 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")} }

  17. 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 Operators

  18. Backslash Escaped \’ Quote \” Double Quote \\ Backslash \b Backspace \f Form Feed \n New Line \r Carriage Return \t Tab Logical && And || Or ! Not Special… Operators (cont.)

  19. 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

  20. 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”

  21. 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

  22. Objects • String • Number • Date • Array • Math

  23. 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

  24. String Object - Methods • String.charAt() – takes 1 argument, returns the character at the index of the argument var 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 argument Alert(x.charCodeAt(0)) // returns 65 (ASCII for “A”)

  25. String Object – Methods (cont.) • String.fromCharCode() – builds a character from the ASCII value specified in the argument Alert(String.fromCharCode(65)) // returns “A”

  26. 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

  27. String Object – Methods (cont.) • String.slice() – returns a portion of the string between 2 specified indexes Alert(x.slice(1, 3)) // returns “da” • String.split() – returns an array from the string being broken on a designated character var y = “A, B” var z = y.split(“,”) Alert(z[0]) // returns “A” Alert(z[1]) // returns “B”

  28. 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()

  29. String Object – Methods (cont.) • String.toLowerCase() – returns the string in all lower case Alert(x.toLowerCase()) // returns “adamfranz” • String.toUpperCase() – opposite of above Alert(x.toLowerCase()) // returns “ADAMFRANZ”

  30. 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

  31. 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)

  32. 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)

  33. .getDate() .getDay() .getFullYear() .getHours() .getMilliseconds() .getMinutes() .getMonth()* .getSeconds() .setDate() .setDay() .setFullYear() .setHours() .setMilliseconds() .setMinutes() .setMonth()* .setSeconds() Date Object – Methods (cont.) * - zero-based, watch out!

  34. 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

  35. 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

  36. 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)

  37. 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

  38. 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

  39. Array Object – Methods (cont.) • Array.splice() – used to add, remove or replace elements of an array Array_name.splice(starting_index, how_many_to_remove, replacement_value_1, replacement_value_2, etc.)

  40. 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)

  41. 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

  42. 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

  43. 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

  44. 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!!!

  45. Helpful Websites • http://www.devguru.com - an excellent JavaScript reference • http://www.adamfranz.com - sample code and presentations available for download

  46. The End fin

More Related