DA# Macro(1): DA#, DA# API, DA# Macro (マクロ)の概要
今回の記事では、国産データモデリングツールであるDA#を紹介し、DA# v5から提供されるAPIとそれを活用して開発したツールであるDA# Macro(マクロ)について見ていきます。
1. DA# Macro(マクロ)の概要
1.1。データモデリングツールDA#
DA#は、ERD(Entity Relationship Diagram)で表現されるデータモデルを作成・管理できる国産ソフトウェアで、開発会社はエンコア(https://en-core.com/)である。
DA#ホームページ: https://www.en-core.com/solution/solution2
DA#画面は以下の通りです。 DA#に含まれている例示モデルを開いた画面である。
DA#の主な機能は次のとおりです。
主な機能のうち、APIのサポートに関する内容があります。
DA#はv5.0(2016年リリース)からAPIを提供します。参考として、外産データモデリングツールであるERwin、PowerDesignerもやはりAPIを提供している。
1.2. DA# API
1.2.1。データモデリングツールにAPIが必要な理由
データモデリングツールは、基本的に二次元平面に四角形のボックスを配置し、ボックスの内容を埋め、ボックスを線で結ぶ描画ツールです。キーボードよりはマウスを多く使うしかない特徴がある。
- 生産性の面での理由
- マウス操作はキーボード操作よりも生産性が劣ります。マウスで行う作業は自動化が難しく、同様の作業を毎回手作業で処理しなければならない。 (例:リバースエンジニアリング、エンティティをダイアグラムに配置(位置移動)、複数モデルのエンティティ名/属性名の一括変更など)
- 頻繁に繰り返される作業をツールにして使用すると作業にかかる時間を減らすことができ、人なら誰でもできるミスを減らしたり、まったく除去して品質を高めることができる。
- このようなツールを作成するには、データモデリングツールが提供するAPIが必要です。
- 健康面の理由
- マウスを大量に使用すると、手首トンネル症候群の症状が現れることがあります。ひどい場合、手首と指がしみ、痛みがひどくて仕事ができないほどだ。
- 人によって感じる痛みの程度は大きく異なるが、私の場合はひどく現れる方だ。
- 痛みを少しでも減らすにはマウスの使用を最小限に抑える必要があります。この場合、データモデリングツールのAPIを活用すると役立ちます。
特に、データモデルファイルが1つまたは2つではなく数十〜数百個以上の場合に一括で情報を取り込むか、モデルの一部の情報を変更したい場合は、APIの活用が不可欠です。
1.2.2。 DA# APIの概念とオブジェクトモデル
API(Application Programming Interface)のウィキバックと定義は次のとおりです。
API(Application Programming Interfaceアプリケーションプログラミングインタフェース[*]、アプリケーションプログラムプログラミングインタフェース)は、アプリケーションプログラムで使用できるように、オペレーティングシステムやプログラミング言語が提供する機能を制御できるようにしたインタフェースを意味します。主にファイル制御、ウィンドウ制御、画像処理、文字制御などのためのインターフェースを提供する。
*ソース: https://ko.wikipedia.org/wiki/API
簡単に言えば、APIはあるアプリケーションを別のアプリケーションで制御する方法です。
*参考YouTubeビデオ:DA# 5のAPIと利便性 – DA# 5ローンチセミナー(https://www.youtube.com/watch?v=iGS7B-hJE-4)
DA# APIマニュアルの概念図は次のとおりです。
以下は、DA# APIの最上位エンティティであるアプリケーションの概略図です。
Excel Object Modelと同様に、DA# APIでもObject Modelの概念がある。
注: Excel VBAコース(3):Excel Object Model
DA# APIの完全なObject Modelは次のとおりです。 (公式マニュアルにはない内容であり、直接整理した。)
次の内容を参考にしてください。
- 上の図では、背景色が濃く表示されているオブジェクトはコレクションオブジェクトです。
- 緑色の矢印は同じオブジェクトタイプを指します。オブジェクトモデルの階層を構成するオブジェクトの一部は、他の階層の子にも表示されます。 (対象オブジェクト: Models, Entitys, Attributes, Relations, Tables)
- UDPSは、この記事を書いている現在のDA#バージョン(v5.1.0.4)では、member変数として提供されておらず、関数を介してアクセスできます。
1.3。 DA# Macro(マクロ)ツールの紹介
DA# Macro(マクロ)は、DA# v5が提供するAPIを活用してデータモデルにバッチジョブを実行できるツールです。 Excel VBAで実装されており、DA# v5のAPIを使用しています。
複数のプロジェクトでデータモデルに関連するタスクを実行しながら、繰り返しパターンのタスク(Get、Set)と最もマウスを多用するタスク(Reverse)の生産性と品質を高めるために直接開発した。 2018年4月にv1.0を作成し、最近のバージョンは2021年1月12日v2.11です。
バージョン履歴は以下の通り。 3番目の項目であるDA# Versionは、そのバージョンのMacroが正常に動作するDA# Versionを意味します。
日付 (Version) | 内容 | DA# Version |
2021-08-14 (v2.12) | – Githubの公開用途にライセンス内容の一部を修正 - 各シート機能の下部メッセージを削除する(ボタンをクリックする前にDA#でModalウィンドウを表示すると、パフォーマンスが大幅に向上します(例:New Modelウィンドウ)。 –> DA# v5.0.19.32以降、API動作時に内部でModalウィンドウが表示され、パフォーマンスが向上し、メッセージガイダンスが不要になる [修正]エンティティ、プロパティProperty Getメソッドをarrayアプローチから個々のプロパティアプローチに変更する(v1.32変更のスーツ) – arrayアクセス時に一部のプロパティ値を取得しない問題がある [修正]属性定義をエンティティの最初の属性のみを取得するバグを修正 | 5.0.20.2以降 |
2021-01-12 (v2.11) | [修正] Reverse入力ファイルを書き込み可能に読み込み、読み込み、閉じないオプションを追加 | 5.0.20.2以降 |
2021-01-12 (v2.10) | [Add] Reverse 詳細機能の追加 - エンティティグループ名テキストボックスを追加する(フォント名、フォントサイズは設定できません) (テキストボックスを追加するAPIはv5.0.20.2で初めて提供されているので、バージョンをよく確認して使用してください!) | 5.0.20.2以降 |
2021-01-10 (v2.00) | [Add] Reverse機能追加:Excelファイルで作成されたテーブル定義書、列定義書からDA#モデルを生成 – 複数のモデルを一度にReverse(各モデルごとのDBMSType、定義設定可能) – テーブルのトピック領域を設定してトピック領域別に分けて Reverse – エンティティグループ指定で1つのテーマ領域内でグループ別に1つの位置にまとめて配置 – エンティティグループ名テキストボックスの追加は後で… (現在のテキストボックス生成APIは提供されていません) - UDP設定はこのバージョンでは含まれていません(将来必要に応じて含まれています) [修正]データの最初の行の名前付き範囲をヘッダーに変更する(最初の行を削除した場合のエラーの防止) | 5.0.19.32以降 |
2020-12-05 (v1.32) | [Enhance] エンティティ、プロパティ Property Get/Set 方法を個々のプロパティアクセスからアレイアクセスに変更 - 少なくとも2倍から3倍のパフォーマンスが向上 – Array アプローチで提供されていないプロパティの一部を除外 (例: プロパティ-DomainName, UDP) [Add] Attribute(Set) 項目に ReverseTable、ReverseColumn、ReverseType、ReverseLength を追加 | 5.0.19.32以降 |
2020-08-06 (v1.31) | [修正] エンティティ、プロパティ Property中に複数行を入力できるプロパティの行分離文字処理 – 対象 Property: エンティティ定義、データ処理形式、特異事項、注、属性定義 - 変更前:Excelにエンティティ定義を複数行で入力してもDA#に反映された結果は1行になる – 変更後:複数行を正常に反映 [修正] Entity(Get)、Attribute(Get)シートに1行しかない場合、CopyToSetボタンのエラーを修正 | 5.0.19.12以降 |
2020-03-01 (v1.30) | [修正]変更されたプロパティの処理(Model.FilePath –> Model.GetFilePath()) | 5.0.19.12以降 |
2018-11-10 (v1.23) | [修正] Attribute(Set)でVariant Arrayを使用するように変更する(Transposeを使用しない) | 5.0.13.7以降 |
2018-11-07 (v1.22) | [修正]トピック領域別エンティティ、属性リスト抽出からモデル別エンティティ、属性リスト抽出に変更 [修正] Variant ArrayのTransposeを実行するとType Mismatchエラーが発生し、Range.Offsetアクセスに変更 | 5.0.13.7以降 |
2018-09-09 (v1.21) | [修正] Attribute リスト Load 方式の変更 (Application.WorksheetFunction.Index –> Variant Array で直接読む) [修正] GetModelを変更する:作業対象のモデルがすでに開いている場合に再開しないように処理する(Model.FilePath Propertyを使用する | 5.0.13.7 |
2018-09-04 (v1.20) | [修正] Range.Offset(…) ダイレクトアクセスをVariant Arrayに変更してパフォーマンスを向上 [Add] Get/Set 項目選択機能を追加 [Add] UDP Get/Set 機能を追加 [Add] 開いているモデルをリストに追加する機能を追加(保存&閉じるか選択可能) | 5.0.13.4 |
2018-04-14 (v1.10) | [修正] Range値のアプローチをRange.TextからRange.Value2に変更 [修正] SetでRange値がVLOOKUP結果#N/Aなどの無効な値のときにスキップするように修正 [修正] Attribute(Get)の抽出項目の順序を調整する(テーブル名と属性名の位置を変更) [修正] Attribute(Set) の定義項目 set されないバグを修正 [Add] Get/Set ボタンをクリックすると「続行しますか?」メッセージで確認 [Add] パフォーマンス向上のため Undo/Redo 解除 (Model.ActiveAction(False)) [Add] SetにもProgressBarを適用 [Add] Copy to Set ボタンを追加 | 5.0.11.8 |
2018-04-08 (v1.00) | 最初の展開(Entity / Attribute Get / Set基本機能を提供) | 5.0.11.8 |
この記事(Excel VBAコース(10):Excel VBAで開発され使用されているツール)で次のように紹介した。
国産データモデリングツールであるDA#の活用度を高めるMacroツールだ。 DA#は「一括編集」という優れた機能を提供していますが、1つのモデル単位でのみ可能です。このツールは、エンティティ/プロパティ情報の取得(Get)、修正(Set)、およびReverse機能を一度に複数のモデルで処理できるようにしました。
たとえば、100個のデータモデルファイルがあるときに、データモデル全体で管理されるエンティティ名の前後に一括して特定の値(システム名または業務名、使用可否など)を加算して既存の名称を変更したいとします。みましょう。
「一括編集」機能を使用しても、毎日各データモデルファイルを開き、「一括編集」画面で作業後に保存、閉じ、次にファイルに対して繰り返し作業を実行する必要があります。
この作業の対象が多くなく、一度だけ実行する作業であれば手作業で処理することができるが、対象が多く、複数回実行しなければならない作業であれば手作業では生産性が劣るしかない。
データモデルをリバースして生成する機能 また、データモデルが複数ある場合は、各モデルごとにリバース設定と実行を手作業で繰り返し処理しなければならない。データモデルが数十または数百を超える場合、多くの手間が必要です。
この場合、この記事で紹介するDA# v5 Macroツールが役に立ちます。
DA# Macro実行画面は以下の通りです。
DA# Macroの主な機能は次のとおりです。
- 共通機能
- Select Modelボタン:モデルファイル(n個可能)を選択
- Clear Listボタン:現在のリストを初期化する
- Get Entity/Attribute
- Get Entity/Get Attributeボタン:選択したモデルの情報をExcelに抽出します。選択したモデルを開き、情報を抽出して閉じ、次のモデルを順番に繰り返す
- Copy to Setボタン:現在のリストからSet基準値をSet sheetにコピーする(トピック領域名を除く)
- Set Entity/Attribute
- Set Entity/Set Attributeボタン:Excelリストの情報を選択したモデルに反映します。選択したモデルを開き、反映、保存、閉じ、次のモデルを順番に繰り返す(Excelリストの値が空の場合、DA#モデルの対応するプロパティ値を変更しない)
- Set オプション
- 基準値:ExcelリストとDA#モデルの情報を比較する基準値
- 追加モード:DA#モデルの情報項目現在の値にExcel値を追加するかどうか
- Reverse
- Table、Column、FK(選択)リストExcelファイルからDA#モデルを生成する
- 複数のモデル、複数のトピック領域を一度に処理
- コア機能:1つのトピック領域内のエンティティグループごとにダイアグラムに配置
- Table、Column、FK(選択)リストExcelファイルからDA#モデルを生成する
1.4。 DA# Macro ダウンロード
以下のgithubリポジトリで確認できます。
https://github.com/DAToolset/DA-Macro
あるいは、このURLから直接ダウンロードできます。
https://github.com/DAToolset/DA-Macro/raw/main/DA%23%20Macro_v2.12_20210814.xlsm
ここまでDA#、DA# API、DA# Macroツールについて見てきました。次に、DA# Macroの機能を見てみましょう。
<< 関連記事のリスト >>
- DA# Macro(1): DA#, DA# API, DA# Macro (マクロ)の概要
- DA# Macro(2): DA# Macro(マクロ)機能(1)-共通機能, Entity Get/Set
- DA# Macro(3): DA# Macro(マクロ)機能(2)-Attribute Get/Set
- DA# Macro(4): DA# Macro(マクロ)機能(3)-Reverse
- DA# Macro(5): 使用上の注意/注意事項、ダウンロード、今後追加予定機能、お知らせ
- DA# Macro(6): DA# Modeler API
- DA# Macro機能デモ映像(YouTube)
- DA# Macro 説明文 目次 , ダウンロード