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

LoadKyBdMacro call in Micros simphony is prompting the keyboard on the screen! How to hide it!

Status
Not open for further replies.

abhi2

Programmer
Jun 23, 2016
13
US
Hi,

I have a SIM/ISL script which calls LoadKyBdMacro command to ring in menu item and its price. The call is -

LoadKybdMacro Item, price, KeyEnter

The problem is that the keyboard for the price is flashing on the screen which is visible to the user before item and price is added to the check. This issue is happening on micros simphony. However the same script use to work fine on earlier micros 9700 and do not prompt anything before adding the item and price to the check.

Is there any way I can hide the keyboard prompt coming in simphony? Please help.

Thanks!
 
Thanks for the reply CathalMF. Yes it is an open amount menu item.
When you are saying to put the price before item then should I move Enter key also before item because the price will be entered on a keypad only correct?

Should it be like this -
LoadKybdMacro price, Item, KeyEnter

I also have couple of question reagrding your suggestion -
1. If the price is before the item, how the LoadKyBdMacro will call it and associate it to the price?
2. Will the flashing do not come, I mean the screen will still pop up the keyboard for price entry correct? It use to work fine without any flashing earlier on micros 9700.

Please reply. Thanks!
 
Generally with LoadKyBdMacro's you will post the Price first, then any Reference information. The LoadKyBdMacro function is meant to post the Item to the check.
Mind you this is with Micros 9700 system.

Code:
loadkybdmacro makekeys(discAmnt) , 7:dbdisc          // Discount Amount and tender type
loadkybdmacro makekeys(_OfferCode),key(9,12)         // Reference Entry for Discount Offer
 
Thanks a lot hosehead78 for explaining the LoadKyBdMacro functioning. So basically the original ISL script is trying to ring in an open amount item and a reference number also need to be entered for that item.
So the full call is something like this -
LoadKyBdMacro item, price, KEY_ENTER, reference_no, KEY_ENTER

Now this worked fine on micros 9700 but in Micros Simphony 2 it is popping up keyboards twice, one for price and the other for reference number. I believe there was no pop up in Micros 9700.

So as suggested I am thinking I can modify the call to be like this -
LoadKyBdMacro price, item
LoadKyBdMacro reference_no, Key_Enter

and see if the keyboard for price atleast goes away. I will be checking that early next week when I will be getting hold of a system to test.

On a sidenote is there any call other than LoadKyBdMacro which can be used to insert open price item in a check using ISL?

Thanks!
 
How are you getting/setting the Open Price? I don't


Here's the SIM manual for Simphony v2.
See page 437 to 439.

Syntax
LoadKybdMacro key_expression[, key_expression,...]
key_expression:
an expression that can be one of the following:
key_type:key_number
Key function

Example:
Key pairs—A key_pair in Simphony is designated by the key_type and a key_number separated by a colon. For example, the number 1 on the numeric keypad is represented by the key_pair 9 : 1, where 9 (the key_type) represents the Keypad and where 1 (the key_number) represents Numeric 1. Therefore, one way to load 123 and the [Enter] key would be:

loadkybdmacro 9:1, 9:2, 9:3, 9:12

The one I gave, shows a good example of posting a tender or item. IN the case below it is an item.
Code:
loadkybdmacro makekeys(discAmnt) , 7:dbdisc          // Discount Amount and tender type
loadkybdmacro makekeys(_OfferCode),key(9,12)         // Reference Entry for Discount Offer 

// This one I am merely posting an Item number. What's displayed is the Item Name.
loadkybdmacro key(1,ID_Item1)

// This one is a part of a Script that Adds CRV based on what is added.
elseif @DTL_FAMGRP[ttlDtlEntry] >= CRVBeer8packStart  AND @DTL_FAMGRP[ttlDtlEntry] <= CRVBeer8packEnd 
  loadkybdmacro makekeys (qty), key(11,600)   // Updates Quantity of CRV added per Quantity of Menu Item; Added 06-25-2013 by Chad
  loadkybdmacro key(1,CRV_Item12)             // Adds information on what was added
  exitcontinue

This image is an output from the code above. The item is added normally, however, I have a script that when a Menu Item is added it reads through the checks detail and looks for an item that is in the Major/Family Group and then posts the additional CRV and then The ID Checked 21 line. The Item is a Condiment, hence why it is indented under the other item.
 
Hi hosehead78,

Thanks for your reply.

