Get Started

DataWedge 14.1

Overview

DataWedge provides the capability for any application on Zebra devices to easily capture data from various input sources (such as barcode scanner, RFID and voice) and optionally manipulate the data as needed based on simple options or complex rules. DataWedge actions and settings are controlled using DataWedge profiles configured either from the UI or programmatically using Android intents. When an application activity is displayed in the foreground, DataWedge automatically detects which profile the app or activity is associated to and applies the configuration from the profile.

DataWedge use is based on the following roles:

  • Administrator or User - configure DataWedge through the UI to capture data and deliver it to a specified app; no coding needed
  • Developer - develop apps to capture data using Android intents

This section serves as a guide to DataWedge features and functionality.


Main Features

DataWedge provides the following primary functions and options:

Data Capture

Data Processing

Deployment

Note: Availability and operation of DataWedge features vary by device and operating system, see Feature Matrix.


DataWedge Functionality

Profiles and Plugins form the basis of most DataWedge functionality. Profiles include all the information about how DataWedge should behave when providing data capture services for a particular application. Much of that information comes from Plugins, which determine how the data will be input, processed and output.

A DataWedge Profile contains four main components:

  • Input Plugin - determines how data should be acquired (e.g. barcode scanner)
  • Process Plugin (optional) - specifies how the acquired data should be manipulated
  • Output Plugin - controls the passing of data to an application
  • Associated Application/Activity - specifies the app/activity for the profile to be applied to

image

DataWedge profile - Each app that uses DataWedge must be associated with a DataWedge profile, which contains options that determine how the data is to be acquired (input), processed (data formatting), and delivered to the receiving app (output). These options are referred to as plugins. DataWedge continually monitors the foreground application - when it detects a change to the foreground app, it activates the appropriate profile associated with the app, if one exists. If the app is not associated with any profile, Profile0 is the default generic profile that takes effect. A profile can be exported so the same DataWedge configurations can be deployed across multiple devices.

Create a Profile and Associate App with Profile - By associating an app with the profile, the profile settings are applied when the app comes to the foreground. Data capture input, processing, and output is controlled through the profile via Plugins.

Each Plugin provides further options for finer control:

  • Input plugins - specifies how the data is captured:

    • Barcode specifies the device scanning hardware, decoders, decoder parameters, reader parameters, and scan parameters applied on the captured data prior to sending the data for processing. The supported hardware can include the integrated built-in devices (such as 1D scanner, 2D scanner, and camera), or externally connected devices (such as Bluetooth SSI or USB SSI scanners).
    • Workflow captures data when executing advanced tasks from a workflow process. This includes automatically capturing text and converting it to digital data for delivery to any app in special use cases (reading license plates, vehicle identification numbers (VIN), tire identification numbers (TIN), utility meters and identification documents), or decoding the barcode from a captured image with the built-in imager.
    • MSR (magnetic stripe reader) - acquires data from an MSR card, such as an identity card, on supported hardware.
    • RFID (radio-frequency identification) - acquires data from an RFID tag with a built-in or external RFID reader.
    • Serial port - acquires data from a peripheral device connected via serial port to the host device.
    • Voice - acquires data via speech recognition. Configurations include: trigger voice capture by pressing the PTT button, send a tab/enter command, limit data to alpha or numeric characters, spoken data validation, and working offline.
  • Processing plugins - (optional) specifies how to format the captured data prior to passing it to the output plugin; most useful in the no-code approach:

    • Basic Data Formatting (BDF) - formats data with basic pre-defined options prior to passing it to the output plugin. Options available: add data prefix, add data suffix, send data to foreground app, send data in hex format, append TAB key, and append ENTER key. This can be useful when scanning data to automatically move to the next text field by appending a TAB key.
    • Advanced Data Formatting (ADF) - formats data based on custom rules with specific criteria prior to passing it to the output plugin. This can be useful in cases such as triggering an action to pad data with zeros only if the middle 3 digits of an acquired 9 digit Code 128 barcode matches the same 3 digits specified in the rule.
  • Output plugins – specifies how data is delivered:

    • Keystroke data acquired is sent to the associated application as a series of keystrokes. This can be used to add scanning capabilities to an app without adding any code. Furthermore, it is also fully configurable via the DataWedge Intent API.
    • Intent data acquired is programmatically sent to the associated app/activity using the Android intent mechanism. This is the recommended method for apps to securely receive data in a flexible and configurable manner. The app needs to register for the DataWedge intent to receive the captured data.
    • Internet Protocol (IP) data acquired is sent through a network to a host via specified IP address and port using TCP or UDP. This can be useful to scan data to a PC such as in healthcare environments.
  • Utilities - (optional) provides tools to aid in data capture:

    • Data Capture Plus (DCP) enables specific areas of the device screen to behave as a virtual scan trigger when tapped, simulating a hardware trigger press. It can be configured in full-screen mode or as a floating scan button placed on the right side only, left side only, or either side of the screen.
    • Enterprise Keyboard Configuration enables the use of custom Enterprise Keyboard layouts within an associated app without modifying the app. Uses a desktop tool, Enterprise Keyboard Designer, to generate the Enterprise Keyboard layout.

