Mobile Dev, Office365, Power Apps

Badge printing with Power Apps – 2. Sending the print job to the printer

This is part of the series Badge printing and more with Power Apps

After choosing the printer the challenge was to send the print job to it. As explained in the previous post, the printer would be available only on local network, so there is no direct access from Internet to it. That’s why we had to establish a link between Power Apps (Microsoft 365) and the local IP address of our printer (on-premises network) and send the print job.

But how?

Let’s describe the process from the end to start:

  • The badge would be printed by the printer
    • the Brother printer understands ESC/P commands
      • containing the ESC/P commands, a file should be generated including the visitor information
        • the visitor information should be transferred to a local server by a Flow (Power Automate)
          • the Flow collects the visitor information from Power Apps App

Ok, now let’s start from the beginning like normal people 🙂

The Flow collects the visitor information from Power Apps App

This step is straightforward, one needs to create a Flow which will be called by the Power Apps app using parameters.
There is a template for that called “Power Apps button”. I recommend you this video about how to handle the parameters generated by “Ask in PowerApps”.

We are passing the following information from Power Apps: first name, last name and company name.

The visitor information should be transferred to a local server by a Flow (Power Automate)

In the Flow created in the previous step we need to add a new action and generate a .txt file and save it on a local server. Here comes the on-premises data gateway in action:

On-premises data gateway

Microsoft has that figured out and provides local access through the On-premises data gateway. The service was originally built for PowerBI (hence the service name PBIEgwService) but it can be used by the Power Platform products: Power Automate, Power Apps.

Be aware that the on-premises gateway is a premium feature and requires a premium license!

Installation and configuration

  • Installing the gateway
  • Signing in and configuring proxy (if needed) and service user
  • Test connectivity
  • Test if service is running

After that this new gateway should appear in the list in Power Automate Portal -> Data -> Gateways

Adding a new connection in Power Automate using the newly created Gateway

In order to generate and save a file on a local server we must create a new connection using the gateway.
This is done in Power Automate Portal -> Data -> Connections -> New Connection -> File System

Root folder is required and must a folder path (e.g. \MACHINE\myShare or C:\FolderName)
Authentication Type is “Windows”
Username is required and is the local username credential (e.g. DOMAIN\Username)
Password is required and is the local password credential
Gateway is required and is a selection of created gateways

Here is the official Microsoft documention about the File System Connector

Now we are able to add “Create File” operation using the Connection created above and specifying then path and the file contents.

In the next blog post from this series we will handle the ESC/P commands and converting the collected visitor information to a format that can be understood by the printer.

Mobile Dev, Office365, Power Apps

Badge printing with Power Apps – 1. Checking the printing requirements of the chosen printer

This is part of the series Badge printing and more with Power Apps

Introduction

I have been developing a visitor registration app for the company I work. Since we already have Office365 licenses and we are heavily using SharePoint, Teams and other Microsoft products, I thought, why not using Power Apps to build a kiosk mobile app which will run on a tablet in the office. Kiosk as in always on, just sitting in the office lobby. Secured with a lock of course, what did you think? 🙂
The big advantage of Power Apps is that the same app will be available for all the coworkers on web or on their mobile phones. Build once, run it everywhere…

Badge printing

Everything went well, the app was running and visitors were successfully checked in and out. But the killer feature was missing – badge printing. All the other important visitor management solutions offered this feature.

The chosen printer

After some research, I went with the Brother QL-820NWB

  • N stands for Network connection
  • W stands for Wireless connection
  • B for Bluetooth connection

The specifications were great, having all the connectivity options already available. Unfortunately with Power Apps you cannot use the native features of the device like Bluetooth connectivity to send a print job to the printer.

Brother provides quite an extensive documentation for developers and a SDK, which again, wasn’t useful in our case.

So I had to find a workaround to get the Power Apps app to communicate with the printer.

The solution was to use the ESC/P commands to send the template and the contents to the printer.
Perfect, the tablet the app was running on was connected to the office Wifi. The printer was connected to the same network via cable. The devices were sitting right next to each other. They should be getting along fine, right?
Wrong! 🙂 Because Power Apps runs in the cloud context (Office 365) and it doesn’t care about your local network.

So, I had to find the way to send the print job to the printer…

Mobile Dev, Office365, Power Apps

Badge printing and more with Power Apps

I have been procrastinating this for a long time now. The time has come to blog again. 🙄

Objective: Badge printing
Product: Power Apps – Office365

This will be a series of a couple of posts since there is a lot of info and I have been struggling a lot to make it work.
To start of, printing is not available by default in Power Apps. One must find a workaround and this is exactly what I did. And it works!

  1. Checking the printing requirements of the chosen printer
  2. Finding the way to send the print job to the printer
  3. Esc/P commands – a whole new (ASCII) world
  4. Testing, a lot of testing
  5. Voilà!

Stay tuned, the first article will be published soon!