White Paper. The Power of Siebel escripting at Runtime. Bringing Siebel Developer Closer to Rapid Application Development



Similar documents
Desktop Management for the Small Enterprise

Software Development Kit

What are the benefits of Cloud Computing for Small Business?

Questions to address while reviewing CRM software

MICROSOFT SERVER LICENSING IN A VIRTUAL ENVIRONMENT. Brought to you by Altaro Software, developers of Altaro VM Backup

Neat Cloud Service + Mobile App

7 Questions to Ask Video Conferencing Providers

7 Signs You Need Advanced Analytics for Salesforce.com (or any CRM)

The Social Accelerator Setup Guide

Using Karel with Eclipse

Why Alerts Suck and Monitoring Solutions need to become Smarter

Updating KP Learner Manager Enterprise X On Your Server

YouTube Channel Authority - The Definitive Guide

Manual Tester s Guide to Automated Testing Contents

Page 18. Using Software To Make More Money With Surveys. Visit us on the web at:

All can damage or destroy your company s computers along with the data and applications you rely on to run your business.

Web based training for field technicians can be arranged by calling These Documents are required for a successful install:

Meister Going Beyond Maven

Getting Started Guide

Delivering Field Service Management... on the Microsoft Dynamics Platform

Product Overview. Dream Report. OCEAN DATA SYSTEMS The Art of Industrial Intelligence. User Friendly & Programming Free Reporting.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Only Athena provides complete command over these common enterprise mobility needs.

Contents. Introduction. What is the Cloud? How does it work? Types of Cloud Service. Cloud Service Providers. Summary

DevForce WinClient. DevForce Installation Guide

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

Clickfree The Effortless Backup Solution

Measuring and Monitoring the Quality of Master Data By Thomas Ravn and Martin Høedholt, November 2008

A Simple Guide to Churn Analysis

VDI May Not Be The Right Solution

Visual Scoring the 360 View: 5 Steps for Getting Started with Easier, Faster and More Effective Lead Scoring

Custom Javascript In Planning

Using the Push Notifications Extension Part 1: Certificates and Setup

Materials Software System Inc. Recruitment Process Management White Paper

The new features of Microsoft Dynamics NAV 2016

5 barriers to database source control and how you can get around them

Bringing the Cloud into Focus. A Whitepaper by CMIT Solutions and Cadence Management Advisors

The Software Developers Guide to. Making Your Program Work With. Microsoft App-V. Tim Mangan. TMurgent Technologies, LLP

Graphical Environment Tool for Development versus Non Graphical Development Tool

Managing Applications: How much money can you save with a Collaborative Workflow tool?

IDrive, is a service offered by Pro Softnet Corporation, an ASP and Internet Solutions Provider, based in Woodland Hills, CA.

PHP Tutorial From beginner to master

Why Your SIEM Isn t Adding Value And Why It May Not Be The Tool s Fault. Best Practices Whitepaper June 18, 2014

Microsoft Office Access 2007 Training

CRM. Booklet. How to Choose a CRM System

Setting Up Dreamweaver for FTP and Site Management

Integrating Secure FTP into Data Services

WHITE PAPER. 5 Ways Your Organization is Missing Out on Massive Opportunities By Not Using Cloud Software

Power Tools for Pivotal Tracker

Trend Micro KASEYA INTEGRATION GUIDE

Testing, What is it Good For? Absolutely Everything!

Application Testing Suite: A fully Java-based software testing platform for testing Oracle E-Business Suite and other web applications

How to Select and Implement an ERP System

The Deployment Production Line

TUTORIAL ECLIPSE CLASSIC VERSION: ON SETTING UP OPENERP 6.1 SOURCE CODE UNDER WINDOWS PLATFORM. by Pir Khurram Rashdi

Technical Writing - A Guide to the Najobe System

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide

Resco CRM Guide. Get to know Resco CRM

Using Form Scripts in WEBPLUS

F Cross-system event-driven scheduling. F Central console for managing your enterprise. F Automation for UNIX, Linux, and Windows servers

The Importance of Defect Tracking in Software Development

Keyword Research: Exactly what cash buyers, motivated sellers, and private lenders are looking for online. (and how to get in front of them)

WHAT IS AN APPLICATION PLATFORM?

Getting started with OWASP WebGoat 4.0 and SOAPUI.

Testing Rails. by Josh Steiner. thoughtbot

SOFTWARE INSTALLATION INSTRUCTIONS CLIENT/SERVER EDITION AND WEB COMPONENT VERSION 10