DataWedge Settings - provides configurations to general, non-profile related DataWedge options. It includes features such as ignore disabled profiles, disabled app list and import/export profile.

Auto Import provides the ability to automatically load pre-configured profiles or configuration files in DataWedge. This can be used for device remote deployment using tools such as third party Enterprise Mobility Management (EMM) systems. DataWedge monitors a particular folder for the profile or configuration file. If a profile or configuration file is found, it imports the file to replace any existing configuration or profile.

Mass Deployment - DataWedge profiles and settings can be deployed to multiple devices either manually or with an EMM (Enterprise Mobility Management) software. The exported config file or profile can be automatically imported when placed in the /enterprise/device/settings/datawedge/autoimport directory.


Administrator & User Role

System administrators or end users can configure DataWedge through the UI to capture data and deliver it to a specified app. No coding is needed. Use the DataWedge UI to create profiles and configure settings. DataWedge captures the data and automatically delivers it to the specified application based on the configured profile.

General steps to create and configure a profile:

  • Create a profile through the DataWedge UI to control how the data is captured and processed.
  • Associate the app/activity to the profile.
  • Set the output to Keystroke to deliver the captured data to the app when it is in the foreground.

For security, administrators can prevent apps from accessing DataWedge intent APIs by allowing only approved apps to be granted API access; see Control Access to DataWedge intent APIs guide. This involves the use of DataWedge Manager (DataWedgeMgr) from MX, which also allows control of the following:

  • Access to DataWedge user interface
  • Auto-import of DataWedge settings
  • Import of NG SimulScan Template


How Do I...?

This section provides step-by-step procedures to perform common tasks in the DataWedge UI for administrators and end users.

Data Capture:
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Barcode Input to capture the data. Specify the capture settings as needed.
  • Select an output method:
    • Enable Keystroke Output to collect the data and deliver it as a series of keystrokes, eliminating the need for any application coding.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Internet Protocol (IP) Output to collect data and pass it to a specific IP address and port using TCP or UDP.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
  • Specify the scanning device through Scanner Selection.
  • Enable the desired barcode type, or decoder, to scan and specify decoder parameter options, if needed.
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable MSR Input to capture the data. Specify the capture settings as needed.
  • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
    • Enable Basic Data Formatting if one of the following is required:
      • Add prefix to the data
      • Add suffix to the data
      • Send data as hexadecimal
      • Append a TAB character
      • Append an ENTER character
    • Enable Advanced Data Formatting if custom data processing rules are required.
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable RFID Input to capture the data. Specify the capture settings as needed.
  • Select an output method:
    • Enable Keystroke Output to collect the data and deliver it as a series of keystrokes, eliminating the need for any application coding.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Internet Protocol (IP) Output to collect data and pass it to a specific IP address and port using TCP or UDP.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Serial Input to capture the data. Specify the capture settings as needed.
  • Select an output method:
    • Enable Keystroke Output to collect the data and deliver it as a series of keystrokes, eliminating the need for any application coding.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Internet Protocol (IP) Output to collect data and pass it to a specific IP address and port using TCP or UDP.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Voice Input to capture the data. Specify the capture settings as needed.
  • Select an output method:
    • Enable Keystroke Output to collect the data and deliver it as a series of keystrokes, eliminating the need for any application coding.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Internet Protocol (IP) Output to collect data and pass it to a specific IP address and port using TCP or UDP.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Barcode Input to capture the data. Specify the capture settings as needed, including: set Scanning Mode to MultiBarcode (part of NG SimulScan) and set MultiBarcode parameters.
  • Select an output method:
    • Enable Keystroke Output to collect the data and deliver it as a series of keystrokes, eliminating the need for any application coding.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Intent Output to collect data and pass it programmatically to an app using DataWedge intent APIs.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
    • Enable Internet Protocol (IP) Output to collect data and pass it to a specific IP address and port using TCP or UDP.
      • Enable Basic Data Formatting if one of the following is required:
        • Add prefix to the data
        • Add suffix to the data
        • Send data as hexadecimal
        • Append a TAB character
        • Append an ENTER character
      • Enable Advanced Data Formatting if custom data processing rules are required.
  • Specify the scanning device through Scanner Selection.
  • Enable the desired barcode type, or decoder, to scan and specify decoder parameter options, if needed.
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
Use the DataWedge Notify API to play notification sounds and/or activate aa colored LED following a scan from a connected Bluetooth scanner with Remote Scanner Management (RSM).