The open price is being set through keyboard when the item is clicked. So whenever an open price item is clicked, it prompts a keyboard where user can enter the price for the item. Once Enter key is pressed on the keyboard,it prompts another keyboard to enter the reference number. Once reference number is entered and enter key is pressed it adds the item, price and reference number to the check.

This is how the call in LoadKyBdMacro is -

LoadKyBdMacro item, price, Enter, reference, Enter

While this calls works fine and solve the purpose the only concern is that the keyboards are prompted on the screen even when using the call LoadKyBdMacro. Also the interesting thing is that it use to work fine in Micros 9700, the prompts are coming only on Micros Simphony 2.

Do I need to set up the item in a different way? Or I can try to modify the call to have price before item and check if it works.

Thanks!
 
They keyboards technically show in 9700 too but it works a bit quicker in 9700 so you dont see them.

Simphony 2 is a totally different system and the displays are different so it just shows the screens a bit longer.

A LoadKybdMacro is just replicating what someone does on the touchscreen or keyboard. It doesnt change what the POS does. It just automates it.
So if you menu item prompts for a price or reference entry then using a keyboard macro will do exactly the same thing.

Do you want some custom SIM scripts developed. Contact me via my website
 
Thanks CathalMF for the reply. That's what I am suspecting that Simphony 2 being a bit slower, the displays are showing on the screen. Unfortunately business users are compaining about it and so have to look for alternative!

Is there any other way to add item to a check automatically if I don't want to use LoadKyBdMacro call? Like other system calls, direct database insertion or may be something else?

Please help!

Thanks!
 
What are you wanting to add? Is is only an Open Price?

Could you add your script for this call here, so we can take a look at it?
 
Hi hosehead78,

Here is the code snippet when ringing in the open price item (which is a combo card item) and also reference number for the item using SIM/ISL in micros simphony2 -

// Ring in item ...
KeyItem = defKey("MenuItem",N:item_combo_card)
KeyAmount = defKey("AsciiData", T:combo_card_price)
KeyCard = defKey("AsciiData", T:card_no)

LoadKybdMacro KeyItem, KeyAmount, KeyEnter, KeyCard, KeyEnter

Here is what is happening -

1. First Menu item (KeyItem) is clicked using LoadKyBdmacro which then pops up a numeric keypad in which the Amount (KeyAmount) is keyed in and then Enter key.
2. After that it brings up the reference number (alphanumeric keypad) and enter the value in KeyCard and then Enter.
3. The item along with its price and reference number is then added to the check in the listbox.

Everything happens automatically but the keypads for Amount and Card is popped up on the screen for a moment beofre it closes. On slower POS, the keypad that pops up is clearly visible which was not there on Micros 9700.

Is there any other way to do it? The main objective we are tryinbg to achive to do avoid the keypad popping up on the screen when adding item using LoadKyBdMacro.

Thanks!
 
Let me say this, to make sure I am on the same track as you are.
[ol ]
[li]Menu Item (MI) Key is pressed. Which calls a section of script (in this case the script you supplied).[/li]
[li]User is then Prompted for The MI's price. User then enters the price (KeyAmount) and presses the Enter Key.[/li]
[li]User is then prompted for the Reference Entry (KeyCard), and then Presses the enter key.[/li]
[/ol]
Once those steps are finished the items are posted to the check, however, during the Reference entry the Popup keyboard still shows after sometime, correct?

Are you using the PopUpIslTs function in your script at all?
What are you using to simulate the Enter key press? @KEY_ENTER or ?
How are you requesting the information from the User, are you prompting them at all?

Have you though about using a simple Prompt and using the inputkey option?
Here's a simple Yes No prompt. From the Simphony SIM manual, just as an example.
Code:
sub get_yes_or_no( ref answer, var prompt_s:A38 )
	var keypress : key
	var data : A20

	clearislts
	setisltskey 2, 2, 4, 4, 3, @KEY_ENTER, "YES"
	setisltskey 2, 6, 4, 4, 3, @KEY_CLEAR, "NO"
	popupislts
	inputkey keypress, data, prompt_s
	
	if keypress = @KEY_ENTER
		answer = 1
		// Add your information here to post to the Check. i.e., LoadKybdMacro 
	else
		answer = 0
		
	endif
	
endsub
 
Hi Hosehead,

The user is not prompted for anything. So basically here is how it works -

