8
0

More than 1 year has passed since last update.

【UiPath】Xamlファイルを開いてみる

Last updated at Posted at 2021-07-14

はじめに

この投稿は、RPA ツールの UiPath でフローのファイルとして使用される「Xaml」ファイルについての記事です。
全部は紹介しきれないので、ざっくり概要だけ紹介します。

この投稿は、UiPathのコミュニティ「UiPath Friends」が企画する「UiPathブログ発信チャレンジ2021サマー」の 14日目の投稿でもあります。

企画の内容は こちら 。カレンダーのURLは こちら です。

Xamlとは

Xaml(ザムル)はExtensible Application Markup Languageの略で、XMLベースのマークアップ言語です。.NET Framework 3.0以降のテクノロジーにおいて広範囲にわたり使用されています。データ構造やUi定義によく使用されますが、UiPath/Windows Workflow Foundation(※)では「ワークフローを定義する」ために使用されます。

UiPathは「Windows Workflow Foundation」をベースに作成されています。

Xamlを開いてみる

今回は、Ref(Robotic Enterprise Framework)の「Main.xaml」を開いてみてみます。

image.png

上部:ワークフローの設定

xamlの上部には、XMLネームスペース(xmlns)、引数(x:Members)、注釈(AnnotationText)、画面サイズ(HintSize)、使用するDLLネームスペース(NamespacesForImplementation・ReferencesForImplementation)などがあります。
image.png

XMLネームスペースは、XAML内で記述するタグの説明です。例えば、

xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation" 

とありますが、これは 「SAP」と言ったら「Schemas・・・Activities/Presentation」を指す という意味です。(ERPのSAPではありません)
同じようなネームスペースで

xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation" 

とありますが、これは上記SAP(Schemas・・・Activities/Presentation)の2010バージョンを指しています。
2010年に .NET Framework 4 に対応するために、Windows Workflow Foundation が大きくアップデートされたので、その対応版の機能であることをしてしているようです。

また、「.NET Framework」を示すネームスペース「X」や

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml

UiPath独自のコンポーネントを示すネームスペース「ui」などもあります。

xmlns:ui="http://schemas.uipath.com/workflow/activities

ネームスペース以外のブロックを見てみると、引数を示す「x:Members」や変数を示す「x:boolean」などもあります。

「NamespacesForImplementation」や「ReferencesForImplementation」はそのxamlで使用する、DLLのネームスペ-スを表します。

「VirtualizedContainerService.HintSize」はフローの横幅を示します。ちょっと保存しただけで、値が変わってしまうので、GitやSvn等のリポジトリ管理ツール泣かせのタグです。

<sap:VirtualizedContainerService.HintSize>707.333333333333,860</sap:VirtualizedContainerService.HintSize>

真ん中から下

使用するフローの種類でタグが変わり「Sequence・FlowChart・StateMachine」のいずれかになります。Xamlを追加する時に選択する「フローの種類」と同じです。
image.png

中を見てみると「Variableタグ」で変数が定義されていたり「Sequenceタグ」 で シーケンスが表現されています。UiPath独自のアクティビティなら「Ui:」とタグに書かれます。

見ていくと分かるのですが、Sequence等のフローの大枠は「Windows Workflow Foundation」の機能をそのまま使っているようで、UiPathのベースが「Windows Workflow Foundation」であることが感じ取れます。

Xamlを解析する

上記の通り、xamlファイルの中身を読み取れば、処理の内容がわかります。

  • どういうアクティビティを使用しているか?
  • 変数のスコープはどうなっているか?
  • 他のアプリケーションを呼び出しているか?

などを出力することも可能で、コードレビューや見直し、ドキュメント作成に利用できます。

そこで、以下のようなツールを作成しました。

実行すると、プロジェクトの内容をHTMLで出力します

cb1becf2-8a47-4ac1-9aeb-06c340394809.png

終わりに

いかがでしたでしょうか。
xamlを開く機会はあまりないとは思いますが、何かの参考になれば幸いです。

この記事が参考になったら「LGTM」をお願いします。閲覧ありがとうございました。

8
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0