Data Formatting:
Select one of the data capture input methods, e.g. barcode, MSR, RFID, etc., to acquire data and follow the steps supplied for either Basic Data Formatting or Advanced Data Formatting.

Configuration:
Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Data Capture Plus. Specify the settings as needed.
  • Tap and hold the designated screen area for the device to respond as if the hardware trigger was pressed.
  • Create a profile specifying the input, process, output, and associated app(s). Alternatively, use Profile0, the default generic profile that applies to any app that comes to the foreground that is not associated with a profile. See Profiles for more information.
  • Enable Enterprise Keyboard Configuration. Specify the settings as needed.
  • The designated Enterprise keyboard automatically appears as the on-screen keyboard for each user input field within the associated app.
  • See Deployment for manual or mass deployment.
    Restore DataWedge to factory default settings.

    Security:

    Developer Role

    Develop data capture apps using one of the following methods:

    • Generic Android intents (low-code) - Basic method to receive data from generic Android intents via broadcast receiver, service or activity without the need for finer control of scanning or data processing. Refer to basic intent sample app.
    • DataWedge APIs - Use DataWedge APIs based on Android intents to control DataWedge settings and specify how the data is captured, processed, and delivered to the app without concern of the underlying hardware.

    General steps to develop an app using DataWedge intent APIs:

    • Create a profile to control how the data is captured, processed and output.
    • Register for the intent in your app.
    • Receive the intent in your app, extract the data from the Intent extras and process it as needed.

    For additional developer resources, refer to Programmer's guides, Developer Articles and Blogs and Samples providing guidance on use of DataWedge intent APIs and best practices.


    Best Practices

    Zebra strongly recommends the use of DataWedge for all applications that require barcode scanning. While Zebra will continue to support EMDK Barcode APIs, the efficiency and feature richness of intent-based interfaces make it a simpler alternative to app development than using EMDK Barcode APIs. Developing EMDK apps require a thorough knowledge of scanning APIs - designing and coding EMDK apps can be time consuming due to its higher level of difficulty. DataWedge offers a simpler interface, better API ease-of-use and flexibility. DataWedge data may be retrieved from any application regardless of the underlying application technology (e.g. Java, Xamarin, any cross-platform framework that supports intents). EMDK provides a subset of DataWedge features. See DataWedge vs EMDK Comparison table for more information.

    Important: Control of barcode scanning hardware is exclusive. If an app uses EMDK for scanning, it takes priority over DataWedge and scanning still takes place. If this EMDK app does not relinquish control of the scanner, it prevents apps that rely on DataWedge from scanning. Therefore, it is important to understand how to take control of a device's scanner hardware and, if necessary, release it to other apps when scanning is complete.

    If there are two different apps on a device that use DataWedge to capture data and both apps send an Intent whenever data needs to be captured, the action of that Intent would be different for each app. Therefore, two separate DataWedge profiles can be created, each containing different settings for the Intent plugin for both apps to be used seamlessly to capture different types of data.

    See Best Practices within the DataWedge Programmer's Guide.


    Related information: