Configuration Guidelines > Creating and Modifying Objects >

Creating and Modifying Business Components

A business component is a logical representation of one or more tables. The information stored in a business component is usually specific to a particular subject, such as a product, a contact, or an account. This information may or may not depend on any other business component. A business component can be included in one or more business object definitions.

Most of the data for a business component comes from one main base table. For example, the Opportunity business component is based on the S_OPTY table. Most data retrieved for the Opportunity business component comes from this table. However, data from other tables are also available through joins to those tables.

Many business components are based on the S_PARTY table, where most information does not come from the main base table but from joined tables. For example, the Account business component is based on the S_PARTY table but most of the data for the Account business component is stored on the joined table S_ORG_EXT.

Often, during configuration, there is a need for a business component that is similar, but not identical, to an existing business component. In this case, you must choose between creating an entirely new business component based on the existing one or modifying the existing one for reuse. Modifying an existing business component is usually the better solution, because it minimizes the number of business components. This leads to a configuration that is smaller, requires less memory, is easier to maintain, and is easier to upgrade (because it is closer to standard applications).

Always configure your application in a way that lets you reuse business components instead of creating new ones. For example, you can have an implementation where one group of users may create opportunities, but another group can only edit existing opportunities. Instead of creating a new business component and setting the No Insert property to TRUE, you can define a new applet and set the No Insert property to TRUE for the applet.

If you must create a new business component, avoid copying business components based on a specialized class, unless you intend to create a true clone of the original business component (with the same functionality), and then apply minimal changes. For example, you may want to create a Locked Service Requests business component that displays only those Service Request records that have been locked using a business component User Property. In this example, you would copy the Service Request business component (defined by the specialized class CSSBCServiceRequest), set up the Lock Field business component User Property, and specify the conditions in which a Service Request should be locked. Next, you would identify a search specification for the business component that will retrieve only those Service Request records with the preceding conditions. The underlying behavior of the new business component remains the same as the original business component. You should avoid copying a specialized business component to reproduce an isolated feature associated with that business component.

 Configuration Guidelines 
 Published: 18 April 2003