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?

ライセンス情報とは

これです。
ライセンス画面.png

これをExcelに保存できないかなーというお話。
手でコピペ…… まあたくさんあるわけでもないし手作業でもいいっちゃいいけど、いちいち手でやるのはめんどくさいしダサいよね……。

どこから取得できるの

BPALicenseテーブル、ライセンス情報があるのはlicensekey列です。
値はBase64エンコードされています。
これをデコードするとライセンス情報をXML形式で取得できます。

つまり

BPALicenseテーブルから情報を取得
 ↓
デコード
 ↓
XMLをバラす

という手順。

BPALicenceテーブルから情報を取得

BPのDBは普通のDBです。
つまりSSMSとかで普通に扱えるやつ。
ということは、OLEDB VBOでSQL文を投げてやればオッケーです。
OLEDB VBOは標準VBOです。

OLEDB自体の解説は、良いのがあちこちにあるので、それを読んでください。

OLEDB VBOの「Get Collection」アクションで投げるSQL文は

SELECT licensekey FROM [DB].dbo.BPALicense

戻り値の型はCollectionです。

SELECT * でテーブルが全部まるっと取得できる……こともありますが、特殊なデータ型(System.Guid)になっている列がある場合は取得できず、エラーになってしまいます。
このBPALicenseテーブルもそのクチです。
なので、ほしい列名を明示して取得するほうが手堅いようです。

Guid型の列であっても取得したい(たとえばプロセスIDなどがそうです)場合は、ただ列名を書くのじゃなくて、こう書けば取得できます。
Guidは36文字なので、Charだと桁数が足りません、なので文字数を明記してあげます。

cast(Processid as Char(36)) as Processid

デコード

取得した値をデコードします。
デコードは、DXにVBOがあります。ユーザーガイドとサンプルプロセスもそこに置いてあります。
Utility - Encode Decode
サンプルプロセスを参照して、「Base64 Decode」ステージをコピペして使用してください。

戻り値の型はText。XML形式で取得できます。

XMLをバラす

XMLのままだと可読性もアレだし項目が分かれていないと使いづらいので、Collectionの形に整形します。
XMLをコレクションにするのはDXにあります。サンプルプロセスとユーザーガイドもこちらに。
Utility - XML

整形の手順はだいたいこんな感じ。

  1. 「Get Child Elements」アクションで、まずXMLの行をバラします。
  2. 値がカラでないかを検分します。カラだったら当該行は捨てます。
    ・バラした行に「Strip Tags」アクションを使って、タグを除いて本文だけにします。
    ・本文のLengthが0だったらその行はカラ。
  3. バラした行に「Get Element」アクションを使って「Name」「Value」を取得。
  4. 「Name」が見出し(タグ名)、「Value」が値です。出力用Collectionに追記します。
  5. (オプション)出力用Colletionは「Name」「Value」の2列で作成してあるので、1行Collectionのほうが扱いやすいなら転置します。

※転置は、DXにある 日商エレクトロニクスのすごいやつ の「NEO - コレクション」VBOの中に、転置のアクションがあります。

整形.png

取得したCollectionをExcelに書き出す

あとはCollectionで有効なライセンスだけ選別するとか、必要な項目だけにするとかしてからExcelに書き出すと、だいたいこんなようなExcelが取得できます。
Excel.png

終わりです

DXマジでたいていのものはあります。
なくても近いものを拾ってきて改造すれば、ゼロから作るより断然ラク。
こういう機能ないかなーと思ったらまずDXを捜索はマスト。検索機能クソだけど頑張れば見つかる。

それでもなかったらIdea Portalに投稿しておきましょう。BP社の中の人がどうにかしてくれるかも。
Idea Portal

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?