Skip to content

The Editor

You find a rule in the EPM Workbench sidebar and write it in a normal VS Code editor tab.

If you have not connected a Pod yet, start with Install and first Pod.

  1. Click the EPM Workbench icon in the Activity Bar (the left-hand strip of icons).

  2. Pick a Pod from the Select a Pod picker at the top of the sidebar. Pods are grouped by Domain, so a Domain with three Pods shows all three under one heading.

  3. Choose a module tab. There are three: Rules, Dimensions, and Artifacts. Rules is where calculation work happens. The EPM Workbench sidebar with the acmeplan tree expanded to its rules, one open in the editor

  4. In Rules, expand the application, then a plan type, then one of the Rules, Scripts, or Templates folders. Subfolders appear inside them.

  5. Click a rule to open it.

Hovering a row reveals its actions on the right:

  • Open in New Tab on a rule, script, or template. A plain click opens the file in preview, so browsing several rules reuses one tab; this pins it instead.
  • Add New on a folder, which creates a new rule, script, or template there.
  • More Actions (the ), which opens the full menu: Rename, Copy Rule, Add Validation Exception, the four EPM actions, and Delete. Right-clicking the row opens the same menu.

A rule opens as an ordinary VS Code text document, not a custom view. That is deliberate: every editor feature you already use keeps working, including split editors, find and replace, multiple cursors, Local History, and AI assistants such as GitHub Copilot or Claude Code reading and writing the file directly.

What EPM Workbench adds while you type:

  • Completion for members and aliases from your Pulled dimensions, calc functions, Substitution Variables, Smart Lists, Connection names, and %Template / %Script names.
  • Errors and warnings from Validation Rules, shown inline and in the Problems panel.
  • Hover documentation for functions and the EPM Groovy API.
  • Formatting on save, which writes canonical spacing and casing every time you save so formatting noise never shows up as a difference against the Pod. Both formatters are configurable, and both can be turned off, in Settings.

Groovy rules get one more entry in the right-click menu: Show in API Docs, which opens the EPM Groovy API reference at the symbol under the cursor.

Rule, script, and template rows carry a one-letter badge when your copy and the Pod’s copy have diverged.

BadgeMeaning
AAhead. Your copy has changes the Pod does not.
BBehind. The Pod’s copy changed after your last Pull.
!Drifted. Both changed. Pull offers to overwrite the file or skip it.
UUntracked. The file has no sync baseline yet, so there is nothing to compare it against.

A row with no badge matches the last state EPM Workbench recorded for that file. Badges are calculated from what the last Pull recorded, so a Pull is what refreshes them. Library Folders show no badges: a Library is not connected to a Pod, so there is nothing to compare against.

With a rule from a live Pod open, four buttons appear at the top right of the editor tab:

ButtonWhat it does
Pull from EPMBrings the Pod’s current copy of the rule down into your folder.
Push to EPMWrites your saved copy back into Calculation Manager.
DeployDeploys the rule in EPM so the Planning application picks it up.
ExecutePushes, deploys, runs the rule on the Pod, and brings back the log.

EPM Sync and Runs covers all four in full, along with the Runs Panel that tracks them.