Skip to content

IndexCreator によるサイト・選択肢の SQL View ​

第4版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

IndexCreator v0.3.0(最新版)は、サイト一覧と選択肢マスタの SQL View を作れます。View の機能は v0.1.0 から使え、生成規則は v0.3.0 まで変わっていません(変更履歴・対応表)。索引の操作とは別のコマンドで実行し、索引の最小件数に関係なく対象サイトから計画します。接続は 導入と接続設定 と共通です。

プリザンターの権限判定は行いません

SQL View は DB の格納値を参照する仕組みです。プリザンターのユーザー・レコード権限は判定せず、保存ビューのフィルタ・並べ替えや画面の表示書式も再現しません。利用者と連携処理の DB 参照権限を別途設定してください。

計画と適用のコマンド ​

生成する View計画のみ適用
サイト一覧views_views / views-apply
選択肢マスタchoice-lists_choice-lists / views-choices-apply

適用時は計画を表示して yes の入力を求めます。/y は確認省略、/c は確認のみ、/output は計画 SQL の保存です。View の作成・変更権限が必要です。

powershell
dotnet VehicleVision.PleasanterTools.IndexCreator.dll views /output views-plan.sql
dotnet VehicleVision.PleasanterTools.IndexCreator.dll _views
dotnet VehicleVision.PleasanterTools.IndexCreator.dll choice-lists /output choices-plan.sql
dotnet VehicleVision.PleasanterTools.IndexCreator.dll _choice-lists

サイト一覧の View ​

Results・Issues・Wikis のサイトごとに、GridColumns の順序で列を投影します。名前は View_vvplic_{ReferenceType}_{SiteId}_{SiteName} です。例えば View_vvplic_Results_100_案件 になります。サイト名は Sites.Title を使い、記号・空白を _ にまとめ、UTF-8 の63バイト以内に収まるよう名前部分を短縮します。

一覧の表示列が省略されている場合は、/p で指定した本体の列定義から既定列を読みます。Title と TitleBody は Items のタイトルを返します。

指定列名
/names label表示名。GridLabelText → LabelText → 本体の列定義 → 物理列名の順。既定値
/names columnResultId・ClassA・NumA などの ColumnName

同じ表示名がある場合は物理列名を付記します。column モードで GridColumns に同じ列が複数ある場合は停止します。列名を変更すると連携先の SQL も影響を受けるため、計画・適用で同じモードを使い、運用中は固定してください。

powershell
dotnet VehicleVision.PleasanterTools.IndexCreator.dll views /names column
dotnet VehicleVision.PleasanterTools.IndexCreator.dll _views /names column

値は DB の格納値です。分類の表示テキスト、ユーザー名、リンク先の表示値、添付の表示を再現しません。取得順が必要なら参照する SQL で ORDER BY を指定します。

リンク先項目・計算項目など投影できない列がある場合は、黙って省略せず生成を停止します。Wiki に存在しない Class・Num・Date・Check・Status などを一覧に指定した場合も停止します。

選択肢マスタの View ​

各項目の ChoicesText を展開し、View_vvplic_ChoiceList_{ReferenceType}_{SiteId}_{ColumnName}_{SiteName} を作ります。例えば View_vvplic_ChoiceList_Results_100_ClassA_案件 です。列は固定で、/names は使えません。

列内容
Value保存する選択肢の値
Text表示名。空なら値
TextMini短縮名。空なら表示名

例えば、次の固定選択肢を設定した項目を対象にします。

text
10,受付,受
20,対応中,中
30,完了,完

エスケープしたカンマに対応し、同じ値が繰り返される場合は最初の定義を使います。固定選択肢のない項目や、入力方式が対象でない項目には View を作りません。

View は参照時にサイト設定を読みます。そのため、既存項目の選択肢の追加・変更・削除は再実行せず反映されます。選択肢を持つ項目やサイトの追加、サイト名の変更時は再実行します。

