Basic Structure & Logic
Pick up transactions
In the Mantiki Database, the entity_event table name and state are used by the Dream Extractor to find new entries to process. If the Dream Extractor reads the line and the state is in pending and it recognises the name as one of the types it processes then it attempts to process the transaction that this entity_event refers to (note, the entity_event table also refers to other events not used by the Dream Extractor which will have names that are unfamiliar to it).
For example, this section of the entity event table shows a winebank_payment, two account_adjustment, a refund and a sale. These events are recorded in the customer_account_entry table for 3 of them and the sales_order_credit and sales_order_shipment tables. The id in each of these tables is listed in the entity_instance_id column. The state for the winebank_payment is pending, showing that Dream Extractor has not yet started/completed processing this entry.
# id | entity_name | entity_instance_id | name | job_execution_id | state | comment | version | created_by | created_on | last_modified_by | last_modified_on | state_changed_by | state_changed_on |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5214251 | customer_account_entry | 454 | winebank_payment | NULL | pending | NULL | 1 | 1 | 11/21/17 04:22 PM | 1 | 11/21/17 04:22 PM | 1 | 11/21/17 04:22 PM |
5214250 | customer_account_entry | 453 | account_adjustment | NULL | processed | NULL | 2 | 1105 | 11/21/17 03:42 PM | 1 | 11/21/17 04:04 PM | 1 | 11/21/17 04:04 PM |
5214249 | customer_account_entry | 452 | account_adjustment | NULL | processed | NULL | 2 | 1105 | 11/21/17 03:41 PM | 1 | 11/21/17 04:04 PM | 1 | 11/21/17 04:04 PM |
5214248 | sales_order_credit | 47 | refund | NULL | processed | NULL | 2 | 1 | 11/20/17 04:07 PM | 0 | 11/20/17 04:12 PM | 0 | 11/20/17 04:12 PM |
5214247 | sales_order_shipment | 263 | sale | NULL | processed | NULL | 2 | 1 | 11/20/17 03:40 PM | 0 | 11/20/17 04:11 PM | 0 | 11/20/17 04:11 PM |
From this point the extractor reads in further data about the transaction from the tables it is directed to above.
Post-processing within Dream Extractor application
The values available from Mantiki cover a lot but not all of the values required by Finance. Some values are stored directly from DAO access of the appropriate Mantiki object, some are calculated from these values.
Write transactions to a temporary table within Mantiki
The Daemon writes the correct values to a temporary table in Mantiki.
*to complete*
Write transactions to a MantikiFeed table
The temporary table is read by a second Daemon and the values written to an SQL Server database that Finance use to populate Dream, their accounting solution, which is outsourced within a 3rd party company called Hexagon.
*to complete*