ken_nogi/ClaudePleasanter/新・稟議申請システム/docs/site-319021_稟議通知管理_spec.md
Kenichiro NOGI 9bbc344137 Pleasanterサイト仕様書パイプラインを再構築
生JSON取得(siteSettingJsons/)と設定分解(configs/)の保存先を分離し、
仕様書・概要書はClaudeが読み解いて執筆する方式に統一(機械生成の
generate-site-documentation.jsは不使用)。10サイト分のspec.md/
overview.mdを刷新し、サイト間連携をまとめたsite-relations_overview.md
を新規追加、全docsをPDF化した。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-11 08:49:24 +09:00

164 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# サイト仕様書稟議通知管理SiteId: 319021
- 取得元データ: [site-319021_latest.json](../siteSettingJsons/site-319021_latest.json)
- 取得日時: 2025-03-02T19:15:06サイト更新日時設定バージョン `Ver: 1`
## 1. サイト基本情報
| 項目 | 値 |
|---|---|
| TenantId | 1 |
| Title | 稟議通知管理 |
| ReferenceType | Results |
| ParentId | 319018本ドキュメント群で対象としている10サイトには含まれない。上位の格納用サイトフォルダと推測される。site-319020「稟議項目」と同一のParentId |
| InheritPermission | 319021自サイト自身のIDのため、権限を親から継承せず自サイトで独自設定 |
| Publish | false外部公開なし |
| DisableCrossSearch | false |
| Creator / Updator | 460 / 460同一ユーザー |
| CreatedTime | 2025-03-02T19:15:06 |
| SiteSettings.Version | 1.017 |
## 2. アクセス権限Permissions
| 種別 | 対象ID | 権限レベル |
|---|---|---|
| Dept | 1 | 5 |
| Group | 13 | 5 |
| Group | 19 | 511 |
| User | 460 | 511 |
※ 権限値はビットフラグの加算方式のため、正確な意味は環境のロール定義に依存する。
## 3. 画面構成
### 3.1 一覧画面GridColumns
| 順番 | 列名(内部名) | 表示ラベル |
|---|---|---|
| 1 | ResultId | ID標準ラベルのまま |
| 2 | ClassA | エリア |
| 3 | Class071 | 役員 |
| 4 | Class072 | 経理担当 |
| 5 | Class073 | 工務担当 |
| 6 | Class074 | アフター担当 |
| 7 | Class075 | アシスタント |
| 8 | Class076 | ISO担当 |
| 9 | UpdatedTime | 更新日時(標準ラベルのまま) |
参考: `GridView: 1`、`GridEditorType: 10`、`AllowViewReset: false`(追加のビュー定義)。`Views`配列には既定ビューId:1、ソート順 `ResultId` 昇順)のみが定義されている。
### 3.2 編集画面レイアウトEditorColumnHash / Sections
`EditorColumnHash``General` タブのみで構成されている(`Sections` 配列の定義なし)。
| 順番 | 項目名(内部名) | ラベル名 |
|---|---|---|
| 1 | ResultId | ID標準ラベルのまま |
| 2 | Ver | Ver.(標準ラベルのまま) |
| 3 | ClassA | エリア |
| 4 | Class071 | 役員 |
| 5 | Class072 | 経理担当 |
| 6 | Class073 | 工務担当 |
| 7 | Class074 | アフター担当 |
| 8 | Class075 | アシスタント |
| 9 | Class076 | ISO担当 |
`Sections` 配列自体が定義されていないため、セクション区切り(`_Section-N`)は存在しない。
### 3.3 タイトル表示TitleColumns / TitleSeparator
- `TitleColumns`: 未設定Pleasanter既定の `Title` 列を使用する想定)
- `TitleSeparator`: 未設定(既定の区切り文字)
`TitleColumns` が明示的に設定されていない一方、標準の `Title` 列自体が `GridColumns` にも `EditorColumnHash` にも含まれておらず、ユーザーが値を入力する経路がない。そのためレコードのタイトルは常に空欄のまま運用されている可能性が高い(詳細は「気になる点」参照)。
## 4. 項目定義Columns
| 列名(内部) | 種別 | 表示ラベル | 説明・入力ガイド | 備考 |
|---|---|---|---|---|
| ClassA | 文字列(分類・選択式) | エリア | 選択肢:`0,東京` `1,愛知` `2,千葉` `3,熊本` `4,静岡` `5,特建事業部` `6,不動産事業部` `7,デザイノ` `9,その他``ChoicesControlType: Radio` によりラジオボタン表示) | `ValidateRequired: true`(必須)、`NoDuplication: true`同一値の重複登録不可1エリアにつき1レコードのみ登録可能という制約と推測、`SearchType: PartialMatch`(部分一致検索対応) |
| Class071 | 文字列(拡張分類)※実運用は複数選択のユーザー選択欄 | 役員 | `ChoicesText: "[[Users*]]"` によりテナント内の全ユーザーが選択肢候補になる特殊指定。`UseSearch: true` で検索ボックス付き、`MultipleSelections: true` で複数人選択可 | `FieldCss: field-wide`(編集画面で入力欄を横幅広く表示) |
| Class072 | 文字列(拡張分類)※実運用は複数選択のユーザー選択欄 | 経理担当 | 同上(`[[Users*]]` によるユーザー選択、検索可、複数選択可) | `FieldCss: field-wide` |
| Class073 | 文字列(拡張分類)※実運用は複数選択のユーザー選択欄 | 工務担当 | 同上 | `FieldCss: field-wide` |
| Class074 | 文字列(拡張分類)※実運用は複数選択のユーザー選択欄 | アフター担当 | 同上 | `FieldCss: field-wide` |
| Class075 | 文字列(拡張分類)※実運用は複数選択のユーザー選択欄 | アシスタント | 同上 | `FieldCss: field-wide` |
| Class076 | 文字列(拡張分類)※実運用は複数選択のユーザー選択欄 | ISO担当 | 同上 | `FieldCss: field-wide` |
`ClassA`, `Class071`〜`Class076` 以外に `EditorColumnHash` へ登場する `ResultId`, `Ver``Columns` 配列に個別定義がなく、標準ラベル・標準設定のまま使用されている。
### 4.1 項目ごとの補足HTMLExtendedHtmlAfterControl
該当する設定はない(省略)。
## 5. 作成・更新権限(フィールド単位)
| 列名(内部) | PermissionForCreating | PermissionForUpdating |
|---|---|---|
| Class071 | 5 | 5 |
| Class072 | 5 | 5 |
| Class073 | 5 | 5 |
| Class074 | 5 | 5 |
| Class075 | 5 | 5 |
| Class076 | 5 | 5 |
`ClassA` にはフィールド単位の作成・更新権限(`PermissionForCreating`/`PermissionForUpdating`)は設定されていない。
これとは別に、`UpdateColumnAccessControls` により `ClassA` 列単体の更新可能グループが `Group 19` のみに制限されている。
| ColumnName | 更新を許可するGroups |
|---|---|
| ClassA | 19 |
`Permissions` セクションでは `User,460`Creator`Group,19` が高い権限レベル511を持つが、`ClassA` に限っては `UpdateColumnAccessControls` の制限が別途優先される可能性があるため、実運用上の挙動は要確認(後述「気になる点」参照)。
## 6. 集計設定Aggregations
設定なし(該当セクションなし)。
## 7. 他サイト連携Links / ルックアップ)
このサイト自身の `SiteSettings` には `Links` の定義はなく、他サイトへの参照設定(自サイトから他サイトへのコピー・ルックアップ)は持たない。また `manifest.json``ServerScripts: []`0件により、サーバースクリプト経由の暗黙的なテーブル参照`items.Get(SiteId)` 等のハードコード)も存在しない。
一方、他サイトの調査時点で確認できた範囲では、本サイト319021: 稟議通知管理)は以下のサイトの**クライアントスクリプトから直接参照されている**本サイト側の設定ではなく、参照元サイト側のScript内でSiteIdがハードコードされている「暗黙的なテーブル参照」
| 参照元サイト | 参照箇所 | 参照方法 |
|---|---|---|
| 319015新・稟議申請書 | `configs/site-319015_新・稟議申請書/scripts/1_1.新・稟議申請書.js``getTuuchiData()` 関数 | `let siteId = '319021';` とSiteIdをハードコードし、選択された `エリア`(参照元の `ClassB`)を条件に `$p.apiGet` でAPI検索。取得したレコードから通知先役員・経理担当・工務担当・アフター担当・アシスタント・ISO担当を取得していると推測される |
これにより、本サイトは「エリアごとの稟議関係者(通知先)を保持するマスタテーブル」として、稟議申請フロー側から都度参照される役割を持つと考えられる。`ClassA`(エリア)に`NoDuplication: true`が設定されているのも、1エリア1レコードというマスタとしての一意性を担保するためと考えると整合する。
`ParentId: 319018` は今回のドキュメント化対象10サイトに含まれておらず、319020稟議項目と同一の親サイトを持つ。全体関連図の作成時に別途確認が必要。
## 8. プロセス設定Processes
設定なし(`configs/site-319021_稟議通知管理/processes.json` も0件、`manifest.json` の `ProcessesCount: 0` で確認済み)。
## 9. スタイルStyles
設定なし(`manifest.json` の `Styles: []` で確認済み)。
## 10. スクリプトScriptsサーバースクリプトServerScripts
設定なし(`manifest.json` の `Scripts: []` / `ServerScripts: []` で確認済み)。
## 11. その他設定
| 項目 | 値 |
|---|---|
| NoDisplayIfReadOnly | false |
| HideLink | 未設定 |
| SectionLatestId | 未設定Sections自体が未定義 |
| 各種ガイド文GridGuide/EditorGuide/CalendarGuide等 | いずれも空文字(未設定) |
| Comments | サイト直下の `Comments``[]`(コメント記録なし)。編集画面(`EditorColumnHash`)には `Comments` 列がレイアウトされていないため、標準タブ経由以外ではコメント機能を使う導線がない可能性がある |
---
## 気になる点(レビュー観点)
- `TitleColumns` が未設定な上、標準の `Title` 列自体が `GridColumns``EditorColumnHash` のいずれにも含まれていないため、レコードタイトルが常に空欄になっている可能性が高い。一覧画面や他サイトからの参照時にレコードを識別しづらくなっていないか確認が望ましい。
- `ClassA`(エリア)の選択肢は `0,1,2,3,4,5,6,7,9` と番号が飛んでおり(`8` が欠番)、意図的な欠番か設定漏れか不明。将来的にエリアを追加する際の選択肢追加漏れにも注意が必要。
- `ClassA``NoDuplication: true` によりエリアごとに1レコードのみ登録可能な想定だが、`UpdateColumnAccessControls` で更新可能グループが `Group 19` のみに制限されており、`Permissions` 上は高権限511を持つ `User 460`Creatorや他のGroupがこの列を更新できない可能性がある。意図した制限か確認が望ましい。
- `Class071`〜`Class076`役員経理担当工務担当アフター担当アシスタントISO担当はいずれも `[[Users*]]` でテナント内の全ユーザーが選択肢になっており、部署やエリアによる絞り込みがない。`UseSearch: true` で検索は可能だが、ユーザー数が多い場合は選びにくくなる可能性がある。
- 本サイトは319015新・稟議申請書のクライアントスクリプトからSiteId `319021` がハードコードされて参照されている(正式な`Links`設定には現れない。本サイトの列構成・ラベルを変更する際は319015側のスクリプトに影響が及ぶため注意が必要。
- 入力ガイド文EditorGuide等が一切設定されておらず、入力者向けの説明が画面上に表示されない。エリアごとの担当者登録という重要なマスタメンテナンス作業であるにもかかわらず、操作ガイドがない点は運用上のリスクになり得る。