1. What is Team Coding
Team Coding is a cooperative source control feature. You can use Team Coding alone, or in conjunction with a third party version control system. Team Coding works with the Editor to control access and development of functions, procedures, packages, triggers and types. It also supports scripts in the Editor. Some of its key features include:
· Flexible Code Control Groups (CCGs), which help you control objects from one or more schemas, using customizable groupings.
· You can organize objects into CCGs by using object masks representing both specific database objects and collections of similar objects (by using the Oracle % wildcard). You can also set up exclusion masks to exclude specific objects from a CCG.
· Even without a third party version control product, you can use CCGs, to track referenced objects through Team Coding (though without revision history).
· All configuration data is stored in the database under Team Coding control. Individual workstations do not need to be configured.
Even better – it’s a Standard feature which I bet you hadn’t even heard of !
2. What is Server Side Objects Wizard?
The Server-Side Objects Wizard is designed to simplify the task of checking whether Team Coding is already configured on the user’s desktop, and if not, to run a script which installed a small repository (called the Team Coding Repository) into a database schema of the user’s choice (usually the Toad schema).


If you wish to install for the first time, select the first option as illustrated below.

Log on to the database in which you want the Team Coding Repository to be built. The Toad schema is recommended to help you manage where any Toad Server Objects are installed.
In the next step, choose the Team Coding option. This will create the required roles, tables, indexes, triggers, constraints and sequences in the Toad schema. Access to these objects is also granted to the Public role – this allows Team Coding “rules” to apply to every user of Toad.

Follow all the steps for creating the Server Side objects and also for creating the 3 Team Coding roles: TC_ADMIN_ROLE, TC_LDR_ROLE and TC_MGR_ROLE which can then be assigned to users as appropriate.
This is an order where you can control the access users have to the administration features in Team Coding such as the Team Coding Viewer and the ability to freeze, lock, etc. code in the database.
The rights which each role has are as follows:
- Administrator (TC_ADMIN_ROLE) - Can configure the instance to define how Team Coding operates, which VCS (if any) is used, and so on. This role is automatically assigned to the Toad user.
- Project Manager (TC_MGR_ROLE) - Can create and delete code control groups (CCGs) and relate them to a VCS project.
- Team Leader (TC_LDR_ROLE) - Can modify CCGs, define the objects or scripts are included in the group, and freeze objects. Can also delete rows from the Team Coding Viewer.
Users that are not granted one of these three roles hold the assumed role of developer. They can view the status of objects with the Team Coding Viewer and check items in and out of source control.
3. Setting the Usability Options
The usability options allow you to control a Team’s coding behavior in the environment with features such as Automatic Check-Out. Note, you can also specify the VCS provider’s name and default working directory.

4. Checking Team Coding Status
Finally, check the Team Coding Status (using a login with the TC_ADMIN_ROLE) to ensure everything is correctly set up.

Click the Settings button (below) to display the configuration options.
The Configuration tab allows you to select the VCS Provider (if you want to use one) and whether to use Code Control Groups (see 5 below) to determine how Developers can access the code.
Note: Team Coding will facilitate code access control even without a VCS if you do not have one. No versioning will take place, but code can be checked-out, locked and then checked-in to the Team Coding Repository.

The File Extension tab lists the default file types associated with using Team Coding.
The General tab enables you to set certain defaults like automatic generation of a new version number when you Check-In.
5. Code Control Groups
Code Control Groups are like filters which allow you to determine if code is controlled or not. If code is controlled using a Code Control Group, this means when a developer accesses the code through the Editor (or Schema Browser or Project Manager), Team Coding will automatically handle the request and perform a Check-Out from the VCS (if it is configured)
Here is an example of a Code Control Group called “Production Group” where all code in the “QUEST_PROD” schema will be controlled by Team Coding with the exception of the “OW_ORDER_TRIGGER” Trigger which will not.

6. Using Team Coding
Toad is now working under the Team Coding configuration.
When the user next launches Toad, they will see a window pop-up which prompts for the VCS login (if Team Coding is configured with a VCS). This option can be changed so that a VCS login would have to performed separately if the user so wishes.

As the code is Checked Out, Team Coding will automatically compare the code with the code in the database to see if they are the same. If not, a warning message will appear informing you that the code is out-of-sync and giving you the option of running a Compare, using the VCS version or using the Database version.
Once you are finished with the code, Team Coding will jump in again and control the Check In.
Finally, once Team Coding is in use by your Development team, and as a user with TC_ADMIN_TOLE, you will be able to monitor and manage access to your code both within the Team Coding Repository, but also within the VCS itself because Toad can access the VCS management console.

Team Coding Viewer

VCS Browser (Microsoft Visual Sourcesafe)
Correctly set up and implemented across your Development team, Team Coding will simplify and automate code management in a way which is much more secure and workflow oriented, leaving you time to concentrate on other things.