cancel
Showing results for 
Search instead for 
Did you mean: 
0 Kudos

Add 'On Select' Updated Barcode Scanner or Re-Enable to he 'ScanBarcode()' function.

The new Media > Barcode Scanner, which we are now forced to use because you disabled the ScanBarcode() function, is not an adequate substitue for the ScanBarcode() function.

 

We were heavily using the ScanBarcode() fuction in conjunction with a button as well as a timer so that we scan multiple barcodes without having to press a button each time to engage the scanner.  This is vital to our workflows and save a tremendous about of time as well as is user-friendly.

 

The new Media > Barcode Scanner has no 'On Select' feature so we cannot engage it except by a physical button press.

 

Please add an 'On Select' option to your updated Barcode Scanner or re-enable the ScanBarcode() formula again.

 

I can't apply new updates/improvement to our PowerApps without breaking/losing this very vital workflow.

Status: New

Reopened idea since it is not complete

Comments
PowerApps Staff
Status changed to: Completed

Hello @littletinner,

We've added support for the Select function, this will allow you to trigger an onSelect without having to press the button.

Example: 

If you would like to scan  a barcode on Text input focus you can do something like this:

TextInput1.OnSelect = Select(BarcodeScanner1)

BarcodeScanner1.OnScan = Collect(Barcodes, BarcodeScanner1.Value )

Hope this helps! 

Level: Powered On

Sweet!  Thank you so much!

Level: Powered On

Trying to implement this, but it doesn't seem to really work as well as the ScanBarcode() fuction used to work.

 

The Select(BarcodeScanner1) does work to engage the inserted [media > barcodescanner], it still doesn't operate well...

 

The proceeding code/steps after 'Select(BarcodeScanner1)', do not wait for the BarcodeScanner1 to finish before executing.

 

It makes if very difficult to do handle actual scans and scan cancellations.  If i put the 'code' in the 'On Scan', it will not handle a 'cancelled' or blank scan protocol at all b/c the entire action will be cancelled.

 

If i put the code in another control after 'Select(BarcodeScanner1)', the code executes before 'Select(BarcodeScanner1)' finishes...thus really only operates of the scan prior to the scan that was just completed.

 

Code:

BarcodeScanner1.Onscan = 
Set(ScanOutput,Text(BarcodeScanner1));If(StartsWith(ScanOutput,"E-"),Set(ScanOutput,Substitute(ScanOutput,"E-","")),If(IsMatch(ScanOutput,"\d{6}=",BeginsWith),Set(ScanOutput,Left(ScanOutput,6))))

 

Below is a snip of the code in the button i use to engage the scanner as well as process scans (cancelled or not).  See comments in it for additional notes about the issues i am running into.

Capture.PNG

 

 

 

 

Level: Powered On

@mobaky  any updates on this?  I see the onselect feature has been 'removed' as i inserted a new instance and it did not contain 'on select' any more.  Any updates on providing a solution that addressed the above?  Can you remove the 'complete' status of this, since is not complete?

 

thanks.

PowerApps Staff
Status changed to: New

Reopened idea since it is not complete

PowerApps Staff

@littletinner, Not sure what you are referring to when you say that the property has been removed but you are correct, that Select function only triggers a scan and doesn't actually wait for the scanning to be completed which is the intended behavior  ... but even if the control had an onSelect property it would also trigger the behaviors immediately which is not what you are looking for. 

 

If I understand correctly you are looking for something that would allow you to scan multiple barcodes at a time.... you can achieve this now by doing the following:

 

If you know how many scans you want (i.e 3 barcodes):

Button1.OnSelect = If(CountRows(multiscan) <= 2,Select(BarcodeScanner1))
BarcodeScanner1.OnScan = Collect(multiscan,BarcodeScanner1.Value);If(CountRows(multiscan) <= 2,Select(BarcodeScanner1))

 but if you are not sure how many scans you need and want to keep scanning until the user cancels then you can set OnScan to:

BarcodeScanner1.OnScan = Collect(multiscan,BarcodeScanner1.Value);Select(BarcodeScanner1) 

 

Level: Powered On

That's great for collecting...but i want to scan, validate the scan and choose to either engage the scan again to collect more data or not.  once the right amount of validated data is collected, i want to perform an action automatically.  i also want to be able to cancel out of the scanning funtion at which point all data collected would be cleared.

 

i.e. scan an employee badge or barcode, determine whether it is a valid employe badge or barcode, scan again, evaluate again...until a valid employee id and valide 'barcode' are collected...then i want to write it up to the SQL.

 

in some cases i will want 1 employee badge and multiple barcodes....

 

and if canceled out of the scan function, the employee ID and/or barcodes scanned (collection or variable) should be cleared.

 

I really just want the ScanBarcode() function back so i can use that in a formula with any button, control, timer, etc...instead of being tied to 1 button that has half the automatic function.

PowerApps Staff

Hello @littletinner ,

 

We truly appreciate your feedback, I will relay it to the team that is working on this control. Just to double check is there anything blocking you from using the Select function in a timer and validating the scanned code in the OnScan property?

Level: Powered On

@mobaky 

 

See post above dated ‎04-05-2019 07:38 AM.  In it i relay the issue i was having using it with the onselect and the code being used.

 

If the 'processing' action was inside the scan button (in the 'onscan' field), it could not effectively deal with a 'cancelled' scan.  i.e. it would not be able to clear the variables if the scan was cancelled.

 

If the 'processing' action was outside of the scan button (i.e. in a timer that selected the scan button and determined what action to take after the scan), the procesing code seemed to to execute before "scan button" was finished collecting the scan.