Sep
14
Siebel Development Tips # 1
September 14, 2009 | Leave a Comment
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!!
Sep
11
Orders of Battle Development Progress
September 11, 2009 | Leave a Comment
Well, things have been chugging along on the development front for Orders of Battle.
I have now completed the rewrite of the windows client and the middle tier to use LINQ and developed a new LINQ for Entities DLL to replace the old data tier that relied on stored procedures. I have also modified my web site to use LINQ and am busy fixing all the problems so that I can deploy it to the web server very soon.
I have written several Windows Services which manage the flow of data from my client machine to my server databases which use LINQ to query the client database in order to generate outgoing messages, write those messages to file, pass the files up to the server, and update the two databases on the server in turn.
In some cases, I have more than one copy of the same windows service running on a specific machine as they are geared to different databases, which is a little tricky but works OK.
So, all that is left is the completion of the web site and its deployment to my web server.
So, where does that leave us?
Well, that means that I am finally in a situation where I can easily add new screens and pages to both the windows client and the website without (hopefully) having to write major amounts of code at the back end.
There are also other areas of development I want to look at: for example, improving the theme of the website to make it look more professional, using a different database for my client database, building a Wiki to manage my research, implementing reports, implementing some sort of analytics, building a Windows CE client etc etc.
I am also quite interested in learning some other .NET languages such as IronPythor or IronRuby, writing a new implementation of the website to use MVC perhaps.
These are all areas where the website provides me with the opportunity to learn and implement new technologies which is one way of keeping my mind in gear!
¼/p>