Key Benefits of Microsoft Visual Studio 2008

Programming in Access VBA

Optimizing Your Database Performance the Easy Way

Making the Transition from VAR to MSP. Four essential requirements for building and running a successful managed services business

Addressing Archiving and Discovery with Microsoft Exchange Server 2010

WHITE PAPER RUN VDI IN THE CLOUD WITH PANZURA SKYBRIDGE

ScrumDesk Quick Start

How To Integrate With Salesforce Crm

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

CRM SOFTWARE EVALUATION TEMPLATE

Making a Web Page with Microsoft Publisher 2003

CASE STUDY Searching SQL Server databases with SQL Search at Republic Bank

Club Accounts Question 6.

Using InstallAware 7. To Patch Software Products. August 2007

Continuous Integration

Lecture 2 Mathcad Basics

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol

Reporting Services. White Paper. Published: August 2007 Updated: July 2008

Transcription:

White Paper The Power of Siebel escripting at Runtime Bringing Siebel Developer Closer to Rapid Application Development A Simple Technique to Boost Productivity and Improve the Quality of Scripting in Siebel Introduction Siebel CRM is clearly the market leader in CRM. Siebel Systems helped define the term CRM and sell the idea to businesses large and small. While the product is great, customization through scripting has generally been an area where Siebel was never strong, always lagging compared to traditional development environments. This was due to the fact that Siebel Systems had no interest in developers writing code, as that would get in the way of upgrades. While scripting is generally a last resort, it seems to happen a lot in projects. And when it does, the result is rarely as robust as end users would like. Siebel has made many changes to their Tools environment over the years, to help bring it to modern-day development standards. And yet, coding remains tough, debugging is clumsy and it is difficult to isolate pieces of the application and test them independently. The resulting code is brittle, often lacking modularity, with poor error handling. In this paper we set out to identify what we think are the chief reasons for poor scripting. We then propose a new technique and a simple, yet powerful tool to address the underlying problems. Building Quality through Iterations Most experienced developers who write code will tell you that unless you are writing something trivial, it will not work the first time you write it. There are many reasons for this, but mostly it s because writing a new piece of code is partly done through discovering what does and does not work. Therefore, the key skill in development is not so much knowing syntax or having perfect logic, but knowing how to debug your code and improve it incrementally. Typically, developers go through several iterations of code-compile-test before they reach a solution that works in all situations. So, we have determined, over the years, that in Siebel, just like any other development environment, what matters is how quickly a developer can go through the code-compile-test cycle and learn what works.

The Challenge with Tools Siebel Tools has traditionally been a fairly clumsy place to write code. In recent versions, it is getting better, providing features like IntelliSense and syntaxhighlighting, and more recently the fix-and-go feature in Siebel 8.0. Nice as these features are, they don t make it any easier to answer questions, such as: 1. You can t not easily extract a piece of code like a simple function and test it independently to see what it would return with different input parameters. 2. You still have to compile your code initially, before you can use advanced features like Fix-and-Go. 3. You can t play with Browser scripts just Server script. Ok, this one is not the end of the world, but nice to have. 4. You can t quickly and easily try out things on your server like writing script and running it directly on your server without even having to deploy an SRF. 5. You can t experiment with server-side components, such as MQ, e-mail integration or anything else that does not run well in the Mobile Web Client. 6. If you need an instant answer to a question such as how does the indexof() method work on strings is it 0-based or 1-based? You are itching to code it somewhere e.g. SomeString.indexOf( Some ) and run it. If you did, you would instantly know from the value of the expression, that it is 0-based. 7. If you are wondering what SQL the EAI Siebel Adapter generates when you do a Synchronize vs. an Upsert, how can you quickly test it? 8. Say your tester found a situation where your script is not working. It would be nice to be able to jump right on their Thin Client (possibly using remote desktop) and right on the failing screen, check out what fields are active, what profile attributes were set. The list goes on and on. The basic challenge with Tools is that it is not geared towards allowing you to quickly learn from mistakes. Instead, it is simply a vehicle to get your script into the SRF. What you need is a runtime experimentation lab that would allow you to try out scripts and built-in components in many different ways and learn how they work as you craft your script.

