Most Oracle EPM administrators come to the platform knowing one scripting language reasonably well (Python is a common one) and end up picking up several more along the way: Jython, batch scripting, Groovy, and EPM Automate's own command syntax among them. None of these are exotic or hard to pick up individually, but combined, they let you automate work that would otherwise eat up an admin's entire day. This article walks through one concrete example, reconciliation loading in Account Reconciliation (ARCS), to show how the pieces fit together, and why it's worth learning more than one of them.
Python and Jython in Oracle Systems
If you already know Python, you have a real head start in Oracle's ecosystem, thanks to Jython: a Python interpreter implemented in Java that runs on the Java Virtual Machine. Jython lets you write Python-syntax code that runs in and interoperates with a Java environment, which matters because so much of Oracle's EPM Cloud tooling (including the EPM Integration Agent's custom event scripts) is built on Java under the hood. That combination gives Python knowledge real leverage inside Oracle EPM Cloud: it shows up in event scripts for data integration jobs (the "before extract," "after extract," "before upload," and "after upload" hooks that Oracle's Integration Agent supports), and it's just as useful as a general-purpose scripting language for prepping files before they ever touch an Oracle application.
One of Python's real strengths is its package ecosystem, and that's genuinely useful here. As an example: it's common to pull an HTML file (readable in Excel as an .xls-style export) out of Data Integration (the current name for what used to be called Data Management) from an ARCS environment. Using Python with a library that handles HTML parsing and spreadsheet manipulation, you can take that raw export and:
- Convert it to a CSV
- Delete unneeded columns
- Insert a new column with calculated or static values
- Reorder the columns
- Rename the columns
- Delete rows with no usable data
That gets the file into a format ARCS can actually import. It's a narrow example, but it's representative of the broader pattern: almost any messy source export can be normalized into an importable format with a fairly small amount of Python.

EPM Automate
EPM Automate is Oracle's own command-line tool for scripting actions inside EPM Cloud environments: anything you could otherwise do by clicking through the UI, EPM Automate can typically do from a single command. (See our EPM Automate overview and best practices posts for the broader command set beyond ARCS.) It's worth knowing the real command names rather than treating it as a black box, because it makes troubleshooting and building on top of someone else's script far easier. Continuing the ARCS example above, once the cleaned-up file exists, EPM Automate can:
login: authenticate to the ARCS environmentsetPeriodStatus: open the target reconciliation perioduploadFile: upload the prepared fileimportPreMappedBalances: import the pre-mapped balance data into the source systemcreateReconciliations: generate reconciliations for the period from a profile filter
On its own, that's a modest number of steps, but it's also genuinely time-consuming when done by hand, on top of whatever time it took to clean up the source file in the first place. A single reconciliation-loading cycle like this can easily run 15 minutes of hands-on work, and creating the reconciliations themselves can add another 30 to 45 minutes depending on volume. Multiply that across every reconciliation type in an ARCS environment (many organizations run six to ten distinct types), and you're looking at hours of repetitive work every close cycle. That's exactly the kind of task worth reducing to a single script execution.
Batch Scripting and Automation
The piece that ties everything together is your local machine's command-line shell. Anything you can run manually (a Python script, a Jython script, an EPM Automate command) can also be called from a batch script (.bat on Windows, a shell script on macOS/Linux), executed in sequence, with no manual intervention required once it starts. A representative end-to-end version of the ARCS example above looks like this:
- Download the raw export from Data Integration
- Kick off a batch script that runs the following steps in order
- Run a Python script to clean and reformat the file for import
- Call EPM Automate to log in and open the target period
- Call EPM Automate to upload the file and import the pre-mapped balances
- Call EPM Automate to create the reconciliations and clean up temporary files
- Call EPM Automate to log out
A process that traditionally takes a skilled user the better part of an hour becomes a double-click on a batch file, freeing that person up to spend their close cycle reviewing exceptions instead of re-keying the same steps every period.
A Few Best Practices Worth Adopting
- Consider Groovy alongside Jython. Jython remains fully supported for EPM Integration Agent event scripts, but Groovy is the language Oracle has been investing in more heavily across EPM Cloud (it's also what Planning business rules are built on), so if you're picking a language to standardize on going forward, it's worth weighing Groovy against Jython rather than defaulting to whichever one you already know.
- Move to a compiled Java implementation for production-critical automation. For scripts where reliability really matters, Oracle's EPM Integration Agent also supports implementing event logic directly in Java via its
EPMAgentInterface, which can offer more control and stability than a scripting-language event script in a high-stakes production pipeline. - Never hardcode credentials in a batch script. Use EPM Automate's
encryptcommand to generate an encrypted password file (or better, an OAuth 2.0 refresh token) so your login step never exposes a plaintext password.
This was a fairly narrow example (one reconciliation type, three scripting layers, and a batch file tying it together), but it's representative of what's possible once you're comfortable combining a couple of these tools rather than relying on just one. There's plenty more headroom beyond this: other languages, other EPM applications, and other manual processes just waiting to be scripted away. It mostly comes down to being willing to learn the tools and get a little creative with what they can do together.
At CloudADDIE, we are equipped with years of experience in business solutions and the latest software for enterprises. We are confident that we can help your companies be more effective, more profitable, and make more informed decisions. Contact us to get started today!
