Sep
14
Siebel Development Tips # 1
September 14, 2009 |
I thought I would start to share useful programming/database solutions and fixes that I come across in both my professional and personal programming existences.
This is both to share my experience with others and to provide me with a scrap book of code that I can re-use in the future.
Personally, I develop in .NET, VB.NET, C#, SQL Server, T-SQL, ADO, LINQ etc and I write about this here on a regular basis.
Professionally, I do both Siebel EAI development and UI configuration in Siebel Tools. Siebel is a CRM Product that was developed by Siebel Systems and is now (like so many technologies) part of the Larry Ellison stable.
EAI stands for Enterprise Application Integration and involves writing Siebel Business Services, Workflows, Integration Objects, Data Maps etc with a goal of enabling Siebel systems to exchange messages and data with other non-Siebel systems, both internal and external to the client. Data can be exchanged via Web Services, Queueing Systems such as MQ or MSMQ, Files via FTP, and/or via HTTP.
The main difference between developing for Siebel as opposed to writing .NET is that in Siebel one does not have any access to the inner workings of the product as it’s functionality is enclosed in C++ Classes. All one can do is “tinker” around the edges using Siebel Tools. The closest one can get to “proper” programming in Siebel is to write new Business Services in eScript or to modify Business Components or Applets in eScript.
However, nowadays it is generally not regarded as good practise to modify Applets and Business Components with eScript unless absolutely necessary. In some sites, the use of any eScript at all is not allowed.
My personal belief is that eScript has its place but should be used carefully and only when necessary. Sometimes, however, use of eScript is the best solution.
Having said all that, here is your first Siebel tip which I discovered on Friday.
In Siebel Workflow, there is no function for a carriage return line feed so if you want to populate a text field and format the contents so that they appear on separate lines, there is no simple way to do it.
When faced with this in the past, my response has been to write some eScript in a Business Service to return the CRLF escape sequences to the calling routine. The workflow can then call your business service to populate a process property with the CRLF characters and it can then use that process property as and when required.
My current client has a strong policy against eScript except where absolutely necessary so I was please to discover that there exists a “vanilla” Business Service in Siebel 8 which returns CRLF as a return argument.
This Business Service is called SSSE Address Parser (eScript) and it has one method GetCRLF.
That solved my problem!!

