In the previous chapters of this book, we explored many aspects of configuring Siebel CRM applications in order to adapt the system to our customer's requirements. All the different techniques discussed so far have one thing in common: they are declarative. This means that the developer creates and modifies records in the Siebel Repository and defines objects by editing their properties via the Siebel Tools user interface. At no time is it necessary to modify existing code or write code such as SQL scripts or C++ programs.
In the late nineties, when Siebel CRM was in its early versions and declarative options were limited, for example Siebel Workflow did not exist until Siebel 2000, developers often relied upon the possibility of extending the existing functionality with custom written program code.
Becoming more mature in versions 7 and 8, the preconfigured functionality of Siebel CRM is often sufficient to implement complex requirements...