Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Collaborate 18 presentation by Dayalan Punniyamoorthy

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 24 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Collaborate 18 presentation by Dayalan Punniyamoorthy (20)

Anzeige

Aktuellste (20)

Collaborate 18 presentation by Dayalan Punniyamoorthy

  1. 1. Introduction to Oracle PBC REST API With Groovy Scripting Dayalan Punniyamoorthy 31st May 2018
  2. 2. 22 WHO WE ARE Providing exceptional quality and value, while imparting a customer-focused approach. Vertical Edge Consulting Group is your trusted partner for business consulting and technology solutions, ensuring reliability and scalability for your growing company. 2010 Year Founded 35 Employees 3 National Practices 2 Locations 1 Inspired Vision for Success Our Company Exceptional values, passion for success, and dedicated commitment drive our success.  Oracle Platinum Partner  Consultants average 12-15 years of industry and Big 4 consulting experience  Technology focus on EPM, BI and Cloud solutions, integrating with leading Tier 1 and 2 ERP systems  IT Strategy & Advisory Practice with CIO and Fortune 500 leadership experience  In-depth understanding of Cloud Technology & Solutions, driving today’s strategic technology decisions  Strong dedication to customer success and uncompromising values
  3. 3. 33 OUR SERVICES Technology Enterprise Performance Management (EPM) - Oracle Hyperion Financial Management - Oracle Hyperion Planning - Oracle Hyperion Planning & Budgeting Cloud Service (PBCS) - Oracle Hyperion Essbase - Oracle Hyperion FDM/FDMEE - Oracle Hyperion DRM - Oracle Hyperion Reporting & Analysis - Oracle Hyperion SmartView Business Intelligence (BI) - Oracle Business Intelligence Enterprise Edition (OBIEE) - Oracle Business Intelligence Foundation Suite (BIFS) - Oracle Business Intelligence Cloud Service (BICS) - Oracle Business Intelligence for Applications (OBIA) Advisory Services - CIO Advisory - IT Strategy - Cloud Advisory - Project Management Oversight (PMO) - Enterprise Resource Planning Advisory (ERP) - Enterprise Architecture Trusted Advisory Technology Expertise
  4. 4. 44 ORACLE EPM EXPERIENCE  Oracle® Certified Platinum Partner  One of the nation’s leading Oracle EPM strategy & implementation firms  Successfully implemented Oracle EPM solutions for dozens of clients in the US, and abroad  Oracle EPM professional average 15 years of hands-on experience  Focused on Fortune 500 companies & large scale, enterprise-wide implementations  Deep expertise from process design to technology implementation  Proven functional and industry templates to leverage best practices  Hyperion Essbase, Planning and HFM certified professionals Enterprise Planning & Forecasting •Planning, Budget & Forecasting •Workforce & Capital Expenditure Planning •Planning System Design & Implementation •Balanced Scorecard •Hyperion Planning™, Workforce Planning™, Capital Expense Planning™ Financial Consolidation •Financial Close Process Design •Consolidation System Design & Implementation •Financial Reporting & Analysis •Financial Management™, Financial Data Quality Management™ Reporting & Analytics •Management Dashboards •Profitability Analysis •Human Resource Analysis •Sales & Procurement Analytics •Essbase™ Solutions, SmartView™, and reporting tools Business Intelligence •Data Management & Integration •Content Management •BI Enterprise Edition™, Data Relationship Management™ and integration tools
  5. 5. Agenda for Today! • Overview of REST API and Groovy Program  REST API for Oracle PBC/EPC  A Simple REST API request & response  Authentication into Oracle PBC/EPC  REST API Methods  REST API Resource View • Lifecycle Management • Planning • Interop • Data Management • Introduction to Groovy • Managing & administering Hyperion Application using Groovy program to invoke the REST API related to Oracle PBC/EPC • Managing & administering Migration using Groovy program to invoke the REST API related to Oracle PBC/EPC Migration • Managing & administering Data Management jobs using Groovy program to invoke the REST API related to Oracle PBC/EPC Data Management • Demo
  6. 6. Overview of REST API  REpresentational State Transfer (REST)  An architecture for client-server web communication  Application Programming lnterface (API)  Lets products and services communicate with each other  REST describes any simple interface that transmits data over a standardized interface (such as HTTP).  REST provides a set of design rules for creating stateless services that are viewed as resources can be identified by their unique Uniform Resource Identifier (URIs).
  7. 7. REST API for Oracle PBC/EPBC  You can integrate EPM Cloud environments using: oA set of REST APIs oThe EPM Automate Utility, a command line tool that is implemented on top of the REST APIs  Audience The REST API for Oracle PBC/EPC is intended primarily as a tool for infrastructure consultants and administrators  Prerequisites o Access as a service administrator to the cloud service o Technical and functional knowledge to understand and execute the EPM Automate & REST APIs, and to administer the product. o Knowledge of Java, cURL, Groovy, and REST programming.
  8. 8. A Simple REST API request & response https://vecghypdemo- test.PBCS.us2.oraclecloud.com/HyperionPlanning/rest/v3/ap plications Request JSON Response
  9. 9. Authentication into Oracle PBC/EPBC  These REST APIs support basic authentication (name and password) in the format identitydomain.username for this release.  Every HTTP request to EPM Cloud should supply HTTP Basic Authentication credentials through the Authorization header.
  10. 10. REST API Methods  You can create, view, update, or delete Oracle Enterprise Performance Management Cloud resources using standard HTTP method requests • GET Retrieve information about the REST API resource (e.g.: Retrieve Job Status Details) • POST Create a REST API resource (e.g.: Execute a Job) • PUT Update a REST API resource (e.g.: Setting Daily maintenance Window Time) • DELETE Delete a REST API resource or related component (e.g.: Delete Files)
  11. 11. REST API Resource View – Oracle PBC (Some of them not all  ) REST Resource -/interop/rest/ REST API version {api_version} for Lifecycle Management is 11.1.2.3.600. Request More Information /interop/rest/ GET Get REST API Versions for Migration /interop/rest/{api_version} GET Get Information about a Specific Version of Migration /interop/rest/{api_version}/applicationsnapshots/ {SnapshotName}/contents GET Download /interop/rest/{api_version}/Applicationsnapshots GET List Files /interop/rest/{api_version}/applicationsnapshots/ {nSnapshotName} DELETE Delete Files /interop/rest/{api_version}/services GET Get Information About All Services
  12. 12. REST API Resource View – Oracle PBC (Some of them not all  ) REST Resource -/HyperionPlanning/rest/ Current REST API {api_version} version for Planning is v3. Request More Information /HyperionPlanning/rest/ GET Getting REST API Versions for Planning /HyperionPlanning/rest/{api_version} GET Get Information about a Specific REST API Version for Planning /HyperionPlanning/rest/{api_version}/applications/{app}/jobd efinitions GET Get Job Definitions /HyperionPlanning/rest/{api_version}/applications/{app}/dime nsions/{dimname}/members POST Add Member /HyperionPlanning/rest/{api_version}/applications/{applicatio n}/subvar GET Get All Substitution Variables Defined for the Application /HyperionPlanning/rest/{api_version}/applications/{applicatio n}/plantypes/{plantype}/subvar GET Get Substitution Variables Defined at the Plan Type Level
  13. 13. REST Resource -//interop/rest/ REST API version {api_version} is v1 (interop) REST API version {api_version} is V1 (aif) Request More Information /interop/rest/{api_version}/reports? q={type:userauditreport,fileName:useraudit.csv,since=2015- 12-10,until=2016-06-10}/interop/rest/{api_version} POST User Audit Report /interop/rest/{api_version}/reports?q={type:provisionreport,fil eName:ProvRep.csv} POST User Provisioning Report /interop/rest/{api_version}/dailymaintenance?StartTime={N} PUT Setting the Daily Maintenance Window Time /aif/rest/{api_version} /aif/rest/{api_version}/jobs GET GET Get Information about a Specific API Version for Data Management APIs Running Data Rules REST API Resource View – Oracle PBC (Some of them not all  )
  14. 14. What is Groovy?  Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax.  It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta- programming and functional programming. Install groovy from http://groovy-lang.org/download.html Default install location "C:Program Files (x86)GroovyGroovy-2.4.7bin“
  15. 15. A Simple Groovy Program to access Oracle PBC/EPC REST API//Importing JSON package for JSONObject & JsonSlurper import org.json.JSONObject import groovy.json.JsonSlurper //Modify as needed before executing apiVersion="v3" appName="EPBCS" //Reading the Values from the Properties File Properties props = new Properties() File propsFile = new File('C:/Users/DPunniamoorthy/Documents/RESTAPI- Webinar/Groovy/PBCSDetails.properties') props.load(propsFile.newDataInputStream()) serverUrl=props.getProperty('serverUrl') domain=props.getProperty('domain') username=props.getProperty('username') password=props.getProperty('password') // Setup User Credentials and Authorization Header userCredentials = domain + "." + username + ":" + password basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userCredentials.getBytes())
  16. 16. // Setup User Credentials and Authorization Header userCredentials = domain + "." + username + ":" + password basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userCredentials.getBytes()) println ('*****Starting of REST API Program******'); // Fetch Response Function def fetchResponse(is) { BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { sb.append(line+"n"); } br.close(); return sb.toString(); }
  17. 17. // Execute Request Function for Authentication & Authorization def executeRequest(url, requestType, payload, contentType) { HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setUseCaches(false); connection.setDoInput(true); connection.setRequestMethod(requestType); connection.setRequestProperty("Content-Type", contentType); connection.setRequestProperty("Authorization", basicAuth); if (payload != null) { OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); writer.write(payload); writer.flush(); } int statusCode try { statusCode = connection.responseCode; } catch (all) { println "Error connecting to the URL" System.exit(0); } def response if (statusCode == 200 || statusCode == 201) { if (connection.getContentType() != null && !connection.getContentType().startsWith("application/json")) { println "Error occurred in server" InputStream is = connection.getInputStream(); if (is != null) response = fetchResponse(is) } else { println "Error occurred while executing request" println "Response error code : " + statusCode InputStream is = connection.getErrorStream(); if (is != null && connection.getContentType() != null && connection.getContentType().startsWith("application/json")) println fetchJobStatusFromResponse(fetchResponse(is)) } connection.disconnect(); return response;}
  18. 18. //Function to get the Application Details def getApplications() { def url;try {url = new URL(serverUrl + "/HyperionPlanning/rest/" + apiVersion + "/applications/") } catch (MalformedURLException e) { println "Malformed URL. Please pass valid URL“ System.exit(0); }response = executeRequest(url, "GET", null, "application/x-www-form-urlencoded"); def object = new JsonSlurper().parseText(response) def status = object.status def items = object.items println "Application Details:" println "******************" items.each{ println "Application Name : " +items. name println "Application Supports decision packages : " + items.dpEnabled println "Is it Unicode : " + items.unicode println "Applciation Storage : " + items.appStorage println "Product Type : " + items.type if (object.details != null) println "Error details: " + object.details } } getApplications(); println('*********End of REST API Program******');
  19. 19. Demo - Groovy + REST API for Planning
  20. 20. Demo - Groovy + REST API for Migration
  21. 21. Demo - Groovy + REST API for Data Management
  22. 22. dayalanp@verticaledgecg.com www.verticaledgecg.com https://onlyhyperion.blogspot.in/ @pdayalan https://www.linkedin.com/in/dayalanpunniyamoorthy/

Hinweis der Redaktion

  • Our 3 National practices are EPM (all things hyperion)
    BI (OBIEE, BICS, OBIA)
    Advisory services
  • Oracle Platinum Partner
    Experience and knowledge across all EPM platforms
    Consultants hold Oracle certifications on the products they support
  • Flat learning curve
    Concise, readable and expressive syntax, easy to learn for Java developers
    Smooth Java integration
    Seamlessly and transparently integrates and interoperates with Java and any third-party libraries
    Vibrant and rich ecosystem
    Web development, reactive applications, concurrency / asynchronous / parallelism library, test frameworks, build tools, code analysis, GUI building
    Powerful features
    Closures, builders, runtime & compile-time meta-programming, functional programming, type inference, and static compilation
    Domain-Specific Languages
    Flexible & malleable syntax, advanced integration & customization mechanisms, to integrate readable business rules in your applications
    Scripting and testing glue
    Great for writing concise and maintainable tests, and for all your build and automation tasks

×