EPM Automate At a Glance
EPM Automate is Oracle's command-line utility for scripting administrative tasks against Oracle Fusion Cloud EPM environments: Planning (including what used to be sold as PBCS/EPBCS), Financial Consolidation and Close (FCCS), Account Reconciliation (ARCS), Profitability and Cost Management, and the rest of the Cloud EPM family. For the full range of what it can script beyond data loads (user provisioning, backups, audit reporting, and more), see our EPM Automate overview. By default it's available to users with the Service Administrator role; if you'd rather not hand out full admin access just to let someone run scripts, Oracle also supports granting EPM Automate access to a user with any application role plus the Migrations - Administer granular role, worth knowing if you're trying to follow least-privilege principles.
Following along with screenshots? Rather than reproduce Oracle's copyrighted UI images, this walkthrough links to Oracle's official documentation for the current Data Integration, runDataRule, and application-settings screens. Oracle's Run Data Rule and EPM Automate Encrypt references cover the screens and commands described below.
Combined with a script and a scheduler, EPM Automate turns tedious, repetitive, error-prone manual work into something that just runs. That has a real, quantifiable payoff:
Key Benefits
Save time: a data load that took 8 hours of manual work can often run in minutes once scripted.
Save money: 8 hours a week at $50/hour adds up to well over $100,000 over five years, before accounting for the cost of the errors manual processes tend to introduce.
Reduce risk: data loads, metadata updates, and business rules run on the same schedule every time, without depending on someone remembering to kick them off.
Think about a typical month-end routine: every first Friday of the month, you're touching multiple cubes, pulling in the previous month's files, running business rules, and getting cubes ready for reporting. Done manually, that's a full day of work, longer if something goes wrong partway through. Scripted with EPM Automate, the entire sequence can run unattended, and can even be triggered the moment a new file lands rather than on a fixed clock.
Updating Data
You can drive the whole thing off the files themselves rather than hardcoding dates: pulling the latest Budget file, the newest metadata, or the most recent Actuals based on when a file was last modified, or by parsing information (like a period or year) out of a consistent file naming convention.
Building an Intelligent System
Rather than writing a separate script for every category, you can design a script that derives the category (Actual, Budget, Average, whatever your chart of accounts uses) from a variable, so the same script handles every category's data load and business rule execution. The fewer hardcoded values a script depends on, the fewer places it breaks when something changes. Two of the most common hardcoded values worth eliminating are the start/end period on a data load and the fiscal year, scenario, and version on an aggregation rule.
Data Loads via Data Integration
Say you need to load a file named Actuals12-02-19.txt. Whether you're using the current Data Integration module (the modern, pipeline-based successor to what was originally called Data Management) or scripting it directly, the load process needs a category, a period range, and a file name at minimum. Hardcoding those values means updating the script (or the scheduled job) every single period. Using variables for the period, year, and file name instead means the same job definition keeps working every month without anyone touching it.
Scripting the Data Rule
EPM Automate's runDataRule command is what actually executes a Data Integration/Data Management rule from a script:
epmautomate runDataRule "%Category%" "%prd%-%Yr:~2,2%" "%prd%-%Yr:~2,2%" REPLACE STORE_DATA "%ImportFileActuals%"
The parameters, in order, are: the data rule name, the start period, the end period, the import mode, the export mode, and (optionally) the file name. %prd% and %Yr:~2,2% here are Windows batch-file variables: %Yr:~2,2% is standard batch substring syntax that extracts two characters starting at position 2 of the %Yr% variable, a common way to turn a four-digit year into the two-digit format many period names expect.
A few things worth knowing about this command:
- Import mode must be one of
APPEND,REPLACE,RECALCULATE, orNONE. - Export mode must be one of
STORE_DATA,ADD_DATA,SUBTRACT_DATA,REPLACE_DATA, orNONE. - Both of those values are case-sensitive:
replaceandReplacewill fail whereREPLACEsucceeds.
Written this way, the exact same script handles the January 2027 Averages file or a Budget file that doesn't exist yet, without a single line changing: that's the actual payoff of designing for variables instead of hardcoded values.
Securing Your Scripts
None of this is worth much if the script itself is a security liability, and the most common mistake we see is a plaintext password sitting in a .bat or shell script. EPM Automate has a purpose-built way to avoid that: the encrypt command generates an AES-256-encrypted password file (.epw) that your login script references instead of a plaintext credential. It's a one-time setup per credential, and it means you can hand a script to a developer or a scheduler without ever exposing the actual password.
Where possible, go a step further and use OAuth 2.0 instead of a password entirely: EPM Automate's encrypt command also supports encrypting an OAuth 2.0 refresh token alongside a client ID, which lets you rotate credentials without touching the script at all. This is the more current, more secure option and worth adopting if your environment supports it.
Logs & Reports
Even a well-designed automation eventually hits an error, so build in visibility from the start: you want to know when something failed, be able to troubleshoot it quickly, and keep an audit trail of what ran and when.
- Email notifications. In application settings, designate which administrators get notified and what kinds of events trigger a notification. That way errors get addressed immediately, and a clean run gives you a positive confirmation rather than just silence.
- Error logs. EPM Automate maintains a local, timestamped record of error codes without requiring you to log into the application itself to see what went wrong, useful when you're triaging a failure at 6 a.m. before anyone else is online.
- Historical activity. Keep a chronological record of every data load, metadata update, and business rule execution, including outcomes. That log lets you audit a specific cube or category after the fact, confirm what actually ran, and compare automated run times against how long the same process used to take by hand.
Key Takeaways
EPM Automate turns recurring, manual EPM Cloud maintenance into something that runs reliably on its own, but the value compounds when scripts are built around variables instead of hardcoded values, and when credentials are encrypted (or replaced with OAuth 2.0) instead of sitting in plaintext. Start with the process that costs your team the most manual hours today, script it with variables from day one, and build in logging so you know immediately if something needs attention.
If you'd like help designing or auditing your EPM Automate scripts, CloudADDIE can help: contact us to get started today!
