Finacle Script Studio
Enterprise Language Support, Real-Time Diagnostic Compiler & IntelliSense for Infosys Finacle CBS Scripting
Developed & Engineered by Ovais Khan
Features •
Quick Start •
Finacle Cheat Sheet •
Settings •
Offline Install •
Author
Overview
Finacle Script Studio is an industrial-grade VS Code extension and Language Server specifically engineered for Core Banking Solution (CBS) developers working with Infosys Finacle. It brings modern software engineering intelligence to Finacle Script (.scr, .sscr) and Maha Report Templates (.mrt, .mri, .rip).
Featuring a sub-15ms custom compiler and static analysis engine, it catches syntax errors, runtime crashes, repository scoping violations, SQL bind mismatches, and user-hook typos before scripts are uploaded to the CBS application server.
Key Features
1. 3-Tier Repository & Class Scoping Engine
- Strict Hierarchy Validation: Validates existence of Repositories (
CREATEREP), Classes (CREATECLASS), and Fields (REP.CLASS.FIELD).
- Runtime Guard Exemptions: Automatically exempts fields checked inside
FIELDEXISTS(REP.CLASS.FIELD) guards.
- Standard Finacle Repositories: Built-in support for
BANCS.INPUT, BANCS.OUTPUT, BANCS.STDIN, BANCS.STDOUT, BANCS.INPARAM, BANCS.OUTPARAM, and CUST.
2. Bidirectional Cross-Script Repository Flow
- Caller Inheritance: Scripts invoked via
call("child.scr") inherit all repositories, classes, and fields created by the parent script.
- Callee Exposure Hints: When a child script populates fields in an inherited repository, the parent caller script detects it and displays a subtle informative hint (
...) showing exactly which child script defined the field.
3. Typo Detection & Intelligent Suggestions
- 295+ User Hooks (
urhk_*): Validates every user hook against official Finacle CBS definitions. Typos like urhk_SetOrWarning instantly suggest urhk_SetOrbWarning.
- Keywords & Built-in Functions: Detects misspellings such as
prnt(...) and provides one-click fixes to PRINT(...).
- Compound Logical Expressions: Full native support for
AND, OR, and NOT in IF (...) THEN statements.
4. SQL Bind Variable Verification
- Real-time verification comparing
?SVAR placeholders in SQL queries against pipe-delimited values in BANCS.INPARAM.BINDVARS. Catches runtime ORA-01008 ("not all variables bound") errors during development.
5. Finacle 128 KB Architecture Guard
- Real-time diagnostic warning when
.scr files approach or exceed the Finacle script engine buffer limit (128 KB), preventing application server crashes.
6. Rich Autocompletion & Hover Documentation
- Autocomplete suggestions for all Finacle keywords, control structures, and repository objects.
- Rich parameter tooltips and signature documentation for all
urhk_* hooks and string functions (TRIM, MID$, RPAD, FORMAT$, etc.).
7. Maha Report Template (MRT) Support
- Dedicated syntax coloring, section delimitation, and formatting for Finacle Maha Report Templates (
.mrt, .mri, .rip).
Finacle Cheat Sheet
Common User Hooks
| User Hook |
Description |
urhk_B2k_PrintBuffer("BANCS") |
Prints full contents of a repository to Finacle console log. |
urhk_dbSelectWithBind(query) |
Executes an SQL query using bind variables from BANCS.INPARAM.BINDVARS. |
urhk_dbCursorOpenWithBind(query) |
Opens an SQL cursor with bind variables. |
urhk_dbCursorFetch(cursor) |
Fetches the next record from an open cursor. |
urhk_dbCursorClose(cursor) |
Closes an open SQL cursor. |
urhk_SetOrbOut(field) |
Passes output field back to Finacle front-end (Finacle e-Banking / CRM / Core). |
urhk_SetOrbWarning(msg) |
Displays a non-blocking warning popup to the bank teller. |
Repository Lifecycle
# Create repository and class
IF (REPEXISTS("CUST") == 0) THEN
#{
CREATEREP("CUST")
#}
ENDIF
IF (CLASSEXISTS("CUST", "DATA") == 0) THEN
#{
CREATECLASS("CUST", "DATA", 5)
#}
ENDIF
# Assign field
CUST.DATA.accNum = BANCS.INPUT.foracid
# Delete repository when finished
IF (REPEXISTS("CUST") != 0) THEN
#{
DELETEREP("CUST")
#}
ENDIF
Extension Settings
Configure Finacle Script Studio via settings.json:
| Setting |
Default |
Description |
finacle.formatting.uppercaseKeywords |
true |
Automatically formats Finacle keywords (IF, THEN, WHILE, DO, etc.) to canonical uppercase. |
finacle.diagnostics.checkSqlBinds |
true |
Validates that SQL ?SVAR count matches BANCS.INPARAM.BINDVARS pipe count. |
finacle.diagnostics.checkFileSize |
true |
Warns when script approaches or exceeds the Finacle 128 KB buffer limit. |
finacle.diagnostics.crossScriptInheritance |
true |
Enables bidirectional cross-script repository flow analysis across call("...") chains. |
Offline Installation (Office / Bank PC)
Finacle Script Studio is packaged as a 100% self-contained, zero-dependency .vsix file. No internet connection, npm, or Node.js is required on your office PC.
Installation Steps:
- Copy
finacle-script-studio-1.1.3.vsix to a USB drive or your office computer.
- In VS Code, press
Ctrl+Shift+P (or Cmd+Shift+P on macOS).
- Type Extensions: Install from VSIX... and press Enter.
- Select
finacle-script-studio-1.1.3.vsix.
- Alternatively, install via terminal / command prompt:
code --install-extension finacle-script-studio-1.1.3.vsix --force
Author & Acknowledgments
- Developed & Engineered by: Ovais Khan
- Target Platforms: Infosys Finacle 10.x, 11.x, Core Banking Solution (CBS)
- License: Enterprise CBS Development License
| |