【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コードイメージ
QRコードを作成するInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。
①バーコード作成用インスタンスを生成
②バーコードの種類=QRコードに設定
③バーコードイメージのサイズ設定(240×240)
④バーコードイメージのマージンを設定
⑤バーコード化する文字コードを設定
⑥エラー訂正レベルを設定
⑦バーコードイメージ作成
■QRコードを読み込むInvoke Code
Invoke Codeアクティビティの引数を定義します。
In_Image System.Drawing.Image QRコードイメージ
Out_CodeFormat String コードフォーマット
Out_Data String コード化された文字列
QRコードを読み込むInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。
①バーコード作成用インスタンスを生成
②自動回転処理有効
③オプション指定
④読出処理を可能な限り入念に行うように設定
⑤バーコード読出
⑥結果の有無を判断
⑦正常であれば、バーコードのフォーマット、バーコードデータを取得
◇シーケンスを作成するための準備
・UiPathのパッケージ管理からZXing.NETパッケージをインストールします。
■UiPathでQRコードを作成するシーケンスの作成
以下の手順でシーケンスを作成します。
①UiPathのプロジェクトを作成
②UiPathのシーケンスを作成
③UiPathの画面から以下をインポート
System.Drawing
ZXing
④以下の変数を定義する
Data String QRコード化する文字列
Image System.Drawing.Image QRコードイメージ
File String QRコードファイル
⑤代入アクティビティを追加し、Data変数にQRコード化する文字列を設定する
⑥Invoke Codeアクティビティを追加し、コード編集で、
QRコードを作成するコードを設定する
⑦画像を保存するアクティビティを追加する
入力プロパティのファイル名、画像(Image変数)を設定する
⑧実行する
■UiPathでQRコードを読み込むシーケンスの作成
以下の手順でシーケンスを作成します。
①UiPathのプロジェクトを作成
②UiPathのシーケンスを作成
③UiPathの画面から以下をインポート
System.Drawing
ZXing
④以下の変数を定義する
Image System.Drawing.Image QRコードイメージ
CodeFormat String コードフォーマット
Data String コード化された文字列
File String QRコードファイル
⑤代入アクティビティを追加し、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を参照設定することで利用できました。
以下からサンプルコードをダウンロードすることが可能です。
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?