Rules and integrity
What Netzo refuses to protect your business, and why the database applies it on every surface.
A rule refuses a change that would break your business: a price under its floor, a shipment of more than is in stock, an invoice without a tax ID. The refusal names the rule and how to fix it, the same for a person and an agent.
Kinds of rule
| Rule | Checks | Example |
|---|---|---|
| Record | That the record is valid in every state | The delivery date is not before the order date. |
| Action | That the record is in the correct state before the action | Only a created quote can be sent. |
| Related records | That the records it points to allow it | A blocked customer is not used on a new order. |
| Eligibility | That the selected record is valid for this use | The product is enabled for the company and the site. |
| Period | That the period is open | No journal entry is recorded in a closed month. |
| Transition | That the status change is allowed | A canceled CFDI does not go back to valid. |
| Append only | That the history does not change | A stock movement is not edited or deleted. |
In the database
Netzo applies the rules in the database, not on a screen. This is why they hold everywhere:
- No surface skips them. A bulk import, a script or an agent meets the same rules as a person in the app.
- All or nothing. An action saves all its changes or none. An order is not approved without its stock reservation.
- A dry run checks everything. A dry-run write runs the same rules, and then discards the changes. If the dry run passes, the real write passes too, unless the data changes between the two.
Isolation
The database also checks the organization of every row. See Access.