【RPA】UiPath Invoke CodeでQRコードを作成・読み込む

#RPA #UiPath #DX #ビジネス #ソフトウェア

RPAツールであるUiPathでは、
GUIによってアクティビティと呼ばれる処理の部品を選択して貼り付けることで、
パソコンで行うための一連の動作を組み立てることができます。

各処理ではVisualBasic言語(VB.NET)によって、原則、1行だけのコードを書く(プログラミング)ことができます、。
それだけでは収まらない処理は「コードを呼び出し(Invoke Code)」というアクティビティによって、
複数行のコードをプログラミングすることができます。

Invoke Codeアクティビティは、原則、一つのVB.NETのSUB関数としての機能でしかなく、
一つの関数を作るようなイメージです。
(Invoke Codeアクティビティ内で複数の関数を定義することは現状ではできません)

今回は、Invoke Codeアクティビティによって、
QRコードを作成・読み込むコードを作成しました。

URLなどの情報をQRコードにすることで、
QRコードをカメラから読み込む込むだけで必要な情報を入手できます。

■QRコードを作成するInvoke Code

Invoke Codeアクティビティの引数を定義します。

 In_Data String QRコード化する文字列
 Out_Image System.Drawing.Image QRコードイメージ

画像1


QRコードを作成するInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①バーコード作成用インスタンスを生成
②バーコードの種類=QRコードに設定
③バーコードイメージのサイズ設定(240×240)
④バーコードイメージのマージンを設定
⑤バーコード化する文字コードを設定
⑥エラー訂正レベルを設定
⑦バーコードイメージ作成

画像6


■QRコードを読み込むInvoke Code

Invoke Codeアクティビティの引数を定義します。

 In_Image System.Drawing.Image QRコードイメージ
 Out_CodeFormat String コードフォーマット
 Out_Data String コード化された文字列

画像2


QRコードを読み込むInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①バーコード作成用インスタンスを生成
②自動回転処理有効
③オプション指定
④読出処理を可能な限り入念に行うように設定
⑤バーコード読出
⑥結果の有無を判断
⑦正常であれば、バーコードのフォーマット、バーコードデータを取得

画像7

◇シーケンスを作成するための準備
・UiPathのパッケージ管理からZXing.NETパッケージをインストールします。

画像3


■UiPathでQRコードを作成するシーケンスの作成

画像8

以下の手順でシーケンスを作成します。

①UiPathのプロジェクトを作成
②UiPathのシーケンスを作成
③UiPathの画面から以下をインポート

 System.Drawing
 ZXing

④以下の変数を定義する

 Data String QRコード化する文字列
 Image System.Drawing.Image QRコードイメージ
 File String QRコードファイル

画像4

⑤代入アクティビティを追加し、Data変数にQRコード化する文字列を設定する

⑥Invoke Codeアクティビティを追加し、コード編集で、
 QRコードを作成するコードを設定する

⑦画像を保存するアクティビティを追加する
 入力プロパティのファイル名、画像(Image変数)を設定する

⑧実行する

■UiPathでQRコードを読み込むシーケンスの作成

画像9

以下の手順でシーケンスを作成します。

①UiPathのプロジェクトを作成
②UiPathのシーケンスを作成
③UiPathの画面から以下をインポート

 System.Drawing
 ZXing

④以下の変数を定義する

 Image System.Drawing.Image QRコードイメージ
 CodeFormat String コードフォーマット
 Data String コード化された文字列
 File String QRコードファイル

画像5

⑤代入アクティビティを追加し、File変数にQRコードファイルのパスを設定する

⑥Invoke Codeアクティビティを追加し、コード編集で、
 QRコードファイルからQRコードイメージを読み出すコードを設定する

⑦Invoke Codeアクティビティを追加し、コード編集で、
 QRコードを読み出すコードを設定する

⑧一行を出力するアクティビティを追加し、コードフォーマットを出力する

⑨一行を出力するアクティビティを追加し、コード化された文字列を出力する

⑩実行する

※本記事のサンプルコードに関しては、一切の責任を負いません。
 すべて自己責任でお願いいたします。

■上記のサンプルコードプロジェクトを提供します(著作権フリー)

①UiPathプロジェクト(UiPathPrj_InvokeCode_QRcode)

 2つのサンプルシーケンスを準備しました。

  QRコードを作成するシーケンス
  QRコードを読み込むシーケンス

 ※UiPath Community Editionで作成
  (UiPath Studio Pro 2020.10.0 Community License)

②VBコンソールアプリケーションプロジェクト(VBPrj_InvokeCode_QRcode)
 
 Invoke Codeアクティビティ内でデバックすることは困難なので、
 一度、VBコンソールアプリケーションとしてプログラミングし、
 デバックをしてからコピー&ペーストしたほうが効率的です。

 そのため、Invoke Codeアクティビティで動かす同じコードを
 VBプロジェクトから動作させるようにしてあります。

 ※Microsoft Visual Studio Community 2019 Version 16.7.6で作成
 (Microsoft.NET Framework Version 4.8.03752)

 ※VBコンソールアプリケーションプロジェクトを使用する場合、
  QRコードを作成・読み出すライブラリとして、ZXing.NETを利用します。

  以下からダウンロードし、ZIPファイルを展開します。

   https://github.com/micjahn/ZXing.Net

  ZIPファイルを展開すると、.NETのバージョンに対応したDLLが入手できます。
  PCにインストールされている.NETのバージョンあわせたzxing.dllを参照設定してください。

  .NETのバージョンはレジストリエディタ(regedit)で以下のキー(Release)を参照すればわかります

   HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Relaese

この値と.NETのバージョンバージョンの対比は、以下を見れはわかります。
  
   https://docs.microsoft.com/ja-jp/dotnet/framework/migration-guide/versions-and-dependencies?redirectedfrom=MSDN

  (注)私のPCは、.NET Framework 4.8であるため、zxing.dllもnet4.8配下のものを参照設定しましたが利用できませんでした。
     代わりに、net4.7配下のzxing.dllを参照設定することで利用できました。


以下からサンプルコードをダウンロードすることが可能です。


ここから先は

24字 / 1ファイル

¥ 100

この記事が気に入ったらサポートをしてみませんか?