Platform 2.0 Data Integrity (Validation)

What does a data "Integrity Check" do? What does it check?
How does it differ from a "Validation Check"?



Help With Error Codes: If you are looking for help with how to fix specific errors, you should view this answer.

What is an Integrity Check
Event and attendee data is stored in various database tables.  It is very important that data is stored correctly.  The Integrity Check feature does integrity checking to confirm the proper data storage.  A summary of what is checked is provided below.

How is it different than a "Validation Check?"
In the legacy platform and the early stages of Platform 2.0, we used the phrase "Validation Check" but we found that was getting confusing in light of the fact that part of the password reset or email login process used the same phrase. So on September 29, 2013 we changed the phrase to "Integrity Check" to lessen the confusion.

Why do integrity errors come and go
In Platform 2.0, Data Integrity Checking has been integrated into the attendee listing. When you first arrive at the attendee listing, it will show any current errors that should be corrected.  But rather than leave those errors up there, it will not appear for subsequent attendee actions.  So that is why they seem to appear and disappear.  Just because they're gone doesn't mean they have been dealt with, they simply have been hidden so they don't become a distraction.

What if an error is no longer there?
if you receive a notification of an integrity error but do not find one when you run it again, then you're all set. Either somebody else made the correction or some other facet changed that removed the error. Just walk away happy.

Where do they come from in the first place?
There can be a variety of reasons for an error. In some cases it is because of a certain combination of selected options (i.e. a unique item set up without existing items), duplicate numbers, etc. Some were caused by an operator hitting a back button maybe or double pressing a key. Sometimes there is a small bug in the program that created a problem that the error catches (and we then fix the bug). Nearly all are minor and everything will work fine even with the error there. If it's a critical error it will tell you.

When is an Integrity Check Run
If you arrive at the attendee listing and it has been more than 24 hours since integrity has been checked, then a new one will be run and a message will pop up on the screen stating how long it has been.  Also, in the far right upper bar of the attendee listing, there is blue text that states when the last integrity check was done.  To the far right, after the blue date and time, there is a linked labeled "update" that allows you to manually update your data integrity.  This is helpful to run after you've made some changes.

What to do with errors
If warning messages appear, you should notify the appropriate individual as soon as possible so that corrections can be made.  Most of the errors can be easily corrected and even if there are errors there, you most likely will be able to continue doing your work. For more details about what to do with errors, you can view this answer.

Importance of Resolving Errors
When an integrity error occurs, a ticket is created and our Tier 3 agents are notified. It is our expectation that you get your errors fixed withing two business days. In the event that you don't meet this deadline, you may be notified by Tier 3 with an offer for assistance. All errors will need to be corrected prior to archiving the site. If you continually ignore errors Tier 3 will come in as a chargable ticket and get the errors fixed.

Tier 3 Assistance
In the event that you cannot figure out the cause of an error, you can request Tier 3 assistance in resolving it. This will be a chargeable ticket. There are also some integrity issues that can only be resolved with a Tier 3 chargeable ticket. If it is found that the error was caused by a programming issue, the Tier 3 charge may be waived. 

Manually Run the Integrity Check
There may be times that you wish to run an integrity check at an interval of less than 24 hours. This would be done to surface any errors or if you encounter something strange happening, you can run a check to validate your data.  The checks are run by going to the attendee listing off the admin page (Admin: Attendees). The link for a manual integrity check is dependent on your current view.

Full Attendee Listing View
If your page shows the date of the last integrity run, there will be a link to the right that reads, "run new integrity check."
integrity view one.png

Quick View Listing
If you page has a shortened summary on the top, there will be a link title "Integrity Check" that appears just below the title.
integrity view two.png

Currently Checked:  (As of September 29, 2014) 
  1. Proper Registration Type for Each Attendee (a_prodNum)
  2. Correct format of the Pay Status Field (a_payStat)
  3. Group Profile Identifier is assigned for each attendee (a_profile)
  4. All cart entries have the site ID set. (r_event)
  5. Cart enter totals all balance out to zero
  6. Fund entries without an invoice number
  7. Fund entries equal the total of the cart payments/refunds
  8. Rogue fund entries (hanging with no associated cart)
  9. Make sure attendee is assigned to only one order
  10. Attendee Payment Stat Imbalance.
  11. Failed funds must equal zero
  12. Unused Held Funds
  13. Make sure attendee is listed for only one room
  14. Make sure attendee a_house matches housing table
  15. Event Limits Values Correctly Set - warning issued
  16. Check for undefined event in travel field (temporary)
  17. Check to make sure all Prod Types in Goods for ConfReg are CR-siteKey
  18. Check to make sure no duplicate product numbers
  19. Make sure every product has a class when there are multiples
  20. Confirmed that assigned housing is to valid rooms for this event.
  21. Make sure only ONE EACH of key setup fields.
  22. Room price set for entire block when occupants are to split cost.
  23. Make sure housing has an invoice assigned.
  24. Reset room capacity to zero for cancelled rooms.
  25. Checks for proper entries in the cart table.
  26. Adds default MENU headings if not set.
  27. Checks if site agree has been set.
  28. Checks to make sure your event dates are valid.
  29. Validates correct sequencing of questionnaire menu items.
  30. Validates correct dates in housing table.
  31. Check that product numbers all start with proper prefix and have right site number.
  32. Check to make sure site and message entries have only ONE entry each.
  33. Correct any cancelled rooms where the capacity for a cancelled room is not set to zero.
  34. Look for any DUPLICATE menu items
  35. Look for any fund Entries where there is NOT a matching room
  36. Check for all entries in HOUSE table to be legit rooms
  37. Check to make sure no duplicate product numbers
  38. Check to make sure all groups are okay
  39. Check to make sure all housing dates are okay
  40. Check to make sure housing status and room finder are set okay
  41. Checks to make sure ASK table has only one entry per line
  42. Checks for invalid PIPs
  43. Checks for invalid created dates (e.g. before or after dates)
  44. Checks for house tables with missing fund entries.
  45. Check if cancelled attendees are still in a house
  46. Check for invalid email addresses
  47. Check length of welcome PILL message
Planned AdditionsThe following items will be added to data integrity checking.
- Make sure all dates are in right format. 
- Confirm that names listed in roommate finder are not in a room.
- Hotel rooms no spaces & have right matches (one general overview, one overview per hotel)

Notes:
For #16, a temporary update until all travel fields are fixed.