Skip to Content
Product Information
Author's profile photo Joerg Aldinger

SAP Customer Checkout Kitchen Monitor

So we needed a fairly simple kitchen monitor for one of our customers who operates a fast-food-like kitchen on the beach.

It takes all open orders from one or multiple CCO stations and displays them on a separate monitor for the kitchen staff, ordered by time (oldest first). Once the order is closed (delivered), it will disappear from the kitchen monitor automatically. Refresh interval is currently set to 10 seconds, but could be adjusted.

The connection is done using ODBC to the CCOM database and the technology used is .NET Core 3.0 with WPF (so no server required, it actually runs on a second monitor connected to the same CCO client workstation).

This solution may not fit everyone’s needs, but it met this particular customer’s needs, so here’s a simple demo of it. Let’s see if FP09 or FP10 bring any new possibilities in this respect!

I hope you like it!

Joerg.

Assigned Tags

      4 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Julian Wehmann
      Julian Wehmann

      Excellent idea and Extension, Joerg Aldinger .

      Thanks,

      Julian

      Author's profile photo Robert Zieschang
      Robert Zieschang

      Great Joerg Aldinger!

      Author's profile photo Jesus Cruz
      Jesus Cruz

      I'm programming in module the same!!!
      do you help me with the query for i get the "COMANDAS PENDIENTES" and a example the connection between .net to ODBC

      Thanks!!!

      Author's profile photo Joerg Aldinger
      Joerg Aldinger
      Blog Post Author

      Hello Jesus Cruz ,

      Here are the two queries I'm using (header and detail). These queries work on both HANA and SQL servers. The variables are for one or more CCO terminal IDs and one or more CCO table areas (separated by commas).

      strQuery = @"SELECT
      		CONCAT(CONCAT(T0.ID, ' / '), CAST(T1.CONCESSION_TABLE_INDEX AS nvarchar(10))) AS ""Table"",
      		T1.CREATEDAT AS ""OrderTime"",
      		T1.OBJECTKEY AS ""ObjectKey""
      	FROM
      		CONCESSION_TABLE T0
      		INNER JOIN RECEIPT T1 ON T0.OBJECTKEY = T1.CONCESSIONTABLE_OBJECTKEY
      		LEFT JOIN TABLE_AREA T2 ON T0.TABLEAREA_OBJECTKEY = T2.OBJECTKEY
      	WHERE
      		T1.STATUS = 7
      		AND T1.POS_SYSTEM_ID IN ('" + strCcoTerminal.Replace("'", "''").Replace(" ", "").Replace(",", "', '") + @"')
      		" + (String.IsNullOrEmpty(strCcoTableArea) ? "AND T2.ID IN ('" + strCcoTableArea.Replace("'", "''").Replace(" ", "").Replace(",", "', '") + "')" : "") + @"
      	ORDER BY
      		T1.CREATEDAT";
      
      strQuery = @"SELECT
      		QUANTITY AS ""Quantity"",
      		DESCRIPTION AS ""Description"",
      		NOTE AS ""Note"",
      		OBJECTKEY AS ""ObjectKey""
      	FROM
      		SALESITEM
      	WHERE
      		RECEIPT_OBJECTKEY = '" + r.ObjectKey + @"'
      		AND STATUS = 5
      	ORDER BY
      		EXTERNALID";

      You can see how to make an ODBC connection from .NET here: https://docs.microsoft.com/en-us/dotnet/api/system.data.odbc.odbcconnection?view=dotnet-plat-ext-5.0

      Hope this helps,

      Joerg.