REST APIs for FDMEE and
Cloud Data Management
Francisco Amores – inlumi Group
June 13, 2018
• Domain Lead – Master Data and
Integration @inlumi
• 12 years (From HAL to Cloud)
• Based in Malaga (Spain)
• Trail Running Lover
• Blogger
That’s me
EPM Roadmap
Methodology
Process
Improvement
Best Practices
Design & Build
Test & Roll Out
Go-Live Support
Performance Testing
Training
Managed Services
Hosting
Cloud Solutions
24x7 Support
Advisory Implementation Operations
WE
FOLLOW
THE SUN
FDMEE
On-Prem?
Cloud Data
Management?
EPM
Automate for
DM?
REST APIs for
DM?
Menu of the Day
Why Today’s Session?
I’m new to REST
REST APIs for FDMEE/CDM
The Next Level
Q&A
Why today’s topic?
The IT world is changing and
the clouds are constantly flying
over us
There is an important need to
integrate Cloud-Cloud and
Cloud-On Prem worlds
APIs are not a privilege
anymore, but a common need
FDMEE and Cloud Data
Management are part of
change
I’m new to What’s a Web Service?
What’s REST?
What’s JSON?
REST APIs
Web Services & REST
They make SW
application resources
available over
networks
Technology that allows
data transmission
across the network
Network
Send HTTP Request
Send HTTP Response
Service Requesters
(Clients)
Service Provider
(Server)
Architectural style for designing
Web Services (RESTful WS)
Easier alternative for such
complex technologies as SOAP
Uses HTTP to share information
between a client and a server
Stateless Services as Resources
(They don’t have memory)
REST
Web Services
JavaScript Object Notation
Language in which the REST Client and the REST Server speak
{
origin : Malaga,
destination: Orlando
how: flying
}
{
direct: No
shortest : 12h,
cost: 890€
}
RESTful Application Program Interface
Base URL + Endpoint path + (Request Parameters)
https://odtug-kscope18.pbcs.em2.oraclecloud.com:443/aif/rest/V1/jobs/{jobid}
Access to the REST resources (black boxes)
REST APIs are identified by URLs (Resources)
Usually available in OP
Requests and Responses
Request - encapsulates the instructions
• URL
• TYPE – GET/POST/PUT/DELETE
• BODY (Payload) – usually JSON
• HEADERS – Authentication, Content Type, etc.
Response - encapsulates the result
• BODY – usually JSON
• HEADERS – Content Type, etc.
Request URL
HTTP Method
Request Headers
Request Body
REST Clients
Advanced REST Client
HTTPBot
Programming/Scripting Languages Web Clients
for Chrome
1. Create Request
• Type, Authorization Header, Body*
• Other Headers
2. Click Send
3. See Response Body
Xxx
PowerShell
1. Encrypt Basic Authentication
2. Create payload (body)
3. Convert payload to JSON
4. Invoke REST
5. Parse Response
REST APIs for
FDMEE and
Cloud Data
Management
The REST APIs
Execute Rules and Batches
Import/Export Maps
Execute Reports
The Secret REST APIs
Overview
Post Job
Get Job
Details
{jobId}
{jobStatus}
While <> “SUCCESS”
Available in Cloud Data Management (V1)
Introduced in FDMEE 11.1.2.4.210 (Supported PSU220)
Execute UI tasks externally (admins/non-admins)
REST APIs Vs. EPM Automate (Wrapper)
 verbosing  concurrency  error handling
