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 Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

MICROS POS 9700 Integration

Status
Not open for further replies.

ihabdamen

Programmer
Aug 7, 2012
1
Dear All,
I have a question regarding the MICROS POS 9700 third party integration.

I've read over the "9700_MAN_SIM.PDF" documentation file that we can do third party integration using SIM and ISL Scripts.

The type of integration that I am interested to ask about is simple.. I have a separate Microsoft SQL server DB that I am interested in storing all the transaction information that is published from the POS to this DB.

I need the following information:
1- Receipt number
2- Receipt Items ( item description, item quantity, item price)
3- Total Price
4- Workstation ID

I didn't find in the "9700_MAN_SIM.PDF" documentation a clear step by step how to create ISL script that has an event handler that gets fired when ever a check is printed and how to store these infomation in the DB.

Is there a place where I can find these information? Please advise

Many thanks

 
ihabdamen - if you're still looking for an answer to this, you have to handle the SRVC_TOTAL event and loop through the current round items. You have to send this data line by line so I'd suggest writing a stored procedure in your SQL Server db to accept it to keep from bottlenecking.

Here's the SIM function I use to access the database. You just have to create an ODBC connection on your Micros server to access the SQL Server and use that in the connection string. It's plain text, so you may want to add a user with limited privileges for this kind of access. BTW - this was written for the 3700, but I think it's about the same on a 9700. I access this using [blue]include("dbaccess.isl")[/blue]. Not sure if the 9700 has added anything like that, so you may want to figure out the global h_sql variable to keep from loading the dll on every call.

Code:
//////////////////////////////////////////////////////////////////////
RetainGlobalVar

var h_sql : N12 = 0
//-------------------------------------------------------------------------------------//

sub sql_select( ref sql_cmd, ref err )  

	// status flag
	var constatus : N9 
		
	// load the dll if needed
	if h_sql = 0      
		DLLLoad h_sql, "MDSSysUtilsProxy.dll"   
	endif  
	
	// make sure the dll is loaded and run the query
	if h_sql = 0  
		format err as "Unable to Load MDSSysUtilsProxy.dll"
	else  
		// Connect to micros 3700 database   
		DLLCALL_CDECL h_sql, sqlIsConnectionOpen(ref constatus)   
		if constatus = 0      
			DLLCALL_CDECL h_sql, sqlInitConnection("micros","ODBC;UID=custom;PWD=custom", "")   
		endif 

		// run the query		
		DLLCALL_CDECL h_sql, sqlGetRecordSet(sql_cmd)
		
		// check for errors
		DLLCALL_CDECL h_sql, sqlGetLastErrorString(ref err) 
		
		// if there are any errors clear the results and return
		if (err <> "")                 
			format sql_cmd as ""
		else
			DLLCALL_CDECL h_sql, sqlGetNext(ref sql_cmd)		
		endif   
	endif 
endsub
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top