Siebel Tools Reference > Data Objects Layer > Tables >

Extension Tables


An extension table provides additional columns to a data table that cannot be directly added to the original table because the underlying DBMS may support only a limited number of columns, or will not allow adding a column to a table once it is populated with data. An extension table allows you to provide additional columns for use as fields in a business component without violating DBMS or Siebel application restrictions.

An extension table is a logical augmentation of an existing table. Its columns are provided mostly for developers, and are generally not used by standard Siebel applications. An extension table extends a base table in the sense that it effectively adds additional columns. These columns are not physically part of the base table, but are available for use in a business component alongside the base table columns as if they were.

NOTE:  When columns in a base table are updated, the timestamps of its extension tables are not updated unless columns in those extension tables are also updated.

The relationships between a base table, an extension table, and the business component that uses them are illustrated in Figure 45.

Figure 45. Business Component, Base Table and Extension Table

Click for full size image

Note the following distinctions between standard and custom extension tables:

An extension table, whether standard or custom, provides a set of generic columns of various data types and lengths for your use. These may eliminate the need to add a custom column to the extension table. Generic columns in an extension table have names of the form ATTRIB_xx, where xx stands for a two-digit number. For example, there are generic columns named ATTRIB_04 and ATTRIB_12.

The standard Siebel applications use certain columns in extension tables. The following columns in these tables are used:

NOTE:  Extension columns used by standard Siebel applications should be treated as data columns in base tables—that is, they should not be modified or deleted.

Figure 46 illustrates how columns from a standard one-to-one extension table are used in the Contact business component in Siebel applications.

Figure 46. Extension Table Example

Click for full size image

There are eight fields in the Contact business component displaying data from generic columns in S_CONTACT_X; only three are shown here. Extension tables themselves are "sparse"—extension table rows exist only for those base table rows that have extension data to store.

Extension tables can be of the one-to-one or one-to-many style:

One-to-One Extension Tables

One-to-one extension tables have the _X suffix on their names (with the exception of TAS tables, which have the suffix _T). The details of the object definition relationships (excluding the implied join) are illustrated in Figure 47.

Figure 47. Extension Table Details (Excluding Implied Join)

Click for full size image

The object definitions in Figure 47 are:

When writing data to a one-to-one extension table, at least one column of the extension table must be updated for a record to be written to the extension table.

For example, you might want to create a workflow policy based on a column in a 1:1 extension table. If there is no data to be written, the record will not be updated. Therefore, the workflow policy will not be triggered.

Implied Joins

Underlying the one-to-one extension table's relationships with the base table and business component is a set of hidden relationships called an implied or implicit join. The implied join makes the extension table rows available on a one-to-one basis to the business component that uses the extension table. Every extension table has an implied join with the business component it extends. This join always has the name of the extension table.

An implied join is different from joins defined as object definitions. Data can be updated through an implied join. Data can be displayed only through other joins. This update capability is important for extension table functionality.

When a field in the business component is based on a column in the extension table, the Column property of the Field object is set to the name of the column, and the Join property is set to the name of the extension table. For example, the Birthday field in the Contact business component has a Column property value of ATTRIB_26 and a Join property value of S_CONTACT_X.

The details of the object definition relationships in an implied join are illustrated in Figure 48.

Figure 48. Extension Table Details with Implied Join

Click for full size image

The following definitions participate in the implementation of the implied join:

For more information, see Joins.

One-to-Many Extension Tables

One-to-many extension tables have a Type property value of Data (Public) rather than Extension. However, from a functional standpoint, one-to-many extension tables are considered extension tables, and they have the same set of generic and system columns. The names of one-to-many extension tables have the suffix _XM.

You can extend existing one-to-many extension tables. You can also add new one-to-many extension tables using Advanced Database Extensibility. For information, see Advanced Database Extensibility.

You can use one-to-many extension tables to create multi-value groups and master-detail views that are based on custom business components—that is, business components not present in standard Siebel applications.

For example, you may have a need for three new multi-value fields in the Contact business component to store information on hobbies, prior companies, and areas of expertise for each contact. No business components exist for these entities. However, you can implement the same functionality using S_CONTACT_XM, the one-to-many extension table that extends the Contact business component. A one-to-many, rather than one-to-one, extension table is required because there can be many hobbies, prior companies, or areas of expertise for one contact. Since the relationship is one-to-many rather than one-to-one, a link is required rather than an implicit join. See Business Objects Layer for a discussion of master-detail business components.


 Siebel Tools Reference, Version 7.5, Rev. A 
 Published: 18 April 2003