1. User first of all swipe a card (combo card).
2. It calls a SIM inquire event. Now everything after that is via script and no user interaction.
3. Based on the type of card swiped, let's say $20 combo card, the menu item is retrieved-
//key in item
KeyItem = defKey("MenuItem",N:item_combo_card) //this is inside SIM script
4. Then its price is also determined programatically and is converted to a keytype by using the call -
KeyAmount = defKey("AsciiData", T:combo_card_price)
5. KeyEnter is actually @KEY_ENTER.
6. The card number captured earlier is also converted to a keytype by suing the call - KeyCard = defKey("AsciiData", T:card_no)
7. The LoadKyBdMacro is used to key in the item along wqith its price and reference number (card number) by using the call -
LoadKybdMacro KeyItem,KeyAmount,KeyEnter,KeyCard,KeyEnter

So basically there is no user interaction when adding item to the check. However when the call LoadKyBdMacro is made, it basically pops up the keypads for a moment on the screen and then closes automatically. What we would prefer is to do this operation silently without popping up anything on the screen. It use to be silent in Micros 9700.

Please help! Thanks!

 
Try formatting the LoadKybdMacro like so.

This worked for me, however it was on the 9700 system, but I looked through the Simphony SIM manual and the Syntax is the same so it should work. I do not see the makekeys() in the manual, but it is in the index and such and a few other lines in the manual, so I think they missed a page in the manual. (More Info at end of post)

I used the Key Type 11, 643. 643 = MI SKU Entry. See Page 607 of the Simphony_SIM_Manual.pdf for more information on the Key Types for both 11 and 9.
Code:
  loadkybdmacro makekeys(MI_NUM), key(11,643), makekeys(MI_PRICE), @KEY_ENTER, makekeys(cmb_card),@KEY_ENTER     // key(11,643); Key Type 11, 643 = MI SKU Entry

You could also use the following as well, its a little easier on the eyes and allows you to comment on the line, in case you forgot why you did it this way and such.
Code:
  loadkybdmacro makekeys(MI_NUM), key(11,643)		// Add Menu Item; Done using Key Type 11, 643 = MI SKU Entry
  loadkybdmacro makekeys(MI_PRICE), @KEY_ENTER            // Add Price to Menu Item
  loadkybdmacro makekeys(cmb_card),@KEY_ENTER             // Add Reference to Menu Item

You could also add loadkybdmacro key(11,357), somewhere to the script. // 357 = Touchscreen Key TS Close Pop-up

Remember, that the item you are adding has to be an Open Priced Item and should have the Reference Entry Required checked in the Class it belongs to, Otherwise the Reference information will not post with the Item.



Here's the definition for MakeKeys Function.
Syntax
MakeKeys (string_expression)

Argument - Description
string_expression - a string or user_variable (string) that will be treated as keystrokes by the system

Remarks
This function can only be used with the LoadKybdMacro command.

Example
The following script receives authorization from the PMS, in the form of that
employee’s MICROS ID, then proceeds to clock the employee in:

Code:
event rxmsg : emp_clock_in
   var micros_emp_id : a10
   var clock_in_key : key
   clock_in_key = key(11, 833) //Assign key pair for clock in var
   rxmsg micros_emp_id     // Receive the id of the employee to
                           // clock in from PMS then load the
                           // macro and clock the employee in.
   loadkybdmacro clock_in_key, makekeys(micros_emp_id), @KEY_ENTER, @KEY_ENTER, @KEY_ENTER

endevent

Hope this helps.
 
Thanks a lot hosehead! I will definitely try out this one next week when I will have access to the system after holidays!

One thing about the key(11,357). Where should I use it? I mean @KEY_ENTER will close the pop up correct?

Thanks!
 
key(11,357) can be used at the end of the loadkybdmacro, or on it's own line (which is how I'd use it).
 
Hi hosehead,

I tried using the SKU entry key as suggested earlier but the effect is same as it was earlier :( Still the keyboard pops up on the screen like a flash. This is happening only on Simphony02 and it use to work fine on earlier Micros 9700!

Any other ideas or any other way to add open price menu item to a check programmatically bypassing LoadKyBdMacro?

Thanks!
 
Hmm, not having a lab for simphony up makes it hard to test these kinds of things. I need to get one running but haven't had the time to set one up again.

Is this "Combo Item" different each time, or is it the same item(s), just different prices?
Have you tried using a Macro Key, per RVC (like old Macros for 9700)?
 
Hi hosehead,

It can actually be different items with different prices! I haven't used Macro Key. Can you please elaborate a little on that?

Thanks!
 
Macro Key will basically preform a set of Steps for adding items and such, but if you are looking at different items, this may not be the option for you, because you'd have to have several Macros for each item. You are only allowed a certain amount of them per RVC, I know this for 9700, but simphony, I do not know off hand.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top