PA Code
The Modern IDE for IBM Planning Analytics / TM1
Author: Tim Geilen
PA Code brings the power of a modern code editor to TM1 development. If you've been working in Architect or PAW to write TI processes and rules, PA Code gives you a faster, more organized workflow — with autocomplete, debugging, version control, and multi-instance management built right in.
No prior VS Code experience required. This guide will get you up and running.
Getting Started
What You Need
- VS Code — Download free from code.visualstudio.com
- PA Code Extension — Install from the VS Code Marketplace (search "PA Code")
- Network access to your TM1 server(s) (REST API port must be reachable)
Optional:
- Git — For version control and team collaboration (git-scm.com)
Step 1: Install PA Code
- Open VS Code
- Click the Extensions icon in the left sidebar (or press
Ctrl+Shift+X)
- Search for "PA Code"
- Click Install
After installation, you'll see a new PA Code icon in the left activity bar — that's your main entry point.
- Click the PA Code icon in the activity bar (left side)
- In the sidebar that opens, click the ⚙️ gear icon at the top
- The Settings panel opens — here you add your TM1 environments:
- Name: A label like
DEV or PROD
- Connection Type: Choose how to connect:
- Admin Host: Auto-discovers all TM1 instances on a host
- Single Instance: Direct connection to one server (URL + port)
- v12 Tenant: For IBM Planning Analytics as a Service
- SSL: Enable if your server uses HTTPS
- Click Save
Tip: You can configure multiple environments (DEV, TEST, PROD) to manage all your servers in one place.
Step 3: Connect to Your Server
- In the PA Code sidebar, expand your environment
- You'll see your TM1 server(s) listed
- Click the plug icon (or right-click → Connect)
- Enter your credentials:
- Native Security: Username + Password
- CAM Security: Namespace + Username + Password
- Once connected, the server icon turns green ✓
You're now connected! Your processes and rules are listed in the tree below.
Your First Steps
Opening a Process or Rule
Click any process name in the tree to open it. PA Code downloads the code from the server and opens it in the editor. You'll see:
- All four procedure sections (
Prolog, Metadata, Data, Epilog) in one file
- Syntax highlighting for all TI functions
- A
► Run and 🐛 Debug button at the top (CodeLens)
Editing and Saving
- Make your changes in the editor
- Press
Ctrl+S to save
That's it. PA Code automatically:
- Saves the file locally on your disk
- Pushes the change to the TM1 server
- Validates the syntax and shows errors inline (red underline with message)
Running a Process
Three ways to run a process:
- CodeLens button: Click
► Run at the top of the .ti file
- Tree view: Right-click a process → Execute
- Recently Used: Click the ► icon on any previously-run process in the sidebar
If the process has parameters, a form appears where you can fill them in. PA Code remembers your last used values.
Debugging a Process
- Click
🐛 Debug at the top of a .ti file
- Set parameter values if prompted
- The debugger starts and pauses at the first line
- Use the debug toolbar:
- F5 — Continue
- F10 — Step Over (next line)
- F11 — Step Into (sub-process)
- Shift+F5 — Stop
- Watch variables update in real-time in the left panel
Requires EnableTIDebugging=T on the server. PA Code will offer to enable it for you.
The sidebar (click the PA Code icon in the activity bar) is your central navigation:
| Section |
What it does |
| Connections |
All your environments and servers. Connect, disconnect, browse objects. |
| Recently Used |
Last opened processes/rules. Quick re-access and re-execution. |
| Favorites |
Pin processes you use daily (click the ⭐ in the editor title bar). |
| Quick Actions |
One-click access to Search, Server Log, Thread Viewer, Deployment, and more. |
| TM1 Function Reference |
Searchable list of all 200+ TI/Rule functions. Click to insert. |
Key Features
IntelliSense & Autocomplete
As you type, PA Code suggests:
- All TI and Rule functions with syntax tooltips
- Cube names, dimension names, subsets, and elements from your server
- Variable names from your current file
Server Log (Live)
Click the 📋 icon next to a connected server to stream the tm1server.log in real-time. Use the "Load More" button in the status bar to scroll further back in history.
Thread Viewer
Monitor all active TM1 threads with auto-refresh. See what's running, filter by user or function, and kill threads directly.
Chore Manager
View and manage all scheduled chores in a table:
- Toggle active/inactive
- Execute on demand
- Create, edit, delete chores
- View execution history with duration and status
Security Manager
Manage security groups and user assignments with a visual matrix table. Toggle memberships by clicking cells.
MDX Wizard
Build MDX statements visually:
- Subset Builder: Pattern filters, attribute filters, set operations, sorting
- View Builder: Cube selection, axis assignment, per-dimension subsets
Deployment Assistant
Transport processes and rules between instances (e.g., DEV → PROD):
- Select source and target server
- Search and select objects to deploy
- Review changes with diff comparison
- Deploy with one click
Bulk Delete
Delete multiple objects at once (views, subsets, processes). Includes a Global Pattern Search to find objects matching wildcards across all cubes and dimensions.
File Manager
Browse server files (Applications, Blobs, logs) via the REST API. Download files directly.
Press Shift+Alt+F to auto-format your TI code with consistent indentation, casing, and spacing.
Keyboard Shortcuts
| Action |
Windows/Linux |
macOS |
| Search Processes |
Ctrl+Alt+F |
⌘+⌥+F |
| New Process |
Ctrl+Alt+N |
⌘+⌥+N |
| Pull All from Server |
Ctrl+Alt+P |
⌘+⌥+P |
| Server Log |
Ctrl+Alt+L |
⌘+⌥+L |
| Thread Viewer |
Ctrl+Alt+T |
⌘+⌥+T |
| Deployment Assistant |
Ctrl+Alt+D |
⌘+⌥+D |
| Format Code |
Shift+Alt+F |
⇧+⌥+F |
| Toggle Comment |
Ctrl+# |
⌘+# |
| Save (& push to server) |
Ctrl+S |
⌘+S |
Working with Git (Optional)
PA Code works perfectly without Git — you can just connect, edit, and save. But if you want version control and team collaboration, Git adds:
- History: See who changed what and when
- Branching: Work on features without affecting others
- Code Review: Merge Requests before deploying to production
- CI/CD: Automated deployments via GitLab/GitHub pipelines
Basic Git Workflow
# Create a branch for your task
git checkout -b feature/new-calculation
# After making changes, commit them
git add .
git commit -m "Added margin calculation to Finance cube"
git push
Then create a Merge Request in your Git platform to deploy to the next environment.
AI Support
PA Code works with any AI coding assistant available in VS Code:
- GitHub Copilot — Code completion and generation for TI/Rules
- Other AI providers — Any VS Code-compatible AI extension
The AI understands TM1 syntax and can help you write processes, debug issues, and generate boilerplate code.
Security & Privacy
PA Code is built for corporate environments:
- Zero telemetry — No data leaves your machine
- Zero credential storage — Passwords are never saved to disk
- Local only — All communication goes directly from your machine to your TM1 server
For full details, see our Security & Privacy Policy.
Troubleshooting
| Problem |
Solution |
| Can't connect to server |
Check that the REST API port is reachable from your machine. Verify SSL settings match your server. |
| Save fails with 404 |
Server may be unreachable or the object was deleted/renamed. |
| No processes visible |
Make sure you're connected (green icon). Try right-click → Refresh. |
| Debugger won't start |
Ensure EnableTIDebugging=T is set in the server configuration. |
| Autocomplete not showing server objects |
You need an active connection. Disconnect and reconnect if needed. |
Support
For questions, bug reports, or feature requests, please contact the author or open an issue on the project repository.