0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発でチャレンジして、失敗・成功したことをシェアしよう by 転職ドラフトAdvent Calendar 2024

Day 21

リリースファイルの中身を確認するVBOを作りました。 #blueprism

Last updated at Posted at 2024-12-20

用途

お出かけのときに「いま玄関の鍵閉めたよね?」と何度も戻って確認したくなっちゃう感じ。
リリースファイルを作ったけど、「中身ほんとに合ってる?」と確認したくなっちゃう人へ。
もしくは、「これ、いつの何のリリースファイルだっけ?」「リリースファイルが3個あるけど一番内容が新しいやつはどれ?」と確認したい場合など。

作り方

Blue Prism Communityの、BluePrint(開発や運用の事例を投稿するカテゴリ)の投稿から元になるVBOを拾ってきます。
Making release management faster for a Centre of Excellence

中身はとてもシンプル。リリースファイルのXMLをコレクションにして返すだけです。
image.png

このアクションで出力されたXMLコレクションは、こんな形になっています。
image.png

アクションの中身も超シンプル。
「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

そして、このアクションを大改造したものがこちら。
一番左のブロックが、もともとあったコードステージです。
aaa.png

リリースファイル情報

この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。ちょっと覗いてみようくらいの感じでお試しください。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?