Basic Http Authentication
Upload/Download files with Migration REST APIs (admins)
Base URL
https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/aif/rest/{api_version}/{resource path)
https://planning-kscope18.pbcs.em2.oraclecloud.com:443/aif/rest/
http(s)://epmserver:port/aif/rest/{api_version}/{resource path)
http://epm11124:6550/aif/rest/V1/jobs
Upload File
Download File
Execute Data Load Rules
Resource Path /aif/rest/{api_version}/jobs
Request Type POST
Request Parameters Notes
jobType DATARULE
jobName Name of DLR (use “” if spaces)
startPeriod Period name
endPeriod Period name
fileName Must be in the inbox (use “” for predefined)
importMode APPEND/REPLACE/RECALCULATE/NONE (skip)
exportMode (E)PBCS/Planning FCCS/TRCS
STORE_DATA
ADD_DATA
SUBTRACT_DATA
REPLACE_DATA
NONE (skip)
REPLACE
MERGE
NONE (skip)
• HFM Replace by Security/Accum not supported
• FULL_REFRESH/SNAPSHOT/INCREMENTAL (OP)
• Can load Metadata (CDM)
• Location security applies
Execute Batches
Resource Path /aif/rest/{api_version}/jobs
Request Type POST
Request Parameters Notes
jobType BATCH
jobName Name of the batch
• Doesn’t accept parameters
• Ex: if you pass start and end periods, they
will be ignored
Import/Export Mappings
Resource Path /aif/rest/{api_version}/jobs
Request Type POST
Request Parameters Notes
jobType MAPPINGIMPORT
jobName Dimension Name/ALL
fileName CSV, .TXT, .XLS, or .XLSX
Must be in the inbox first
importMode REPLACE/MERGE
validationMode true/false
locationName Location name
• Specify the relative path with the filename
• Scripts supported in Text export
• Bug – security location is bypassed
Resource Path /aif/rest/{api_version}/jobs
Request Type POST
Request Parameters Notes
jobType MAPPINGEXPORT
jobName Dimension Name/ALL
fileName CSV, .TXT, .XLS, or .XLSX
XLS/XLSX exported as XLSM
locationName Location name
Execute Reports
Resource Path /aif/rest/{api_version}/jobs
Request Type POST
Request
Parameters
Notes
jobType REPORT
jobName Report name (as it is)
reportFormatType PDF, XLSX, HTML, EXCEL
parameters JSON with pairs “param name”:”param value”
• Generic error when invalid report
name
• Application/outbox/reports (OP)
Job Execution Response
Response
Parameter
Description
status -1 (in progress) / 0 (success)
1 (error)
2 (cancel)
3 (cancelled)
4 (invalid parameter)
jobStatus RUNNING / SUCCESS / FAILED
jobId Process ID in FDMEE/CDM
logFileName Log File (relative path)
outputFileName Output File (relative path)
processType COMM_LOAD_BALANCES / MAPPING_EXPORT / …
executedBy Login name of the user calling the REST API
details Exception message in case of errors
Links Links related to the Job
The secret GET/POST REST APIs
They are not documented but they do exist (supported?)
GET REST APIs
• Job Details (paging)
• Application and Details (definition, options, dimensions)
• Dimensions, Rules, Import Formats, Locations, etc.
POST REST APIs
• Refresh Metadata and Members
• Execute Scripts (Cloud and OP)
• Direct Import/Export Planning/PBCS/FCCS, Export to ARM
Refresh Dimension Members
Automate mouse click
Get Process Details into Excel
GET - /aif/rest/V1/jobs
Execute Custom Script
 Similar to REST resource for executing Reports (jobType = SCRIPT)
 OP – Custom Scripts
 CDM – System Maintenance Tasks only
Taking the
REST APIs to the
Next Level
Excel Mapping RESTloader
PowerShell Toolbox
Extended FDMEE API
Robotic Process Automation
Mobile Apps
Oracle Integration Cloud
EPMware Mappings
Excel Map RESTLoader
VBA API for REST APIs
Cloud/OP
Tasks
• Download Maps
• Upload Maps
• Scripts supported
• Send Email
• …
Downloading Mappings
Uploading Mappings
PowerShell Toolbox
Invoke-RestMethod
Scheduling/Email notifications
Admin ownership
.Net Libraries
Cloud/OP
Tools
• File Watcher
• Report Executor
• Rejected Records
• Adapters
• …
1. If there are files, then move files
to openbatch folder
2. Execute batch with REST APO
Extended FDMEE API
Custom Python/Java API
Used from FDMEE scripts (OP)
Tasks
• Download/Upload Maps
• Execute Rules/Batches
• Execute Reports
• Execute Scripts
• …
Executing Reports
Advance process logic (email…)
Get Job Id
Easy to rename reports
Error handling & verbosing
Better option than runreport utility
UiPath Robotic PA
Automate Business Processes/Tasks
Automate FDMEE/CDM Jobs
Health Checks
Cloud Adapters
Cloud/OP
Tasks
• HTTP Request
• JSON Deserialization
• Send Email
• …
Automating Rule/Batch
Mobile Apps
iOS and Android
Cloud/OP
Functionality
• Mapping Creator
• Rule Executor
• Report Executor
• Process Monitor
• …
Think about getting a
file in your email and
loading it from your
mobile/table
Data
Management?
Kscope.
iProcessMonitor
Download logs and Outbox files
Send emails to users
Capture rejected records
Etc.
Oracle Integration Cloud
Autonomous Integration Cloud
Integration PaaS (iPaaS)
Connect to on-prem
Pre-built adapters
REST adapter
Key Features
• Integration Apps
• Process Automation
• Visual Build
Running DM Rule
EPMware
MDM & DG Software
Manage FDMEE as app type
All mapping types
Direct import/export of maps
Deploying Map Requests
REST APIs for
FDMEE and CDM
are used to execute
jobs from external
clients
1
REST APIs can be
used in different
types of
deployment: cloud,
on-prem, and hybrid
2
As always, creativity
plays a very
important role
3
References
 My Blog - Fishing with FDMEE
 John Goodwin’s Blog
