If using this construct, at the end of the loop, you must do a 'set current list' as a guard action and the setting of the list must be in a reversible block.
Also indicate if this method should never be over-ridden except in rare cases, could be overridden, or should be overridden.
This is one of the most important setup steps when creating new data base fields.
Schemas are to be documented in three places.
First, all database schemas will have a Studio ‘File’ class like the example below. The description in this area is for programmer assistance. It will show as tooltips to describe the field when looking it up for coding purposes.
Most file classes have a corresponding schema class. The schema class is what actually is used to describe the database fields and interact with the database. The field names, types, subtypes, and descriptions should be copied from the file class. This is also for programmer tool-tip quick documentation
Once the file and schema classes have been defined, customer friendly field names are to be placed into the data dictionary. This is accessed off the Developer Menu->Data Dictionary.
Customer friendly descriptions are to be defined, along with a number of other data attributes as follows:
Within the 'oCodetables' class, there are a number of getters that will load up any one of the tables into your object.
Class Type | Prefix | Notes |
Code | c |
|
File | f or F |
|
Menu | m |
|
Object | o |
|
Query* | q |
|
Remote Task | rt | |
Report | r | |
Schema | s |
|
Table* | t |
|
Task | none |
|
Toolbar | T_ | |
Window | w |
|
*Query class names should match the corresponding table class. E.g. tClient and qClient.
However, if is a parameter, local, or instance var that is meant to track a cope of a database SEQ key, then call it what it is. eg pM_SEQ means that the parameter we expect is an M_SEQ key. This helps with variable assignment.
All database names will be named using underscores and in UPPER_CASE to make an obvious differentiation between the database and other task/class/instance/local variables.
Scope / Type |
Prefix | Convention |
Task |
t |
|
Class |
c |
|
Instance |
i |
|
Local |
none | Developer preference, prefer myVariable rather than MyVariable. |
Parameter |
p |
|
Constant |
k |
|
The architects will monitor the VCS activity on these classes by running checkin/checkout reports for any violations of this policy.
Developers should be aware if they are modifying anything that can impact or change what we do with sensitive customer data, a senior developer must review it. Keep the PA-DSS guidelines in mind when developing in these areas is key, and you can review the Theatre Manager install documentation under PCI compliance.
A change that may affect credit card processing needs to be reviewed carefully and is subject to the rules of Versioning Methodology | |
When testing credit card functions, never use real card data, whether from customer or personal. We have test accounts and test credit card numbers that can be used to verify functions or issues reported by the user in the credit card area. | |
The following classes in the VCS are under the protection of the Senior Architect any potential changes to these classes need to be run by them first. These are the key base classes that affect credit card sales, refunds, exchanges, or storage of the credit card data.
When a new eternal component is available, all developers will use the latest version on their test platform while coding to uncover adverse effects for sufficient enough time as determined by the senior architect. Regression testing will also be performed prior to release by SQA.
The object pertinent to web listeners are:
The web sales listener can only respond to traffic sent to it via the nginx module. |
If any site reports a threat that may affect security, a project will be created in Fogbugz to deal with testing where it impacts Theatre Manager.