The SDM has specific features which the ticket tracker module does not such as a model of releases and modules, which allow it to model ACS software releases. However, it is currently lacking some of the advanced search and reporting facility that the Ticket Tracker module has.
The SDM is appropriate for software projects, while the Ticket Tracker module may also be better suited for non-software development projects, such as system admin, facilities, or other project tasks.
Many ticket tracking systems exist. Having one integrated with the ACS is a benefit for linking to users and groups tables, as well as for simplifying our software platform. See commercial systems such as StarTeam or free software such as Bugzilla .
The commercial systems such as StarTeam probably offer better integration with a souce control system than Ticket Tracker. Ideally, when the developer makes changes to the source tree to address a defect, that should be linked into the related record(s) in the database.
A code set is typically configured for an ACS installation, and never changed after that. To update the code set with existing tickets in the database would require a conversion process.
The tables ticket_codes_i, ticket_code_sets contain
the data for the code sets. The data is initialized at ACS installation
by the /sql/ticket-data.sql PL/SQL file.
Internally, ticket code values are unique integers. Views such as the ticket_issues view perform the joins needed to translate the code values to user-friendly text strings.
ticket_projects table holds the list of all projects.
The ticket_domains holds a list of subclasses by which
tickets can be categorized. These are referred to as Feature Areas in
the user interface.
The ticket_issues_i table holds the individual tickets. The ticket_issues_i_audit table is an audit table to hold
previous versions of each ticket when the ticket is modified. The trigger
ticket_issues_i_audit_tr copies a ticket's previous state to the audit table
whenever it is modified.
In order to make the user-interface more productive, the table view
of tickets is ordered and filtered using a customizable persistent
settings vector. The persistent settings are stored in the database
via the ad_custom_load API from the user_custom table.
The developer should have a home page which lists the most useful summary information of what tickets they have to work on.
The /index.tcl page shows a table of one-line ticket summaries, based on the currently active (persistent) table view and sort order.
The ticket table has a dimensional set of filter controls
If the Advanced Search option is selected, then an extensive search form is placed at the top of the index page, where specific structured filter field values can be entered, such as creation date, submitter, or ticket status.
The developer can view a change log history of a ticket. The change log lists each insert or update which was done to the ticket, with the date and the user who made the changes.
A developer can add a request to be notified by email on changes to a ticket or project.
The administration pages under /ticket/admin provide a way to list projects and to edit their properties, as well as a facility to create new projects. The projects are listed in a one-line summary table format on the index page, and links are provided to edit each project, or to copy an existing project to make a new project with the same parameters.
The /parameters/yourserver.ini file contains
a /ticket section where configuration parameters
are kept.
Here is an example configuration, with comments
[ns/server/acs-dev/acs/ticket] ; When sending a note to an admin or engineer about a trouble ; ticket, what reply-to: address to use ; note that this address must be set up through your mail transfer ; agent to run a email enqueueing script. ; See doc/ticket.html for more info on configuring the ticket system. ; (from /web/acs-dev/bin/queue-message.pl) TicketReplyEmail=support-ticket-robot@arsdigita.com ; if LinkTicketToUserGroupP = 1, each ticket is assigned to a user group ; a user must be in the group to see the ticket LinkTicketToUserGroupP=0 ; If CustomerCanCreateNewTickets = 1, customers may create new tickets. ; (A "customer" is any user who is not in the ticket admin group) CustomerCanCreateNewTickets=1 ; to tell the email queue system where to dispatch ; all of this is based on tags supplied by the mail-transfer agent [ns/server/acs-dev/acs/email-queue] ; how often to check the queue for new messages ;QueueSweepInterval=300 ; what to do with a new message ; format is tag|tcl_proc_to_invoke ;DispatchPair=ticket-tracker|ticket_process_message
Jin Choi, Tracy Adams, Philg, Eve, Henry Minsky, major revisions by Jeff Davis
Jeff Davis
Henry Minsky