http://john-goodwin.blogspot.com/
 Oracle’s Documentation
 UiPath Robotics Process Automation
 Oracle Integration Cloud
Q&A
Francisco Amores
francisco.amores@inlumi.com
http://fishingwithfdmee.blogspot.com
@akafdmee
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management

ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management

  • 2.
    REST APIs forFDMEE and Cloud Data Management Francisco Amores – inlumi Group June 13, 2018
  • 3.
    • Domain Lead– Master Data and Integration @inlumi • 12 years (From HAL to Cloud) • Based in Malaga (Spain) • Trail Running Lover • Blogger That’s me
  • 4.
    EPM Roadmap Methodology Process Improvement Best Practices Design& Build Test & Roll Out Go-Live Support Performance Testing Training Managed Services Hosting Cloud Solutions 24x7 Support Advisory Implementation Operations
  • 5.
  • 6.
  • 7.
    Menu of theDay Why Today’s Session? I’m new to REST REST APIs for FDMEE/CDM The Next Level Q&A
  • 8.
    Why today’s topic? TheIT world is changing and the clouds are constantly flying over us There is an important need to integrate Cloud-Cloud and Cloud-On Prem worlds APIs are not a privilege anymore, but a common need FDMEE and Cloud Data Management are part of change
  • 9.
    I’m new toWhat’s a Web Service? What’s REST? What’s JSON? REST APIs
  • 10.
    Web Services &REST They make SW application resources available over networks Technology that allows data transmission across the network Network Send HTTP Request Send HTTP Response Service Requesters (Clients) Service Provider (Server) Architectural style for designing Web Services (RESTful WS) Easier alternative for such complex technologies as SOAP Uses HTTP to share information between a client and a server Stateless Services as Resources (They don’t have memory) REST Web Services
  • 11.
    JavaScript Object Notation Languagein which the REST Client and the REST Server speak { origin : Malaga, destination: Orlando how: flying } { direct: No shortest : 12h, cost: 890€ }
  • 12.
    RESTful Application ProgramInterface Base URL + Endpoint path + (Request Parameters) https://odtug-kscope18.pbcs.em2.oraclecloud.com:443/aif/rest/V1/jobs/{jobid} Access to the REST resources (black boxes) REST APIs are identified by URLs (Resources) Usually available in OP
  • 13.
    Requests and Responses Request- encapsulates the instructions • URL • TYPE – GET/POST/PUT/DELETE • BODY (Payload) – usually JSON • HEADERS – Authentication, Content Type, etc. Response - encapsulates the result • BODY – usually JSON • HEADERS – Content Type, etc. Request URL HTTP Method Request Headers Request Body
  • 14.
    REST Clients Advanced RESTClient HTTPBot Programming/Scripting Languages Web Clients
  • 15.
    for Chrome 1. CreateRequest • Type, Authorization Header, Body* • Other Headers 2. Click Send 3. See Response Body Xxx
  • 16.
    PowerShell 1. Encrypt BasicAuthentication 2. Create payload (body) 3. Convert payload to JSON 4. Invoke REST 5. Parse Response
  • 17.
    REST APIs for FDMEEand Cloud Data Management The REST APIs Execute Rules and Batches Import/Export Maps Execute Reports The Secret REST APIs
  • 18.
    Overview Post Job Get Job Details {jobId} {jobStatus} While<> “SUCCESS” Available in Cloud Data Management (V1) Introduced in FDMEE 11.1.2.4.210 (Supported PSU220) Execute UI tasks externally (admins/non-admins) REST APIs Vs. EPM Automate (Wrapper)  verbosing  concurrency  error handling Basic Http Authentication Upload/Download files with Migration REST APIs (admins) Base URL https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/aif/rest/{api_version}/{resource path) https://planning-kscope18.pbcs.em2.oraclecloud.com:443/aif/rest/ http(s)://epmserver:port/aif/rest/{api_version}/{resource path) http://epm11124:6550/aif/rest/V1/jobs Upload File Download File
  • 19.
    Execute Data LoadRules Resource Path /aif/rest/{api_version}/jobs Request Type POST Request Parameters Notes jobType DATARULE jobName Name of DLR (use “” if spaces) startPeriod Period name endPeriod Period name fileName Must be in the inbox (use “” for predefined) importMode APPEND/REPLACE/RECALCULATE/NONE (skip) exportMode (E)PBCS/Planning FCCS/TRCS STORE_DATA ADD_DATA SUBTRACT_DATA REPLACE_DATA NONE (skip) REPLACE MERGE NONE (skip) • HFM Replace by Security/Accum not supported • FULL_REFRESH/SNAPSHOT/INCREMENTAL (OP) • Can load Metadata (CDM) • Location security applies
  • 20.
    Execute Batches Resource Path/aif/rest/{api_version}/jobs Request Type POST Request Parameters Notes jobType BATCH jobName Name of the batch • Doesn’t accept parameters • Ex: if you pass start and end periods, they will be ignored
  • 21.
    Import/Export Mappings Resource Path/aif/rest/{api_version}/jobs Request Type POST Request Parameters Notes jobType MAPPINGIMPORT jobName Dimension Name/ALL fileName CSV, .TXT, .XLS, or .XLSX Must be in the inbox first importMode REPLACE/MERGE validationMode true/false locationName Location name • Specify the relative path with the filename • Scripts supported in Text export • Bug – security location is bypassed Resource Path /aif/rest/{api_version}/jobs Request Type POST Request Parameters Notes jobType MAPPINGEXPORT jobName Dimension Name/ALL fileName CSV, .TXT, .XLS, or .XLSX XLS/XLSX exported as XLSM locationName Location name
  • 22.
    Execute Reports Resource Path/aif/rest/{api_version}/jobs Request Type POST Request Parameters Notes jobType REPORT jobName Report name (as it is) reportFormatType PDF, XLSX, HTML, EXCEL parameters JSON with pairs “param name”:”param value” • Generic error when invalid report name • Application/outbox/reports (OP)
  • 23.
    Job Execution Response Response Parameter Description status-1 (in progress) / 0 (success) 1 (error) 2 (cancel) 3 (cancelled) 4 (invalid parameter) jobStatus RUNNING / SUCCESS / FAILED jobId Process ID in FDMEE/CDM logFileName Log File (relative path) outputFileName Output File (relative path) processType COMM_LOAD_BALANCES / MAPPING_EXPORT / … executedBy Login name of the user calling the REST API details Exception message in case of errors Links Links related to the Job
  • 24.
    The secret GET/POSTREST APIs They are not documented but they do exist (supported?) GET REST APIs • Job Details (paging) • Application and Details (definition, options, dimensions) • Dimensions, Rules, Import Formats, Locations, etc. POST REST APIs • Refresh Metadata and Members • Execute Scripts (Cloud and OP) • Direct Import/Export Planning/PBCS/FCCS, Export to ARM
  • 25.
  • 26.
    Get Process Detailsinto Excel GET - /aif/rest/V1/jobs
  • 27.
    Execute Custom Script Similar to REST resource for executing Reports (jobType = SCRIPT)  OP – Custom Scripts  CDM – System Maintenance Tasks only
  • 28.
    Taking the REST APIsto the Next Level Excel Mapping RESTloader PowerShell Toolbox Extended FDMEE API Robotic Process Automation Mobile Apps Oracle Integration Cloud EPMware Mappings
  • 29.
    Excel Map RESTLoader VBAAPI for REST APIs Cloud/OP Tasks • Download Maps • Upload Maps • Scripts supported • Send Email • …
  • 30.
  • 31.
  • 32.
    PowerShell Toolbox Invoke-RestMethod Scheduling/Email notifications Adminownership .Net Libraries Cloud/OP Tools • File Watcher • Report Executor • Rejected Records • Adapters • … 1. If there are files, then move files to openbatch folder 2. Execute batch with REST APO
  • 33.
    Extended FDMEE API CustomPython/Java API Used from FDMEE scripts (OP) Tasks • Download/Upload Maps • Execute Rules/Batches • Execute Reports • Execute Scripts • …
  • 34.
    Executing Reports Advance processlogic (email…) Get Job Id Easy to rename reports Error handling & verbosing Better option than runreport utility
  • 35.
    UiPath Robotic PA AutomateBusiness Processes/Tasks Automate FDMEE/CDM Jobs Health Checks Cloud Adapters Cloud/OP Tasks • HTTP Request • JSON Deserialization • Send Email • …
  • 36.
  • 37.
    Mobile Apps iOS andAndroid Cloud/OP Functionality • Mapping Creator • Rule Executor • Report Executor • Process Monitor • … Think about getting a file in your email and loading it from your mobile/table Data Management? Kscope.
  • 38.
    iProcessMonitor Download logs andOutbox files Send emails to users Capture rejected records Etc.
  • 39.
    Oracle Integration Cloud AutonomousIntegration Cloud Integration PaaS (iPaaS) Connect to on-prem Pre-built adapters REST adapter Key Features • Integration Apps • Process Automation • Visual Build
  • 40.
  • 41.
    EPMware MDM & DGSoftware Manage FDMEE as app type All mapping types Direct import/export of maps
  • 42.
  • 43.
    REST APIs for FDMEEand CDM are used to execute jobs from external clients 1 REST APIs can be used in different types of deployment: cloud, on-prem, and hybrid 2 As always, creativity plays a very important role 3
  • 44.
    References  My Blog- Fishing with FDMEE  John Goodwin’s Blog http://john-goodwin.blogspot.com/  Oracle’s Documentation  UiPath Robotics Process Automation  Oracle Integration Cloud
  • 45.
  • 46.