用途
お出かけのときに「いま玄関の鍵閉めたよね?」と何度も戻って確認したくなっちゃう感じ。
リリースファイルを作ったけど、「中身ほんとに合ってる?」と確認したくなっちゃう人へ。
もしくは、「これ、いつの何のリリースファイルだっけ?」「リリースファイルが3個あるけど一番内容が新しいやつはどれ?」と確認したい場合など。
作り方
Blue Prism Communityの、BluePrint(開発や運用の事例を投稿するカテゴリ)の投稿から元になるVBOを拾ってきます。
Making release management faster for a Centre of Excellence
中身はとてもシンプル。リリースファイルのXMLをコレクションにして返すだけです。
このアクションで出力されたXMLコレクションは、こんな形になっています。
アクションの中身も超シンプル。
「Read File」コードステージで、こうやってファイルを読んでテキスト型のデータアイテムに格納してから
XML = File.ReadAllText(Path)
「Get XML Tree View」コードステージで、そのテキストをコレクションに格納。
はーこんなシンプル綺麗にできるもんなのね。
Dim xmlDoc As New XmlDocument()
xmlDoc.LoadXml(xmlData)
' Initialize DataTable and define columns
'Dim dt As New DataTable("XMLStructure")
dt.Columns.Add("HeadParent", GetType(String))
dt.Columns.Add("HeadElement", GetType(String))
dt.Columns.Add("NodeType", GetType(String))
dt.Columns.Add("Value", GetType(String))
dt.Columns.Add("Attributes", GetType(String))
' Populate DataTable with XML elements
If ProcessXmlNode(xmlDoc.DocumentElement, dt) Then
Console.WriteLine("XML processed successfully.")
Else
Console.WriteLine("XML processing failed.")
End If
そして、このアクションを大改造したものがこちら。
一番左のブロックが、もともとあったコードステージです。
リリースファイル情報
このXMLコレクションから「HeadParent」が「bpr:release」のものだけを抽出すると、リリースファイルの以下の情報が得られます。
- パッケージ名
- リリースファイル名
- リリースファイル作成日時(UTC)
リリースファイル内容物一覧
「HeadParent」が「bpr:contents」のものだけを抽出します。
「Attribute」列には、各々の内容物の情報が入っています。
- id
- 名前(プロセス名、VBO名、環境変数名、など)
- 種類(プロセス、ワークキュー、認証情報、など)
※種類については、プロセスもVBOも「プロセス」となります
Attributesの値は、たとえばプロセスだとこんなかんじ
id = e77999df-1a17-9999-9b7e-33c999999956; name = サンプルプロセス001; published = true; xmlns = http://www.blueprism.co.uk/product/process;
これを、Utility - Strings の split text アクションでバラして得た情報を蓄積していけば、内容物の一覧を得られます。
終わりです
Blue Prism Community は、検索がアレだし、リニューアルされてどこに何があるかが変わっちゃったので、欲しい情報を探すのが骨なんですが、それでも公式なだけに情報量が圧倒的です。ほんとマジでマメに見といて損はない。
日本語のコミュニティもあります。
Communityのアカウント登録はユーザでなくてもできて、メアド(企業アカウントじゃなくても、Gmailとかで大丈夫)さえあればOK。ちょっと覗いてみようくらいの感じでお試しください。