Almanac
Microsoft/d365fsDynamics 365

Consultant-focused KB for Microsoft Dynamics 365 Field Service: implementation notes, gotchas, and configuration decisions beyond the official docs — across work orders, scheduling and dispatch, resource management, mobile app, asset management, inspections, IoT, Copilot, and administration.

feature-mobile-barcode-and-image-capture.mdv1 · history
CurrentApplies to Field ServiceUpdated 6 days agoSource Microsoft Learn

What it does

The Field Service mobile app can use the device camera two ways: as a barcode scanner that fills a field or searches for a record, and as a capture device for photos attached to the timeline, quick notes and inspections. Both are configuration, not code, though the barcode value is also available to scripts.

Key facts

  • Barcode input is a form control. Add the column to the mobile form, attach the BarcodeScannerControl component in the properties pane, and set Show component on for Mobile and Tablet.
  • Supported symbologies documented are barcode, UPC and QR code.
  • Scanning into global search covers a default set of tables: Activity, Contact, User, Customer Asset, Incident Type, Work Order, and IoT Alert/Device.
  • To search anything else — products, for example — the table must be enabled for Dataverse search and the barcode column has to be on that table's quick find view.
  • Online, barcode search uses Dataverse search. Offline it falls back to categorised search, which means the tables must be indexed for search and added to categorised search or the scan finds nothing.
  • Barcode search is not available on the tablet and Windows versions of the app. Scanning into a field is a different thing from searching by scan, and only the search half is restricted.
  • The barcode scanner control doesn't support setNotification(), so you can't surface a validation error on the control itself. Errors have to go somewhere else on the form.
  • For custom logic, getBarcodeValue in the Xrm.Device client API returns the scanned value to your script.
  • Image compression is a per-device toggle, Optimize images for upload, found in the app's navigation menu after selecting the environment. It applies to timeline, quick notes and inspection uploads.
  • Image optimisation is iOS and Android only — the Windows app doesn't have it.
  • Photos count against Dataverse file storage. The offline profile controls whether files and images sync to the device at all, per table.

When to use / skip

Barcode scanning earns its place wherever technicians currently type an identifier off a label: asset tags, serial numbers, part numbers on a van stock bin. It's a small piece of configuration with an outsized effect on data quality, because the failure mode it removes — a transposed serial number — is expensive and invisible for months.

Skip it where the "barcode" is a faded label on twenty-year-old plant, which is more common than clients admit. Do a physical test with real labels before promising it. Image capture is close to mandatory on any job where proof of work or damage evidence matters; the real decision is not whether to capture photos but how many and at what resolution.

Configuration decisions

  • Which columns get the scanner control: asset tag, serial number, product number, or a custom identifier.
  • Whether technicians scan to search for a record or scan to populate a field — they need different setup, and the search route needs Dataverse search configured.
  • If offline scanning matters, which tables you add to categorised search and index.
  • Whether the scanned value is validated against Dataverse on scan, and where that error message appears given the control can't show one.
  • Image resolution policy: optimisation on by default, and whether photos sync back down to devices or upload only.
  • How many photos per booking are expected, and whether inspections or the timeline is the right home for them.

Gotchas

  • A scan that finds nothing offline looks identical to a scan of a bad label. If categorised search isn't configured, technicians will report the scanner as broken.
  • Tablet and Windows users don't get barcode search. If the client's supervisors are on Surface devices, they see a different app to the phone users, and that's a training issue.
  • Turning on image optimisation is a per-user, per-device setting, so it can't be pushed centrally. Expect a spread of photo sizes across the fleet.
  • Photos are the fastest route to a Dataverse storage bill nobody budgeted for. Ten photos per job across a few hundred technicians adds up quickly.
  • If the offline profile syncs files and images down as well as up, device storage fills and sync times climb.
  • The scanner control can't raise its own notification, so validation logic written for the web client will fail silently on the device.

Consultant notes

  • Take real labels to the requirements workshop and scan them on a real phone. This settles the question in ten minutes and saves a late-stage surprise.
  • Demo scan-to-populate on a customer asset — it's the clearest single demonstration of mobile value to a field operations manager.
  • Get a storage estimate in front of the client before UAT: photos per job, jobs per day, times the technician count. Then agree a retention position.
  • Push back on requests to capture full-resolution photos "for evidence" unless there's a legal driver. The compressed image is nearly always enough.
  • Check before go-live that every barcode-bearing table the client cares about is search-indexed, not just the ones you tested.

Worth revisiting if the client rolls out tablets or Windows devices, since barcode search behaves differently there.

Was this accurate?