Measuring Microbizz
It is assumed that it is sufficient to know the number of times a module / functionality has been used in the last few months.
When a measurement says “recent” it means “within the last 3 months” unless else is stated. Likewise if a measurement involves counting the number of times a file was accessed.
The speed logs, DB logs and API logs are usually stored for 4 months. Access to specific files can be extracted from the LogProfile data, see below.
Many functionalities are used rarely even though they may be important to the customer. E.g.. subscription that generate an invoice every 6 months.
I suggest that we generate and store the measurements every week or every other week, even though many measurements cover months of usage.
Modules (web)
For modules the info can be extracted from the LogProfile data that is collected on system15. The file /var/log/mb/summaryCCCC_YYYY-MM-DD.log holds a JSON encoded list of which scripts were called in each 5 minutes period of the date. CCCC is a contract number, YYYY-MM-DD is a date.
We can simply look in this list for scripts named sys/MODULE/.
Modules (app)
Perhaps Andreas should be consulted. It is probably not possible to extract the info from the existing data, so we will need the app to report this in some way.
Functionality
A functionality is assumed to be in use if it is enabled and the conditions listed below are fullfilled.
Task module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Accord-system | Number of times /sys/todo/settleaccord/ has been accessed | not relevant |
Anchor budgets | Number of AnchorBudgets objects that have been changed within the last month | Number of recent API calls to GetAnchorBudgetsByLastChange |
Checkpoints | Task setting ‘Check lists?’ must enabled; number of recent entries in DB table ‘todo_check_log’ | not relevant |
Extended image functionality | Number of times /sys/report/imagelocation/index.php has been accessed | not relevant |
Gantt diagrams | Number of times /sys/todo/details/gantt/ has been accessed | not in API |
HTML description | Used whenever you edit a task, so number of times /sys/todo/edit/ has been accessed | not relevant |
Microbizz Innovate | Number of times /sys/todo/hitlist/xnet/ has been accessed | not relevant |
Repeated tasks (exact) | Number of recent tasks of this type, plus number of recent hour registrations on a task of this type | same as for web |
Repeated tasks (loose) | Number of recent tasks of this type, plus number of recent hour registrations on a task of this type | same as for web |
Subcontractors | Number of recently edited tasks where the subcontractor field is set | same as for web |
Task budget | Number of recent TodoBudgetPosts | not in API |
Task estimate matrix | Number of TodoEstimate matrices objects | not in API |
Task maps | Number of times /sys/todo/details/map/index.php was accessed | not in API |
Task projects (project v1) | Number of times /sys/todo/details/projedit/index.php was accessed | not in API |
Task SLA | Number of tasks with SLA that was created within the last month | same as in web |
Task SMS | No way to determine this | not in API |
Workpools | Number of recent workpool entries in DB | same as in web |
CRM module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Additional addresses | Number of recent addresses; number of recent tasks with “invoicetoaddress” set | not in app |
CRM budget | Number of recent BudgetActivity objects; number of recent tasks that have the field ‘budgetactivityref’ set | not in API |
Depot orders | Number of recent DepotOrderline objects | not in app |
Floorplans | Number of MapLayer objects with context=”floorplan” | not relevant |
Map functions | Number of times /sys/customers/details/map/ was accessed | not in API |
Procedures | Number of times /sys/customers/details/procedures/ was accessed | not in app |
Product numbers | Number of rows in the DB table “customer_productno_map” | not in API |
Relations | Number of rows in the DB table “custrel_bindings” | not in API |
Stocks | Number of recent InvoiceLines / InventoryTodoItem that have a stock | same as in web |
Subscriptions | Number of CustomerSubscription that expire sometime in the future or expired less than 1 year ago | not in app |
VAT no integration | Number of times /sys/customers/edit/fromcvr/ was accessed | not relevant |
Hours module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Automatic registration | Number of users who have registration_policy=AUTOMATIC | not relevant |
Custom registration | Number of recent Registration objects with non-empty values in the field customregistrations | same as in web |
Re-assign | Number of times /sys/registration/reassign/ was accessed | not relevant |
Sales module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Budget | Number of rows in DB tables “sales_userbudget” and “sales_teambudget” for this year or future years | not in app |
Calls | Number of SalesCall objects for the future or less than 1 year ago | not in app |
Campaign | Number of rows in DB table “sales_campaign2cust” where enterdate is less than 1 year ago | not relevant |
HTML description in quotations | Number of SalesContract objects created within the last year | not in app |
Interest | Number of rows in “sales_interest2cust” | not relevant |
Quotations and orders | Number of SalesContracts with finishdate less than 1 year ago, plus number of active SalesContracts | not in app |
Planning module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Capacity view | Number of times /sys/prodplan/capacity/ was accessed | not relevant |
Full days | Number of times /sys/prodplan/fulldays/ was accessed | not relevant |
Old version | Number of times /sys/prodplan/planedit2/ was accessed | not relevant |
Route planning | Number of times /sys/prodplan/routing/suggest.php was accessed | not relevant |
Routes | Number of RouteAssignment objects with a date in the future or less than 1 year ago | not relevant |
Users modul
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Competences | Number of recent UserSkills objects | not in API |
Linked accounts | Number of Exchange objects | not relevant |
Salary | Number of times /sys/users/salary/export/ or /sys/users/salary/report/ was accessed | not relevant |
Extranet module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Confirm files | Number of File objects where the field confirmreq has a value that is greater than 1685500000 (timestamp of summer '23) | not relevant |
Extranet version 2 | Number of times /x2/ was accessed | not relevant |
Invoices module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Cost groups on invoice | Number of recent InvoiceExportLines where the field costgroupref is set | not in API |
Discounts & profits & new product use | Number of recent InventoryTodoItem + InvoiceExportLine objects | same as in web |
Fees on invoices | Number of recent InvoiceExportLines where the field reftype is = 3 (fee) | not relevant |
Time extration | Number of times /sys/invoiceexport/customers/index.php or /sys/todo/doinvoice/index.php was accessed | not relevant |
System module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Currency functions | Number of recent InvoiceExportLines where the field itemprice_foreigncurrency is set | not in API |
Expression custom field | Number of CustomFields of the subtypes 4 or 6 | not relevant |
Form actions | Number of QuestionAction objects that belong to a QuestionForm that has been completed recently | not in API |
Form scripts | Number of times obj/Question/php/executescript.php was accessed | not relevant |
Layout | Number of rows in the DB table “layoutassignment” | not relevant |
Mail-integration (only mailimport, not EDI import or note import) | Number of “Mailimport - “ lines in system log | not relevant |
New messages system | Number of recent Thread objects where the field modcode is empty | same as for web |
New notes system | Number of recent Thread objects where the field modcode is set | same as for web |
New UI | They use it if is enabled | not relevant |
Assume it is used by most customers | not relevant | |
Script custom fields | Number of CustomFields of the subtypes 5 | not relevant |
Script plugins | Number of recent lines in the “app_events” log that start with “Executing script” | not relevant |
Translations | Number of rows in the DB table “translations” | not relevant |
Whitelist | Number of rows in the DB table “ipwhitelist” | not relevant |
Project module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Gantt tab in projects | Number of times /sys/project/details/gantt/ was accessed | not relevant |
Equipment module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Geofence | Number of recent ToolHistory objects where eventtype=GEOFENCE | not in API |
Invoices | Number of recent ToolInvoice objects | not in API |
Reservation | Number of recent ToolReservation objects | not in API |
Service | Number of times /sys/tools/history/service.php was accessed | Number of recent calls to ToolServiceProtocol |
Service agreement on equipment | Number of Tool objects where the field serviceagreement is set and which has a least 1 recent ToolHistory object | not in API |
Work plan module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Lunch system | Number of times /sys/workplan/lunch/ was accessed | not relevant |
Regional holidays | Number of future holidays where country is set | not relevant |
Person module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Mail campaigns | Number of rows in the DB table “mcamp_hist” that are less than 6 months old | not in API |
Roles | Number of Person objects where the field typeref is set | same as for web |
Start module
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
News | Number of recent NewsInternal objects | not in API |
On location | Number of times /sys/startpage/onlocation/ was accessed | not relevant |
Other things
Functionality | How to measure (web)? | How to measure (app)? |
---|---|---|
Mail import as one (on CRM, task and person) | Number of recent Custmail objects | not relevant |
Stock | Number of recent StockItem objects | same as for web |
Checkin on day | No way to determine this | Number of times DoDayCheckIn was called |