DataLoad Some reasons for not using this tool with Siebel**This presentation considers the freeware version of DataLoad Classic, more specifically version 188.8.131.52 build40532
This is odd...• Why only the Oracle Consulting would recommend this tool? Because the time to apply data changes during a implementation usually needs to be short
The short time to use this tool is it best quality But there are drawbacks for its regular usage (which have low impact during a Siebel project implementation)
Quick comparative table Advantages Disadvantages● Relative easy to configure ● The results of the process cannot be trusted● Time between configuration and ● Processing time is considerable long usage is quite short ● Unnecessary computing resources consumption from Siebel environment ● A computer must be completely dedicated to it during execution ● It is hard to check results ● Limited access to the application (depending on applets/views)
Unreliable results• Sometimes the Siebel Web Client and/or Internet Explorer may fail to capture the keyboard shortcuts and the operation sequence is compromissed• Besides not being able to change the values of the desired fields it is possible that the data is modified in other, undesired, fields• This kind of error is intermittent and happens (by experience of the author) around 8 to 10% of the total of processed registries• At the end of the process you might have to run everything again (or at least what was not executed correctly in the first time).
Processing time is considerable long• Compared to other alternatives, the performance of DataLoad is bad• And uses more computing resources than the other alternatives
Example of execution Yes, there is a sleep command here... but is there another way to wait for commits? What about callback functionality?
“Unnecessary” computing resources consumption• DataLoad works within the Siebel Visual Layer• Therefore, to change a single field in a applet, Siebel must recover information from all other fields from the data base to build the screen• The more complex is the screen, larger will be the waste of computing resources in all Siebel application layers.
Complete dedication of a computer• DataLoad must have a Internet Explorer/Siebel window opened all the time without changing the mouse focus of it• If mouse focus is lost, the application stops working as expected• The computer will not be able to run any foreground application during the running time of DataLoad
It is hard to check results• How to do that? DataLoad does not have this feature.• It is necessary to compare the desirable data to the changed and systematically compare it with data recovered after the DataLoad process is finished• By “systematically” it is understandable that someone will need to build such thing (even if it is only a MS Excel with some formulas)• Visual verifications are only applicable with really small amount of data to be changed.
Limited access• Since DataLoad uses the visual layer of Siebel, any restriction applied to a view/applet will also restricts what be be accomplished by using those objects• It might be necessary to temporary grant different responsibilities to accomplish the job (or even modify the applet/view/BC)
Alternatives?• Siebel has different alternatives to CRUD data• Each one of them have their advantages and disadvantages• Therefore it is necessary to consider the best scenario to apply them
What we have for today?Siebel has the following alternatives to CRUD data:• COM• Java Beans/JMS• Web services• EIM• eScriptAll those alternatives should follow the default Siebeldevelopment process but, by the other hand, they also have a lotof features to debug and identify errors during the process.
COM• Available in two “flavors”: COM Data Server and COM Data Control• It can be used by installing the thick Siebel Web Client (Mobile or Dedicated)• Available for any programming platform that supports COM (including all applications from Microsoft, including Excel)• Complete access to the Business Layer of Siebel through coding, being able to search, insert, update and remove data
Java Data Beans/JMS• Interesting for Java applications to be able to access Siebel• It also uses the Business Layer of Siebel, allowing the Java application to search, insert, update and remove data• It requires programming in Java/J2EE
EIM• The biggest champion in speed to execute CRUD operations in Siebel• It works exclusively in the Data Layer and that is one of the reasons for its great speed• It works in batch, allowing the control of the batch sizes and commits to the database• It uses to be more time consuming to setup and the complexity of the task is directly proportional to the complexity of the Business Layer model that will be updated• Besides its own configuration it also requires the usage of ETL tools, which are not provided by Siebel
eScript• The default scripting language of Siebel, based on ECMAScript• It also uses the Business Layer of Siebel, allowing the script to search, insert, update and remove data• Since it runs inside a Siebel Server, network communication may have less impact in the overall performance• Unfortunately there are not many functions and features as other programming platforms as Java or those that supports COM• It works better for CRUD operations and simple logic. Doing complex operations (for example, creating MD5 hashes) are particularly slow.
Web Services• Good opportunity to use an already available structure to extend access to Siebel• It is the best option to reduce coupling for integrations• By the other hand, it is the slowest alternative when compared to the others• Doing manual invocation of web services are not really intuitive unless a application is created or a generic one (for example, SOAP UI) is used.
An empirical overview of available options CRUD operations speed Usage ease* Configuration ease* ReliabilityData Loader 1 4 4 1COM 3 3 3 3eScript 3 2 3 3EIM** 4 1 1 4Java 3 2 2 3Beans/JMS***Web Services 2 3 3 3* Bigger is better** Complexity of configuration depends on the data model to be used*** JMS could have better response time for being asynchronous