What is Serenji? Serenji is a visual software development environment. It integrates editing and debugging facilities for the development of Caché, Ensemble and M code.
How will Serenji help software developers? An integrated environment speeds up the software development process. The developer no longer has to switch into a separate debugger to find out where the problems with a piece of code are, and then switch back to the editor to make any necessary changes. A high quality debugger also helps in producing high quality code.
What does the editor have to offer?

Serenji includes all the facilities which you have come to expect from a standard Windows editor. Other features are designed specifically to meet the needs of coders:

  • Dynamic syntax-coloring and highlighting which means that syntax errors are instantly visible, even in the line which is currently being coded
  • 'Jump' option which allows you to move quickly to other code segments which are referenced by the code
  • Print facility which prints out the code with the same colored syntax for maximum readability
What kinds of application can be debugged with Serenji?

Serenji is unique in the range of applications which it will debug. These include background jobs, Caché Objects applications, Zen pages, Caché Server Pages, WebLink applications, MSM-Activate and Visual M applications, as well as legacy character-based applications.

When debugging a Caché Objects application with Visual Basic code on the client and Caché ObjectScript on the server, for example, the two are seamlessly integrated. The interfaces are also compatible: Serenji uses the same keys as the Visual Basic debugger.

What does Serenji have to offer for Caché, Ensemble and M programmers?

Serenji is a visual development environment with an intuitive interface, consistent with industry standards. It is easy to learn and use, so developers can reap the benefits from day one.

A single development environment can be used to develop code on a variety of M implementations, making life much simpler for the developer. There is no longer a high learning curve for each implementation, and no need to remember the idiosyncratic syntax and functionality of each debugger.

Another significant advantage over other available debuggers is that the application and the development environment have separate windows, so they do not interfere with each other's display.

Why is Serenji better than using the 'break' command?

In Serenji, breakpoints are dynamic. The developer can enable or disable them while the routine is executing, rather than having to wait until execution has finished. This means that the developer can adjust the debugger's behaviour in response to what has been learned from the current debugging session. There is no limit to the number of breakpoints which can be set.

In Serenji, the breakpoints are soft, meaning that they are not contained in the application code. This avoids the inadvertent release of application code with hard breaks still in the code.

Breakpoints set in Serenji are preserved after the debug session has finished, so they are still available for the next time through.

What debugging information does Serenji provide?

Serenji has the following windows, providing the user with comprehensive and clear information about their process:

  • Code windows - a separate window for each script or routine, including all of those which are currently in the execution stack
  • Stack window - all the stack levels at the current point of execution
  • Variables window - the names and current values of local variables and arrays, either all of them or only those at the current stack level
  • Breakpoints window - all currently set breakpoints
  • Immediate window - allows the programmer to execute Caché ObjectScript or M commands while in debug mode
What debugging commands does Serenji support?

Developers using Serenji can move through their code using any of the following options:

  • Step in
  • Step over
  • Step out
  • Run to cursor
  • Go
  • Fast forward

The stepping options can be set to operate per command or per line.

What kinds of breakpoint can I set?

Developers have complete control over when Serenji will enter debug mode. The following kinds of break are available:

  • Conditional breakpoints which break at that point only if a specified criterion is true
  • Delay breakpoints which break after a specified number of executions of a command
  • Data breakpoints which break any time the value of a variable changes (like watchpoints)
  • Standard breakpoints which interrupt execution every time a point in the code is reached
  • Break on error which breaks when there is an application error
  • Run to cursor
  • Break at the start of execution
What does Serenji offer for developers whose main experience is with other languages?

The Serenji interface is consistent with industry standards. If programmers are familiar with the MS Visual Basic or other similar visual development environments, they will be able to use it immediately with little or no learning curve.

What platforms does Serenji run on?

Serenji works on a client/server model. The client is a Windows PC, or a Linux or OS X workstation. It connects to a server via TCP/IP. Currently it can be used to connect to a server running any of the following:

  • Caché 2008.1 or later, or Ensemble
  • DSM 7.1 or later
  • GT.M 5.3-003 or later
  • M21 2.14 or later
  • MSM 4.4 or later
How many servers can I install the server software on? You may install the Serenji server software on as many servers as you wish.
How many separate Serenji sessions can I run on a workstation? Serenji supports up to 10 separate sessions to one or more servers.
What are the advantages of the Serenji license model? Serenji is licensed for each client workstation which it is installed on. No additional licenses are needed for the servers to which the clients attach. This both saves money and makes implementation and support simple.
How much does support for Serenji cost? Included in the cost of the client license, you get support via email on a best endeavor basis, as well as bug fixes.
What is the policy on software upgrades for Serenji? Major version upgrades are not included in the Serenji client license.

Only customers with the appropriate Software Support Contract will automatically qualify for these upgrades. Please contact us for further details.

Why is it called 'Serenji'?

Se-ˈren-ji A term for "Software Re-engineering", say it fast.

Se-ˈren-ji Derived from the name of the town in Zambia where the lead developer was born.

Se-ˈren-ji A service-based design model, used to re-express our established re-engineering technology.

Which do you prefer?

How do you say 'Serenji'? International phonetic notation: /səˈrendʒɪ/
What are the major features and benefits of Serenji?


  • Visual interface
  • Low-cost deployment
  • Rich feedback
  • More control


  • Easier to learn and use
  • One-for-one client license, no additional expensive server licenses required
  • Higher productivity
  • Fewer errors; better quality applications; lower development and support costs
What do I need to run a Serenji client?

A workstation which runs Windows 7, 8, 10, Windows Server 2003, 2008 or 2012, or Wine 1.8 or above and is networked via TCP/IP to a compatible Caché or M Server. A server running on the same workstation can be used via the TCP/IP loopback address,

Request further information