The Power of CAS: Part II
The intent of this blog entry is to further inform readers of the functionality of the Accenture CAS System. Accenture CAS is the leading integrated sales platform for the consumer goods industry, providing companies with the ability to streamline all of their day to day operations. The CAS system uses four main tools, namely the CAS modeler, SQL Server Management Studio, Visual Studio 2010, and the CAS Application which uses Microsoft Silverlight. Today, we will focus on the following foundational CAS Modeler objects: Entities, Domains, Basic Data Objects (cdos), and Views.
It can be said that the most important objects in the CAS System are Domains and Toggles. Domains represent data types of each attribute in an Entity. They can be predefined or created by a developer in the Modeler. Domains can have customer names, but each Domain be based on one of six data types. The data types are: Blob, Date, Decimal, LongText, NonUnicode, and String. Domains determine the type of data entry required in the User Interface. If the data type is a Date the user will have to enter a valid date into the system. The same is true for the other data types.
A Toggle is known as a special form of Domain, comprised of the StringData Type.
Each Toggle contains codes, items, and labels that are used for data storage. What makes Toggles special is that they are prefilled with Labels for the user to choose from as data. Each Label corresponds with an Item. Once the value is saved, a Code that corresponds to the Item is sent to the database for storage . For example, if a user is being created, there is a State Toggle. This holds a string label for each state in the nation. The creator must choose a state, and once the tab page is saved, the code for the selected item will be saved to the database.
The Accenture CAS System has the ability to track and store data by using Views and CAS BasicData Objects, or cdos. In order to do this, there must first be a “building block” upon which Views and cdos can use to read and write data. These corner stones of the Accenture CAS System are Entities. An Entity is an object in the Accenture CAS System that contains the definition of a table. This essentially means that entities provide a schema of tables in the database, giving cdos and Views the correct information when performing queries on the database. Every entity contains two important sections: Includes and Attributes.
Includes are preexisting packets of core attributes that may be needed for the current entity. Every entity will contain at least one Include named SysEntityObject. This contains attributes vital to saving and updating the data represented by the entity. The most important of these attributes is the PKey, or Primary Key. This attribute works exactly like Primary Keys in database systems. Each row in the corresponding table will have a distinct PKey that helps maintain data integrity.
Attributes represent columns of a table in the database, and are added manually to an entity. As stated previously, attributes must contain a domain type. When an attribute is added to an entity, a dropdown box will appear containing all domains in that module.
If a developer adds attributes to an entity that will link it to another, they must select a Domain of type DomPKey. This special attribute addition creates a relationship in the system to the other entity. This is important for use in Views and cdos who compare two or more entities.
Now that we have covered Domains and Entities, we will look at Views and CAS Basic Data Objects (cdos). Notice that Entities are required for both Views and cdos. The difference between the two is the number of entities used in retrieving and storing data. A View can be created using one or more entities, where as a cdo is based off of one entity.
Views are essentially select statements using relationships between entities as the constraints. Generally speaking, when a developer creates a View these relationships already exist due to their corresponding PKeys having been added to the other entity. However, if the relationship does not exist, it can be created when the view is created. Each view has a “Starting Element” that represents the entity being primarily selected from, and if other entities are needed, they will be added to the view based on their relation with the first entity. This allows views to narrow the results to a smaller set that meets all required constraints. Once all entities have been added, attributes from the entities can be added to display in the return set. For example, the preexisting view, BpaMainRoleView, has a starting entity of BpaMain. It then adds other entites based on relationships with BpaMain. The figure below depicts the scenario and shows all of the constraints for the view.
The developer of this view has also added attributes from the various entities to display in the result set from the SQL Query generated. Once the view is run, it will select all data from all of the entities where the constraints are met and return the data to the application.
CAS Basic Data Objects differ from Views in that they are used to access data from one entity. There are two ways to create cdos in the Modeler. First and most importantly, each entity will have a cdo created at the same time it is. These cdos have a basic condition stating “PKey = ?”. This will return all rows from the table where the PKey supplied is equal to the PKey of the row. Cdos can also be created seperately from an entity, but they will still require an entity to interact with as well as a condition. More custom-specific cdos can be created in this manner. For example, if a developer needed to have all Call Visits that are scheduled for a date greater than the current date returned, a cdo could be created with a constraint: “ClbMain.DateFrom >= #Today#”.
Just as a building is based on its foundation, Accenture CAS is based of of Domains, Entities, Basic Data Objects, and Views. Domains are essential for Entities that represent table definitions. Entities are crucial for View and Basic Data Objects. User Interfaces in Accenture CAS are dependent on cdos and Views.
The Accenture CAS User Interface will be discussed in later entries. If there are any other topics you would like hear about CAS, just let us know!