The Harness is a modern Siebel development tool, that was built to help a customers Siebel development team to maximize their efficiency, by reducing the amount of time that is lost through the build, compile, and unit test cycle. It was developed off the necessities of integration development, and evolved from some essential use cases.
The Harness is deployed as part of the standard developers tool set, and is currently available to all integrators, configurators and production support staff, along side other necessary tools such as database clients, XML/code editors, source control tools.
It has been about two years since the first alpha version was built, and it has matured into a product that is used for development and production support.
The Harness was originally introduced to readers, in The Harness, and subsequently in The Harness Case Study, in this article, we go through the use cases, and provide videos walk-throughs of common usage scenarios.
Use Case 1 - Expression testing
Siebel expressions can be found universally in Siebel, but they can be notoriously difficult to troubleshoot.
For complex expressions, it is easy to make a mistake, leave out a bracket somewhere, or mis-spell the reference to a field or function, and when Siebel expressions are configured incorrectly, they famously error out silently. This adds significant overhead to the development process, because each change has to be iteratively compiled into the SRF.
The Harness provides an Expression module, that allows developers to simulate expressions in real time
The Harness | VS | Vanilla Siebel | |
https://www.youtube.com/watch?v=JNH6CnGbAGU
Use Case Video: Expression Tester - Lookup Function
https://www.youtube.com/watch?v=w26Ae9Tnfjc
Use Case 2 - Run eScript on the fly
One of the pain points of Siebel development, is the need to make iterative changes to eScript, which requires the developer to compile the changes into the SRF, launch the thick client, and execute the code to build and unit test code. This is another task that adds significant development overhead.
The Harness allows developer to build and test eScript on the fly.
The Harness | VS | Vanilla Siebel | |
https://www.youtube.com/watch?v=jERcYcguYXA
Use Case Video: Script Module - Library Search
https://www.youtube.com/watch?v=KNaSWYiIAfo
Use Case 3 - A modern Business Service simulator
The BS SIM module provides the ability for developers to simulate business services with current application context.
It also provides modern features such as auto complete, and input property helpers, that makes testing Siebel business service behavior much more fluid.
The Harness | VS | Vanilla Siebel | |
https://www.youtube.com/watch?v=xdZKsg4T1kQ
Use Case Video: BS Sim Module - Form Prefill
https://www.youtube.com/watch?v=Y0lsRU9hNEs
Use Case Video: BS Sim Module - History, with eScript generation
https://www.youtube.com/watch?v=umfnsBAGaXs
Use Case 4 - Manipulating the data layer
The BC module provides a tool for the developer to interrogate the configuration behind the current view, as they navigate the Application. The Harness automatically detects the application context, and pre-fills the necessary the form fields to manipulate the current record.
This module a provides developers with the ability to create, update, delete, and query for data behind the UI.
The Harness | VS | Vanilla Siebel | |
https://www.youtube.com/watch?v=mu5hJvqyl9I
Use Case 5 - Learning the Open UI API
The OUI module provides the Open UI developer with a web UI, that integrates with the Siebel session, displays information about the current Screen, View, BO, BC, Applets, and controls, and allows developers to drilldown into the OUI API.
Commands can be executed against the Siebel session using the inbuilt console, and the auto-complete box allows the developer to quickly search through multiple levels of API name spaces, and custom libraries.
The Harness | VS | Vanilla Siebel | |
https://www.youtube.com/watch?v=n-CLyrc_YA8
Other modules
MQ/HTTP Module
The Harness originated from this humble module. The MQ/HTTP module is an essential module for Siebel EAI/middleware developers. It provides a real time interface for sending/receiving messages across message transports. This specialist module provide important prefills on transport parameters, and message templates, that can be used to quickly setup data, and interrogate interface behavior, with XML aware syntax highlighting.
IO/Msg Module
The IO/Msg module is another essential tool for Siebel EAI/middleware developers, that allow messages to be generated, inspected, upserted/inserted/synchronised and converted on the fly.
Server Health Module
The Server Health modules probes the server to provide important information such as the machine that the session is connected to, server disk, memory, and CPU utilization. This has been found to be useful in pin pointing problems in resource constrained environments.
FAQs
Does it work with HI/Open UI?
The Harness was originally designed to work in HI, and has since been ported over to Open UI. It has been tested against HI 8.1, OUI IP2012, IP2013, IP2014, IP2015
Does it replace Siebel tools?
No. The Harness augments Siebel Tools, however depending on the role of the developer, they could spend a significant part of the day in The Harness testing interfaces, and writing unit test cases, reverting to Tools to create the necessary foundation objects.
How long does it take to build such a tool?
2 months to build an alpha version from scratch.
What kind of skill set do I need to build this tool?
Siebel professionals with expertise in eScript, Web professionals with strong JS, UX, and Java is also helpful
I would love to have it as part of my collection, can you send me a copy?
Unfortunately for third party Siebel tool collectors, The Harness is an internal product.
Where can I download it?
The Harness cannot be distributed in its current form.
Can I trial The Harness?
The Harness doesn't have a trial mode
Can I take this tool onto my next project?
The Harness contains specific customer code, and integrates tightly with a client library. Key parts of the program has to be ported, and a suitable core library has to be established, for it to be used on a new project.
Contact me on Linkedin, if you are interested in knowing more.