What about Documentation? Surely you can read it to learn, instead of doing trial and error learning. While useful, documentation for any product and Siebel in particular, has several issues: 1. Developers are notorious for not reading documentation. They would much rather: a. Copy someone else s code that looks like it may work; b. Write their best guess in code and then run the code-compile-test cycle to learn why and when it doesn t work; c. Ok, sometimes, in frustration, they will look at the docs, but 2. The Siebel documentation is notorious for not providing meaningful examples, if any. This, of course, is part of the discourage scripting strategy, which we can t blame them for, as they are a vendor and it s in their best interest. 3. It is impossible to cover every coding possibility in documentation. You need to try it out. And quickly.

An Interactive Siebel escript Execution Console The codeferret In our tireless multi-year efforts to demystify and simplify Siebel scripting, we have come up with a new tool the codeferret, which allows developers to take a different approach to scripting altogether. What is the codeferret? It s an elegant Siebel escripting console window that can be opened with a single key-stroke on both the Web Client and Thin Client, it runs alongside the Siebel application inside your session, and allows you to execute arbitrary code inside your Siebel session. Here is a screenshot: As simple as it sounds, the codeferret comes in very handy and solves a lot of the challenges outlined in the sections above. All you have to do is write the code in the upper (Input) pane. You then press the Server or Browser button to execute your script against the OM or the Browser, depending on what you are testing. The results instantly show up in the lower (Result) pane.

In the section below we ll go over a simple example which illustrates the power of using this technique. Suppose You re Wondering how Some Function or Component Works Let s say you are writing a piece of code which would calculate how many days there are between two dates. Let s go through a typical thought process, assuming we are completely new to this problem. You know there is a Date() object, but you don t see any methods to add and subtract dates. So, you look at the other methods available most of them get and set different components of the date, but none of them does arithmetic. You wonder: What if I create two date objects and try to subtract them would that work? So you type into the input pane of the codeferret: var d1 = new Date( 6/5/2007 ); var d2 = new Date( 6/4/2007 ); // some date // previous date return d1-d2; // difference between the two Oddly enough, you get this in the result pane: 86400000 Now, you wonder, what the heck does this number mean? So you change the dates to see if the number changes: var d1 = new Date( 6/5/2007 ); var d2 = new Date( 6/3/2007 ); // some date // two-days ago return d2-d1; // difference between the two The new result is double the initial number (you can divide them in the codeferret): 172800000 Clearly, this number somehow represents the difference, so you wonder if it is in seconds. To calculate the days in seconds, you type the following into the codeferret: 24*60*60 // twenty four hours x 60 minutes x 60 seconds And you get the answer in the result pane: 86400 Ok, so there are 3 more 000 s in our d1-d2 example, so then you conclude it must be in milliseconds.

At this point we have discovered that this works, and that all we need to do to write our function is create two date objects, subtract them and divide the difference by 86400000. Problem solved! Now, you can test out a function in the codeferret before you plug it into Tools. You type it out in the Input Pane: function DateDiff( d1, d2) { return (new Date(d1)-new Date(d2))/86400000; } return DateDiff( 6/3/2007, 6/1/2007 ); Notice how we defined the function, then we immediately unit-tested it below by calling it with some test values and returning the result to the Result pane of the codeferret, which, as expected, shows: 2 That s it. All you do now is copy and paste your function in Tools, knowing with absolute confidence that it would work before you have ever compiled it into the SRF. This is just a very simple example, but it shows you the power of being able to instantly know if something will work or not you just try it and know right away. No need to compile, fix-and-go, or anything in fact no need to fire up Tools at all until you are ready to enter your code. In fact, there is even no need to fire up a Web Client you can just point your browser to the Thin Client and know instantly from anywhere you have access. Conclusion We have seen this concept in use on a project which is worth around $35M, involves 4000 users and is heavily integrated with a large proportion of scripting and heavy use of EAI. On average, once developers make a shift in perspective and freely use it, the codeferret will save you 30% or more in development time alone. On a $35M project, of which $3-5M is spent on development, and with scripting comprising 30% of the total development, we are talking a savings of around $270,000 to $450,000. Even if scripting was only 10% of the project work involved, you are still talking $90,000 to $150,000 savings. In addition, the speeding up of the code-compile-test cycle leads to much better script quality, as developers can experiment and unit-test with flexibility and ease. Finally, this tool is not limited to just writing code prototypes. It can be successfully used to import/export data from Siebel IOs, get/set profile attributes, and automate unit tests for Business Services.

New applications of this elegant and helpful tool are yet to be discovered. So, we encourage you to give this technique and tool a try, we believe you will see the benefits, of which we have been speaking. Take a test drive! Download the tool at: www.toolsandmethods.com While you re at our website, take a look at the related topics on our blog and forum pages. Let us know your thoughts and questions. Thanks.