SQL Server では、この機能に SQL Server 2022 以降または Azure SQL、DB の互換性レベル130以上が必要です。索引のオンライン作成に関するエディション条件とは別です。

対応する選択肢と制約 ​

  • 固定選択肢と Wiki をリンク先にした選択肢に対応します。
  • [[Users]] などの動的選択肢、表(Results・Issues)をリンク先にした選択肢は対象外で、計画時に生成を停止します。
  • 作成後に追加された動的参照行は、View の結果に含めません。
  • General.json の ChoiceSplitRegexPattern・ChoiceReplaceRegexPattern・ChoiceReplaceRegexReplacement が既定と異なる場合は生成を停止します。

Wiki の選択肢では、リンク先の判定にサイト設定の Links を使い、Wiki 本文の行を展開します。自項目の選択肢行を混ぜて返しません。

Wiki の選択肢には本体との違いがあります

v0.3.0 の View は、Wiki 本文のカンマのエスケープ、前後の空白除去、重複時の先の行の採用を行います。プリザンター1.5.8.1の画面と同じ処理ではありません。また、JSON 形式で Wiki を指定した場合、現行本体の画面では選択肢が空でも View は本文の行を返します。画面と同じ結果が必要な連携では、実際の設定と結果を照合してください。

フォルダー・サイトを除外する ​

一覧 View と選択肢 View の両方で使えます。カンマ区切りの複数 ID を指定でき、併用できます。

指定除外する範囲
/exclude-tree <SiteId,...>指定サイトと配下の階層全体
/exclude-site <SiteId,...>指定サイトだけ。フォルダーでも配下は除外しない
powershell
dotnet VehicleVision.PleasanterTools.IndexCreator.dll views /exclude-tree 10 /exclude-site 205,318
dotnet VehicleVision.PleasanterTools.IndexCreator.dll _views /exclude-tree 10 /exclude-site 205,318

階層は Sites.ParentId で判定し、存在しない ID では停止します。/sites の計画では、フォルダーを含めた全サイトの SiteId と ParentId が必要です。除外したサイトの既存の管理 View は、/prune を付けたときに削除対象になります。

サイト構成を変えたとき ​

再実行すると列構成と項目名を更新します。サイト名を変えると新しい名前の View を作り、古いものは /prune を指定したときに整理します。一覧 View と選択肢 View は別々に整理します。

powershell
dotnet VehicleVision.PleasanterTools.IndexCreator.dll views /prune
dotnet VehicleVision.PleasanterTools.IndexCreator.dll _views /prune
dotnet VehicleVision.PleasanterTools.IndexCreator.dll choice-lists /prune
dotnet VehicleVision.PleasanterTools.IndexCreator.dll _choice-lists /prune

削除するのはツールの命名規則に一致する View です。参照している SQL・BI・依存 View を先に確認してください。新しい名前の View に既存の参照権限は自動で引き継がれません。

PostgreSQL では列名・列順などの変更を通常の置換で処理できない場合に停止します。必要な依存と権限を確認してから、_views /f で再作成します。テーブル単位の外部 GRANT は復元しますが、依存 View や列単位の権限がある場合は自動再作成せず停止します。CASCADE は使いません。

/output の SQL Server の GO は SQL クライアントのバッチ区切りです。PostgreSQL の列構成変更は、出力した CREATE OR REPLACE だけでは適用できない場合があります。変更時はツールの計画・適用を使い、本体更新・CodeDefiner・サイト編集と同時に実行しません。

関連ページ ​

変更履歴

第4版ツールのマニュアルをツール別の独立した構成にし、変更履歴とバージョン別の機能差を追加した
第3版IndexCreator v0.2.0のリンク選択肢と項目連携の制約を説明
第2版IndexCreator v0.1.1 と Azure Kudu 向け x86 版の導入手順を更新
第1版IndexCreator の操作手順と MCP OAuth v0.2.0 の接続方法を更新する