The Harness: Use Cases


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


  • Provides the ability to simulate Siebel expressions in real time
  • Supports documented Siebel expressions
  • Supports undocumented Siebel expressions
  • Supports BC Field, and WF property notations


  • Expressions cannot be simulated in Siebel
  • Use Case Video: Expression Tester - Fun with Timestamp
    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


  • Write, test eScript on the fly using a web browser
  • Supports ST and Non ST Script engine
  • Supports custom script libraries
  • eScript can be run locally, on the server, or asynchronously
  • Code indenting, highlighting, JS code hints for Non ST engine
  • Library feature integrates with JSDoc comments for documentation
  • Code can be generated from predefined templates
  • Can be used to inspect runtime object variables


  • Traditional eScript needs to be compiled into the SRF, re-triggered, and retested after each change
  • Developers also have the option of using the notepad like client side business service editor
  • Use Case Video: Script Module - Run eScript on the fly
    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


  • Auto-complete data for business service names, and business service methods.
  • Auto-complete data for business service input arguments, workflow process inputs, and BRP Process inputs
  • Supports Siebel expression notation
  • Converts XML into SiebelMessage/PropertySet/Hierarchy, as an input into the service
  • Simulate any business service with current application context
  • Can be configured with project specific form prefills
  • Test cases can be saved, restored and persisted between sessions


  • Using Business Service Simulator the developer has to click new record, open the Pick applet, and use a wildcard search to get the service name, or method
  • Similarly for input property name/value, the developer has to click new record, open the child applet, click new record, and enter in a each name/value pair
  • No input property argument is provided
  • Complex hierarchies has to be manually constructed, or shifted from the back of another business service invocation
  • Simulation only works under the Business Simulator BO
  • Test cases history is not available in the UI, it has to be saved/restored from a file system location.
  • Use Case Video: BS Sim Module - Autocomplete Fields
    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


  • Detects UI context, and allows CRUD operation with a web UI
  • Supports non UI context objects
  • Tools configuration is exposed through the BC module UI


  • Developers have to use a combination of "About view", a SQL tool, and Siebel Tools
  • Use Case Video: BC Set Readonly Field
    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


  • About View with object inspection
  • Learn the Open UI API by browsing on screen objects.
  • Console with access to the Siebel session
  • Indexes and provides auto-complete search for multiple script libraries
  • Automatically probes and displays information, from methods that return data


  • Developers can manually look at source code, or memorize documentation
  • Open UI developers still have to use About View", and lookup the corresponding configuration in Tools
  • Use Case Video: Open UI API Browser
    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.