In almost all the implementation of Siebel Application we come across the requirement as – “Bring the data from the external source and display” well for that in Siebel the solution is External Business Component (EBC) and Virtual Business Component (VBC). In this Blog the content is specific to EBC, so let me give the defination of EBC first then the process of creating it –

Defination:

EBC is a method used when there is a need to display data which is external to siebel. The external schema is imported into siebel tables using a wizard. Once the exteranal schema is imported, to display this data in an applet, the configuartion is going to be the ame as creating a BC, an Applet,a View etc.

Steps of Creating:

1. get the DDL file for your external table.
here is how a sample ddl file will look like:

CREATE TABLE TPMS.EBC_VEC
(
demo1 VARCHAR2(20),
demo2 VARCHAR2(20),
demo3 NUMBER(10)
)

2. Use siebel object creation wizard to create this table.
File –> New Object –> External Table Schema Import

3. The wizard will ask for following inputs:

i. Select Project this table will be part of from the list –
ii. Select the database where external table resides – Enter the database, for this example it is Oracle Server Enterprise Edition
iii. Specify full path of the file where table definition resides –
iv. Specify a 3 digit batch code for this import – eg 001
v. Click on Next and then click on Finish

4. This will create your External table. with a name like EX_001_0000001. The names of External tables begin with “EX_” the next 3 characters are batch codes and the rest is just a serial number.

* The Type field will be “External” for this table.
* You will also have to map one of the table columns to the Siebel’s Id field. to do this: go to the desired table column and in the “System Field Mapping” column select “Id”

5. Changes to be made in cfg file now follow the below steps

  • create an entry for a new datasource under [DataSources] section

TPMS = TPMS

  • add a new section [TPMS] to describe the datasource params:

[TPMS]
Docked = TRUE
ConnectString = VECDEV
TableOwner = TPMS_INT
DLL = abc.dll
SqlStyle = OracleCBO
DSUserName = vecdev
DSPassword = vecdev

  • Now that you have defined the Datasource in cfg file, go back to siebel tools and add the datasource to your external table. Go to your external table, and go to the Data Source and add a new record:
    Name = TPMS
  • External table is now ready for use in a EBC.

Use siebel object wizard to create a BC based on this table. Once the BC is created, change the Data Source property of the BC to “TPMS” .You are now ready to use this BC in a applet/view.

In the above process the description is about an external data source called TPMS and we are fetching the  data from TPMS to Siebel.

But what if we come across a bit more complex requirement … suppose the data is in siebel but it should not be modified from the front end or from the back end (unless and untill one has right to do so) just like an external data source schema. Or let me put it as can we make EBC on the same database we are working i.e. Siebel Database???

The answer and solution is the same Yes we can create an EBC based on the same database but for that we need to create a different DSN and then follow the steps given above.

Please feel free to put comments/questions/ideas

Inputs by Abhinav

Posted by Vimarsh Ganju
Comments (6)
August 30th, 2008

Comments (6)

Goutem - July 23rd, 2010

Hello All, Does any one have any Information on SOA Architecture Specific to EBC or How they are related or How EBC fits in SOA Architecture. Quick response will be highly appreciated. Thanks, Goutem

Raj - July 21st, 2010

How does EBC fit into SOA architecture.

JickyJack - November 5th, 2009

Question on EBCs over top of a database view: Suppose the view is constructed as a lookup and has no unique key? Can a column in that view still be specified as the System Field Id? Also - another question on the joins - can the EBC effectively be used as a child in a 1:M? Thanks, ~Nick

Jan - February 11th, 2009

Hi, I have to disagree with your last remark that you need to create a different datasource to access an EBC based on a table in the siebel database. We have created a materialized view within the siebel schema. Then defined it as a external table (type external) and created an EBC on it. You have to set the datasource of the EBC and the table definition explicitly to ServerDataSrc, but you do not need to create a new datasource in your cfg or in Profile Configuration. I have done this with views and with tables. (Siebel 7.8.2.9 and Siebel 7.7) Another remark, be careful with joins to these external tables. It can work, however siebel usually queries the external table separately and then performs the join within the siebel datalayer. Usually this has a high impact on the performance. Better not make joins unless the External table is small. The same applies if you make a join between an EBC and an external table. What we normally did was to create a view on the external db to join all necessary data from that db and then create an EBC based on that view. This way you force that all the work is done on the external database (disavantage: it's read only). Regards, Jan

nag - December 2nd, 2008

you can relate using link as usual

Donyko - October 17th, 2008

hello, a question. How can I connect with the EBC and BC CUT Address? understand Spanish? hola, una pregunta. ¿Como puedo hacer para relacionar el EBC con el BC CUT Address?

Comments are closed.