PSRattr inheritance

Top  Previous  Next

Crash Magic utilizes a powerful inheritance mechanism for selecting resources when running the program. When a user requests a resource such as a filter, the program looks for a filter with that name in a number of places, in a specific order:


1.The user's own account is the first place it looks.  Resources in the user's account are only visible to that user.

2.The .tools account for that user's group. (Only if that user has the "use .tools" permission. This is generally reserved for Pd' Programming configuration developers)

3.The .shared account for that user's group.  This is the place where clients may place shared resources for all of their users.

4.The .config account for that user's group. This is where the configuration resources created by Pd' Programming are stored.

5.The .tools, .shared and .config users for any user groups listed in the "Options - Inheritance sequence" resource for that user's group. This is a common tool for shared configuration such as CA SWITRS, AZ ACIS, CO DR3447, IA SAVER, as well as configurations for other states with common configurations.

6.The .tools, .shared and .config users for the .Master group.  These are resources maintained only by Pd' Programming and shared with all client configurations.


The program uses the resource with the same name and type as requested. (e.g. "Clear" Filter)


There are a few handy extras that work within the inheritance mechanism:

A.Calculated fields - If an individual calculated field is redefined, the one found first will be used.  For example, if a calculated field called "ZipCode" is defined in the .Master/.config  as "07901" but is redefined in another user group such as CO@Boulder with the value "80302", any user in the CO@Boulder group will see ZipCode as 80302.  The inheritance of the entire "Calculated fields" resource functions normally.  This only applies to fields defined in that record.

B.Query - A query may specify a "Query - Part" that it will add to.  So there may be a Query - Part called "DR3447Crashes" in the _CO@DR3447 configuration, and a Query called "Crashes" in the CO@Boulder configuration that specifies DR3447Crashes as one of it's parts. in this case, the DR3447Crashes will be loaded and the Crashes will have its joins and tables added to it to create a final query.

C.Object map - Like calculated fields, if a rule is created with the same name as an existing rule created in a shared account, the first rule found will be used. This feature can also be used to remove rules by simply declaring an empty rule with the same name as an existing one.