Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Micros 3700 Price Update

Status
Not open for further replies.

poshelp

Programmer
Jul 26, 2010
7
US
Hello,

We've been working for months on a software integration for a Micros 3700 customer in Florida. The customer wants to alter item prices "on the fly"...specifically every 5 minutes or so.

We are using standard SQL script to update the required table directly in the Micros database.

The problem is that from the time the price is updated in the table, it takes Micros up to 45 seconds to reflect the price change.

The customer needs to price change to be reflected in Micros immediately.

Any help is greatly appreciated.

Thank you
 
Hi,

Does anyone have any ideas on how we might be able to solve this?

Sorry to bump this up, we're desperate.

Thanks
 
you have to use periods under POS config>system>Periods ... create all the different time periods that you would need different price tiers. Then go to POS config> sales> menu levels... click the auto menu level tab. Make your different specials and select which time period that you just made that they correspond with. Select the Main Menu Level Dropdown and choose which number corresponds with the correct price in the menu item detail found under POS config> menu items... select the menu item then click the price tab and fill out your different prices. Then go to POS config> menu item classes> ...make a different menu item class for each type of menu item that will have prices change. go to the price/totals tabe and check the box that says enable prices 2 to 10
 
Thank you for the response.

Unfortunately this method won't work because there are more than 10 pricing options. The price can essentially change to any number.

I spoke with a Micros tech who mentioned that Magic Update will solve the problem.

Are you familiar with Magic Update?

Thanks
 
Sorry but thats the way it is. When you understand cursor types and persistence, 40 seconds is fine. Its not like you are in a Dutch flower market... the only other way to push out changes is to reload the database, and that could take 2 minutes if you still have active connections...
 
Well, unfortunately 40 seconds isn't fine. The item prices are displayed on TV's. So when the price changes on the TV, it will take 40 seconds for the price change to reflect on the POS. If anyone orders an item in that time they will be charged the wrong price.

I've been told by multiple sources that something called Magic Update for Micros will solve this problem.

Has anyone heard of this?

Thank you
 
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
 
Is there a way to have the Micros POS trigger the price appearing on the TV or possibly delay the price appearing on the TV for 45 seconds?
 
Steve,

I greatly appreciate the detailed information you posted. You sure know your way around Micros. Do you know why some items update instantly while some update after 40 seconds?

I find that the price for each item updates at a different interval. For example, Coke will update within 2 seconds whereas Bud Light will take 45 seconds.

I would think that the prices would update for all items at the same time.


TobeThor, that's a good suggestion...the problem is we don't know when the price changes take effect in Micros until we "try" it.

Thanks again for all of your help.

 
I am not sure how many items you have, but could you create it so that when you ring in the item you query a custom pricing table, grab that price and use sim to create the keystrokes of ringing in the item, then typing in the price.
This approach seems like it would need to be hard-coded, but would allow for "real-time" pricing so to speak. Is this happening on 5 items, 10, 100?
 
The bar will use around 40 items in the system.

How do you modify Micros to query a custom pricing table?
When you say that this approach needs to be "hard-coded", do you mean that a coding change is required for Micros?

Thanks
 
The simplest interface would have a screen or 2 with your items. Each button is a sim and each item is an openpriced item. Hit the button to trigger the SIM, query the price, ring in the item and key the price.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top