Looking for rapid scanning ideas


I am working on an internal library app and would like to rapidly scan in book barcode after barcode with the minimum number of clicks/taps on screen.
Right now, the best UI I have come up with requires
open form - tap on barcode icon - scan -confirm action (like checkin) - and repeat next by opening form
So 4 steps for each scan

Ideally I would like to scan-confirm action - repeat next with scan i.e. 2 steps for each scan.

In other words, it would help if I could launch the scanner without having to go to the form first and tapping on the barcode icon.


Might want to check out this example. Does it help?

1 Like

In the UX >> Options tab you can change the app’s default view to your form view.

This will recent you from having to press the form view to open it.

You should also double check that “auto re-open” is set on the form view. That should help keep the user flow

Thanks @Mike
I was unaware of this sample. So glad you told me about it.

I have something similar now but two problems that I notice this sample has as well:

  • it does not open the scanner directly. One has to tap on the scanner icon in the form to start the scanner. I want it start with the scanner open to start. An analogy is the supermarket self-checkout. We do not hit the scan button, when you are trying to ring out the item. It is on by default and you just place your item for scan. Likewise, if I could keep the scanner on for the next book to show up, that would speed up.

  • second problem (lesser of an issue) is the fact each scan has to be recorded into a table before I can use it for its real purpose. In my case, real purpose is to books to be checked in. So I use scan to locate and open a “Lending” record but not before I have created this dummy scan table entry.

The first problem is bigger one for me but would love to hear any solutions for the second one.


Thanks @Stefan_Quartemont. I did notice the “auto re-open” but I could not figure out a good use case to take advantage of it.

In my case, flow goes like this
User scan Book ISBN --> App open BookLending record in its view --> User confirms check in --> repeat

  • Since there is user confirmation, I do not know if the Auto reopen would work well here. Do you agree?

  • If I did not need user to confirm (i.e. scan would can directly cause checkin on BookLending record), would Auto reopen have helped me there?

1 Like

If the goal is to quickly scan ISBN’s to mark them as Checked Back In, You Should have the check in action confirmation turned off (assuming you trigger this action on the form save event) and auto re-open turned on. This makes it a 2 step process. Tap scan icon, press save. You could also set auto-save on. This could trim it down to a single press

This is dependent on your table structure and how you’re logging the transactional history, but there is definitely a method that can reduce Button presses to two per book

Thanks @Stefan_Quartemont

If I understand correct you are saying I could do this

  • create an action which turns on the checkin flag on Lending record
  • hook that action to the scan form so it would be triggered when Save is done
  • set AutoOpen and AutoSave on this form so it returns back to this screen after each scan

Is that your suggestion?


That is a very powerful feature combination that allows you to do some cool things behind the scenes of your ux. Keeping users focused and moving forward while still capturing and calculating the data you need.

You’re welcome. Hope it helps.

1 Like

Hi @Stefan_Quartemont, I was re-reading your response and wondering how to take full advantage of it.

Like you suggested, I could alter the flow as follows
User scans Book ISBN --> action automatically sets the checkin flag on the BookLending record --> repeat by auto return back to scan screen

Except if there are two copies of the same ISBN (which is uncommon in our case but can happen)
In that exception case my flow would need to be:
User scans Book ISBN --> Display in another view matching BookLending records to let user pick the right lending record–> User confirms check in for one of them --> repeat

This will require conditional logic to check if the ISBN scanned has a unique BookLending record or not. And my sense is that this kind of conditional flow is not currently possible in AppSheet.


Hi @Mahesh

This is an interesting situation, especially if the ISBN is being used as the KEY value. If it is the KEY, then there is no way for appsheet to differentiate the records. In that case the ideal solution would be to make sure those books dont have the same ISBN - which may be out of your control.

A possible secondary option (there are a few) would be this:

  1. Add a column to your book database where you have pre-assigned unique values as the Key for each ISBN.
  2. You’ll have to have a ref column in the table you’re using to do the scans to return the Key Ref that matches that ISBN you scanned. (This will need to be a Ref Column Type - which creates a dropdown of records)
  3. Set a “suggested values” condition that looks like this SELECT(books[Key], [ISBN] = [_THISROW].[ISBN]) This will limit the Ref dropdown to only books that have matching ISBN’s
  4. You can have a show column that appears if more than one record is found. This should prompt them to use the Ref dropdown to select the right book that this should be set to.

This is sort of complicated, but duplicate identifiers are not something you usually have to handle for.