still going strong Sometimes you stumble across a promising Business Service in Siebel Tools, such as Read CSV File. Of course you do a bookshelf search...a Google search...but did you search in Siebel Tools? What about using the Flat tab and querying the WF Step object type? Currently there are two standard workflow processes that use the Read CSV File business service Import Marketing ContactImport KPIsSo, interestingly enough, Siebel engineers use the Read CSV File business service to import data into Siebel. Let's take a look at the Import Marketing Contact workflow. This workflow is invoked when marketing campaigns are loaded. For more information on this functionality, please refer to the Siebel Marketing guides in bookshelf. Obviously the data for the marketing members comes as a csv file, which is btw generated by the Oracle BI Presentation Server using a Marketing List Format. Inspecting the Campaign Load Formats in the default presentation catalog delivered with Oracle BI Applications and/or studying the documentation on Campaign Load Formats reveals, that the csv files have very specific content in the first two rows. First Row: a hash sign followed by a space (!) and the name of an integration object Example: # Internal Account Interface Second Row: a hash sign followed by a comma separated list of integration component field names, using double quotes and dot notation. Example: #"Account.Name","Account.Location","Account.Primary Organization" Everything from the third row onward is interpreted as data. So a simple test file could look like this: Now let's bring up the good old Business Service Simulator. We are invoking the CsvToPropSet method with the following inputs CsvFileName = path to test file DeleteFile = false (default is true, so we set it to false in order not to lose our test file ;-) The output property set contains a SiebelMessage and a SiebelMessageError child property set, the latter being filled with "bad records" (if any). The SiebelMessage is generated according to the integration object, which acts as a template. This even works with denormalized data, that is you could have the same account name 5 times in the csv file and have a different address each time. When you write the output property set to an XML file it looks like this: In a final test step, we move the output to the input and delete the SiebelMessageError child property set from the test case. Then we run EAI Siebel Adapter using its Insert method and voilá, 3 new accounts appear. Hopefully, this gives you a basic idea how the Read CSV File business service works. As it is used in vanilla workflows, it should be safe to use but due to several reasons I have to put a word of caution here: Please verify with Oracle Sales if you are licensed to use the Read CSV File business service in production. Please pay special attention when using non-documented business services as you might not get support from Oracle. have a nice day...
"Once bitten, twice shy" If you have the opportunity to observe some of the Siebel CRM projects (or any other standard enterprise software project) across the globe, however small or large they may be, there is a familiar pattern: Phase of enthusiasm Learning phase, along with the assurance to "stay close to the standard"Pilot phase during which most of the requirements become clear (and complex)Land of oblivion (where the first thing to be forgotten is the promise of 2.)Regression to coding (believing that writing custom code can solve all problems faster and easier than standard functionality) These are some typical phases (hope you also note the satirical aspect) that a typical project goes through. However, we are talking about standard software, which means frankly that the customizing developers at the customer site find themselves in a race against time and hundreds of developers in the Oracle offices who are determined to create another splendid version (Siebel 8.1 is just around the corner these days). So when a project has matured and all requirements are solved, the upgrade project typically comes next. And it is during the first attempts to upgrade the more or less customized application to the newest version when the whole thing seems to blow up (# 5. of the above list being reason #1 for the blow-up in most cases). So we can add to our list 6. a phase of frustration 7. the vow to stay closer to the standard after the upgrade, which is immediately followed by 8. the requirement to upgrade the application (which is complex) 9. The land of oblivion... - we had that before ;-) To cite a customer: "What does 'close to the standard' mean? How can we solve our very complex requirements if we are not allowed to add custom code? How can we customize the applications and remain upgradeable?" The answer to the first question: "Thoroughly observe and clearly understand the standard functionality and metadata and when you implement solutions, let your developers behave the same way the developers at Oracle do." Let's elaborate on this using the Siebel CRM Repository as an example. Since Siebel 7 was brought on the market in 2001, we can observe that any new module (e.g. Siebel Loyalty in 7.7, Customer Order Management in 7.8), however complex its functionality may be, can be dissected into the following: 1. The basic objects Metadata objects like applets, business components and tables which allow users and EAI processes to create, read, update or delete data needed for the new module. The Siebel Essentials or Core Consultant Course teaches how to create and modify these objects and how they refer to each other. The following is a chart familiar to those who benefited from these courses Summing up, we can say that adding or modifying objects of these 10 basic types is "close to standard" because this is exactly the way how the standard application is created. OK, we now have nice views and applets and they allow us to read and manipulate data. But how does the additional functionality come in here? The answer is: 2. Business Services These are metadata objects which (since Siebel 2000) serve as globally accessible capsules of functionality (i.e. code). So whenever an Oracle developer is asked to implement some functionality that is not available in the current application, he or she will write code and place it in the repository as a business service. This is in fact the answer to the second question: You are indeed allowed to write custom code, but you should have it written as a business service" and - being a loyal Oracle University instructor - I would add "And your developers can learn how to do this in the Siebel Scripting Workshop." A quick look at the current standard Siebel CRM repository (SIA 8.0) reveals a rich library of more than 1000 highly reusable and well-documented (along with many not-at-least-documented - keep your fingers off those) business services. List of business services in Siebel Tools OK, so we now have the data access and reusable services, but what if I need to call these services one after the other and combine them with my custom code. This leads us to the 3rd ingredient of standard Siebel CRM applications: 3. Workflows Siebel Workflow allows developers to combine classic Siebel operations like creating or updating records with standard or custom business services along with decision logic and exception handling. Siebel Workflow is highly scalable and tests have proven a very high performance (outdoing scripted code by factors). The tool of choice of Oracle developers to orchestrate reusable services into, yes, yet another service (that's what a workflow really is: just another service which you can call from literally anywhere) is Siebel Workflow. Open the list of standard workflows in Siebel Tools and see for yourself. The current version (SIA 8.0) comes replete with more than 1000 standard workflow processes for literally any kind of functionality such as pricing, integrating with SAP, marketing or customer-facing processes such as quote-to-cash or forgotten passwords. Example for a standard workflow Summary (= Answer to the third question and I will make this short): Focus your customizing investment on the 10 basic objects, business services and workflow and your project is close to the standard and therefore easily upgradeable....
If you use an RSS reader, you can subscribe to a feed of all future entries tagged 'standard'.