Hi,
Essentially you are right, Sybase is a realtime distributed database. To understand why there is a 1 minute delay, read on to #5... I am an analyst programmer and have worked with Micros Fidelio and am just describing the concept of what happens when you change something in a RES database. You have to remember this is a Sybase database: It is distributed: that means the data at each client is a replication of the data stored on the server. Checks are updated at all networked clients. Remember also that the price details are stored in a child table of the Menu Item table. Know also that it doesnt just change the menu item price, it has to create a totally new menu item price ("NEW".mi_price_seq) and uses the timestamp value to know the current price.
1. Whether you change it on the server or on a client, it is only updating a persistent representation of that.
2. The DBMS transacts the values, then step 3 that value updates in the actual database as below:
TRIGGER "taI1_mi_price_def".taI1_mi_price_def
AFTER INSERT ORDER 1 ON MICROS.mi_price_def
REFERENCING NEW AS "NEW"
FOR EACH ROW
BEGIN
DECLARE l_mi_price_seq integer;
DECLARE l_count smallint;
DECLARE @em_rest_type char(1);
-- Do NOT UPDATE notify_event_temp IF the DB IS the central DB
CALL MICROS.spem_GetStoreType(@em_rest_type);
IF (@em_rest_type = 'C') THEN
return;
END IF;
// Tell the OPS notify process that a NEW price has been inserted IF
// the NEW price IS now the effective price.
SELECT max( mi_price_seq )
INTO l_mi_price_seq
FROM MICROS.v_mi_price_def
WHERE mi_seq="NEW".mi_seq;
and on it goes....
4. So you can see here that the system is using a view (not real data) Then a value gets posted to a table called NOTIFY_EVENT_TEMP, etc.
5. But the real reason will be embedded in the trigger "tbU_mi_price_def_4".tbU_mi_price_def_4, This trigger checks the values of the Available From date/time to the AvailableTo Date/Time, so the smallest time period here is one minute. To read the commects directly are:
//SCR#21656 insure that we are only accurate to the minute
6. DSMInterface.dll interfaces to the Distributed Services Manager (DSM.exe that resides in the \common\bin\) and pushes out the changes as they happen. Remember in step #5 this is in 1 minute accuracy.
7. Now it gets tricky. The local DB is updated via IIS using SOAP(simple object access protocol, an XML structure) with the RESPOSAPIWEB.DLL on the workstation... stored in cf\micros\etc\LocalDB\Current as are offline checks.
So the upshot is I dont believe such a thing exists. Is it possible he was talking humorously and it was taken seriously? The database in the server is updated instantly, but the system focuses on transaction processing. There must be a timed function in one of the apps that regulates non transactional data on clients (prices & employee data) because I cant see any in the database.
Steve