生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>
15 KiB
サイト仕様書:【ISO】部署担当者別稟議集計(SiteId: 319017)
- 取得元データ: site-319017_latest.json
- 取得日時: 2025-11-17T09:36:52(サイト更新日時)/設定バージョン
Ver: 7
1. サイト基本情報
| 項目 | 値 |
|---|---|
| TenantId | 1 |
| Title | 【ISO】部署担当者別稟議集計 |
| ReferenceType | Results |
| ParentId | 319014(新・稟議申請) |
| InheritPermission | 319017(自サイト=権限は自サイト独自設定) |
| Publish | false |
| DisableCrossSearch | false |
| Creator / Updator | 460 / 460 |
| CreatedTime | 2025-03-02T19:15:06 |
| SiteSettings.Version | 1.017 |
親サイトは319014「新・稟議申請」であり、稟議申請システムのサイトツリー配下に位置する。
2. アクセス権限(Permissions)
| 種別 | 対象ID | 権限レベル |
|---|---|---|
| Dept | 1 | 45 |
| Dept | 21 | 45 |
| Group | 13 | 45 |
| Group | 19 | 511 |
| Group | 41 | 45 |
| User | 460 | 511 |
※ 権限値はビットフラグの加算方式のため、正確な意味(閲覧のみ/編集可否等)は環境のロール定義に依存する。511は他サイトでも管理者相当としてよく用いられる高権限値、45はそれより低い閲覧中心の権限値と推測される。
GridGuide/EditorGuideには「このテーブルはISOと役員しか閲覧することはできません」と明記されており(後述)、上表のDept/Group/UserがそれぞれISO部門・役員に対応する設定であることが前提となる。実際の対象者がガイド文の記述と一致しているかは、Dept 1・21、Group 13・19・41の実体(環境のロール定義)を確認する必要がある(気になる点参照)。
3. 画面構成
3.1 一覧画面(GridColumns)
| 順番 | 列名(内部) | 表示ラベル |
|---|---|---|
| 1 | ResultId | (標準:No.) |
| 2 | ClassA | 稟議コード |
| 3 | ClassG | 稟議件名 |
| 4 | ClassD | エリア |
| 5 | ClassB | 該当部署 |
| 6 | ClassC | 該当社員 |
| 7 | ClassI | 計上年 |
| 8 | ClassJ | 計上月 |
| 9 | ClassO | 稟議項目 |
| 10 | ClassP | 稟議の原因 |
| 11 | NumA | 稟議決裁額 |
| 12 | NumB | 按分割当額 |
| 13 | UpdatedTime | (標準:更新日時) |
3.2 編集画面レイアウト(EditorColumnHash / Tabs)
本サイトは Sections ではなく Tabs(TabLatestId / Tabs)でタブ構成されている点に注意。EditorColumnHashのキーは General(既定タブ)と _Tab-1(タブID1)。
General(既定タブ、無題)
| 順番 | 項目名(内部名) | ラベル名 |
|---|---|---|
| 1 | ResultId | (標準:No.、Hide) |
| 2 | Ver | (標準:バージョン、Hide) |
| 3 | Comments | (標準:コメント) |
| 4 | ClassA | 稟議コード |
| 5 | ClassG | 稟議件名 |
| 6 | ClassD | エリア |
| 7 | ClassB | 該当部署 |
| 8 | ClassC | 該当社員 |
| 9 | ClassI | 計上年 |
| 10 | ClassJ | 計上月 |
| 11 | ClassK | 計上年月(Hide) |
| 12 | ClassO | 稟議項目 |
| 13 | ClassP | 稟議の原因 |
| 14 | NumA | 稟議決裁額 |
| 15 | NumB | 按分割当額 |
| 16 | Description001 | 備考 |
_Tab-1(タブID1、ラベル「リンク」)
| 順番 | 項目名(内部名) | ラベル名 |
|---|---|---|
| 1 | Class100 | 【ISO】稟議管理 |
| 2 | _Links-319016 | ―(SiteId 319016「【ISO】稟議管理」から見た関連レコード一覧の表示枠) |
Tabs定義
| Id | ラベル |
|---|---|
| 1 | リンク |
3.3 タイトル表示(TitleColumns / TitleSeparator)
TitleColumns / TitleSeparator はSiteSettingsに設定が存在しない。標準のタイトル表示(既定はNo.等)のまま。
4. 項目定義(Columns)
| 列名(内部) | 種別 | 表示ラベル | 説明・入力ガイド | 備考 |
|---|---|---|---|---|
| ResultId | 自動採番ID | (標準) | - | Hide:true |
| Ver | バージョン管理(システム標準) | (標準) | - | Hide:true。楽観的排他制御用の内部項目 |
| ClassA | 文字列(分類) | 稟議コード | - | NoWrap、ExtendedFieldCss/ExtendedControlCss: code-readonly2(読み取り専用スタイル適用) |
| ClassB | 文字列(分類) | 該当部署 | ChoicesText: [[Depts]](部署マスタから選択) |
NoWrap、code-readonly2、SearchType: PartialMatch |
| ClassC | 文字列(分類) | 該当社員 | ChoicesText: Usersテーブル参照(Disabledユーザーを除外し、UserId昇順) | code-readonly2、SearchType: PartialMatch、Links設定あり(JsonFormat) |
| ClassD | 文字列(分類) | エリア | 選択肢: 東京/愛知/千葉/静岡/熊本/特建/バックオフィス/その他/未使用(各選択肢に表示色クラス付き) | NoWrap、SearchType: PartialMatch |
| ClassG | 文字列(分類) | 稟議件名 | - | FieldCss: field-wide、code-readonly2 |
| ClassI | 文字列(分類) | 計上年 | 選択肢: 2020年〜2050年(西暦) | NoWrap、code-readonly2、SearchType: PartialMatch |
| ClassJ | 文字列(分類) | 計上月 | 選択肢: 1月〜12月 | code-readonly2、SearchType: PartialMatch |
| ClassK | 文字列(拡張分類・3桁連番) | 計上年月 | - | Hide:true、code-readonly2。Aggregation(Id:4)のGroupByに使用されており、ClassI+ClassJを合成した集計用キーと推測される |
| ClassO | 文字列(分類) | 稟議項目 | ChoicesText: [[319020]](稟議項目サイトを参照するLink列) |
NoWrap、code-readonly2、Link:true、SearchType: PartialMatch |
| ClassP | 文字列(分類) | 稟議の原因 | ChoicesText: [[319019]](稟議の原因サイトを参照するLink列) |
code-readonly2、Link:true、SearchType: PartialMatch |
| Class100 | 文字列(拡張分類・3桁連番) | 【ISO】稟議管理 | ChoicesText: [[319016]](ISO稟議管理サイトを参照するLink列) |
FieldCss: field-wide、code-readonly2、Link:true、SearchType: PartialMatch、編集画面ではタブ「リンク」に配置 |
| NumA | 数値 | 稟議決裁額 | Format: N(桁区切り数値) |
code-readonly2、TextAlign:20(右寄せ)、ExtendedHtmlAfterControlあり(4.1参照) |
| NumB | 数値 | 按分割当額 | Format: N |
code-readonly2、TextAlign:20(右寄せ)、Aggregation(Id:4)のTarget(合計対象列) |
| Description001 | 説明(複数行文字列) | 備考 | - | 読み取り専用スタイルの指定なし(通常編集可) |
| Comments | コメント欄(標準) | (標準) | - | Columns配列に個別定義なし=標準ラベルのまま。EditorColumnHashのGeneralタブに配置 |
全体として ClassA〜ClassJ、NumA/NumB、Class100 はほぼ全て code-readonly2 スタイル(後述9章)が適用されており、編集画面上は視覚的に読み取り専用として扱われている(=他サイトからの自動転記値を人手で書き換えさせない意図と推測)。
4.1 項目ごとの補足HTML(ExtendedHtmlAfterControl)
| 列名 | 色 | 内容 |
|---|---|---|
| NumA | 赤色・小文字(commentAdd small red right) |
※販売金額(税別) |
5. 作成・更新権限(フィールド単位)
PermissionForCreating / PermissionForUpdating はSiteSettingsに設定が存在しない。フィールド単位の作成・更新権限は「設定なし」(2章のサイト単位権限のみで制御)。
なお、多くの項目に付与されている code-readonly2 はCSS(pointer-events: none 等)による見た目上の編集不可化であり、Pleasanterのフィールド権限機能(PermissionForUpdating等)による正式なアクセス制御ではない点に注意(気になる点参照)。
6. 集計設定(Aggregations)
| Id | GroupBy(内部/ラベル) | Type | Target(内部/ラベル) |
|---|---|---|---|
| 5 | ClassI(計上年) | 0 | - |
| 6 | ClassJ(計上月) | 0 | - |
| 4 | ClassK(計上年月) | 1 | NumB(按分割当額) |
| 3 | ClassB(該当部署) | 0 | - |
※ Type の意味は環境のPleasanterバージョンに依存するが、一般的に 0=件数集計、1=合計 に対応する実装が多い。Id:4(ClassK×NumB合計)が本サイトの主目的である「部署担当者別の稟議決裁額按分集計」に直接対応する設定と考えられる。
7. 他サイト連携(Links / ルックアップ)
| 起点列(内部/ラベル) | 参照先 | 内容 |
|---|---|---|
| ClassC(該当社員) | Usersマスタ(SiteId:0扱い=システム共通ユーザーテーブル) | Disabledユーザーを除外し、UserId昇順で表示するユーザー選択ルックアップ。JsonFormat:true で選択値をJSON形式で保持 |
| ClassP(稟議の原因) | SiteId 319019(稟議の原因) | ※本ドキュメント対象の10サイト一覧には含まれないサイトIDだが、ChoicesText: [[319019]] として実在するリンク参照。当該サイトのレコードを選択するLink列(自動コピー列の設定は無し、選択のみ) |
| ClassO(稟議項目) | SiteId 319020(稟議項目) | 稟議項目サイトのレコードを選択するLink列(自動コピー列の設定は無し、選択のみ) |
| Class100(【ISO】稟議管理) | SiteId 319016(【ISO】稟議管理) | ISO稟議管理サイトのレコードを選択するLink列。加えて、EditorColumnHashの _Tab-1(タブ「リンク」)に _Links-319016 が配置されており、319016側から見た本サイトへの関連レコード一覧表示枠も併設されている=双方向のリンク関係 |
補足:
- ServerScriptsは0件のため、
items.Get(SiteId)等によるハードコード参照(暗黙的なテーブル参照)は本サイトには存在しない。他サイト連携は上表のLinks設定のみで構成されている。 - サイト名が「集計」であるが、Links設定自体には自サイト外の数値を自動集計する仕組み(例えば319016側の決裁額をこのサイトへ按分コピーするような設定)は見当たらない。ClassI/ClassJ/ClassK/NumA/NumBはいずれも本サイト内の通常項目として定義されており、実データ(按分決裁額)は319016側の何らかの処理(本サイトのServerScriptsではない、319016側のServerScript等)によって本サイトへレコードとして書き込まれている可能性が高い。実装確認には319016のServerScripts側の調査が必要(本タスクの対象外)。
ParentId: 319014(新・稟議申請)であり、サイトツリー上は319014の子サイトとして位置づけられている。
8. プロセス設定(Processes)
configs/site-319017_【ISO】部署担当者別稟議集計/processes.json を確認したが、内容は空配列 []。プロセス(ボタン操作によるステータス遷移等)は設定なし。
9. スタイル(Styles)
| Id | Title | 適用範囲 | ファイル |
|---|---|---|---|
| 1 | 読み取り専用 | New(新規作成画面)/Edit(編集画面) | 1_読み取り専用.css |
概要:.code-readonly / .code-readonly2 クラスに対して pointer-events: none 等を指定し、対象項目をクリック・編集不可の見た目にするスタイル。4章で示した通り本サイトのほぼ全項目に適用されている。
10. スクリプト(Scripts)/サーバースクリプト(ServerScripts)
Scripts、ServerScriptsともに0件。設定なし。
11. その他設定
| 項目 | 値 |
|---|---|
| NoDisplayIfReadOnly | false |
| HideLink | true(一覧・編集画面での「リンク追加」操作UIを非表示。自動転記前提のテーブルのため手動でのリンク追加を抑止していると推測) |
| AllowCopy | false(レコードコピー不可) |
| SectionLatestId | 未設定(本サイトはSectionsではなくTabsを使用。TabLatestId: 1) |
| GridGuide | 設定あり(GridGuide.html) |
| EditorGuide | 設定あり(EditorGuide.html、GridGuideと同内容) |
| CalendarGuide / CrosstabGuide / GanttGuide / BurnDownGuide / TimeSeriesGuide / AnalyGuide / KambanGuide / ImageLibGuide | いずれも未設定(空) |
| Comments | 使用あり(EditorColumnHash Generalに配置)。現時点の保存データ上のコメント件数は0件(Comments: "[]"、これはサイト設定ではなくデータ側の状態) |
| Views(クロス集計ビュー) | 3件定義。いずれも DefaultMode: Crosstab、X軸=ClassJ(計上月)固定、値=NumB(按分割当額)の合計。①Id3「稟議原因別集計」(Y軸=ClassP 稟議の原因)②Id1「稟議項目別集計」(Y軸=ClassO 稟議項目)③Id2「部署集計」(Y軸=ClassB 該当部署)。いずれもCrosstabNotShowZeroRows: true(合計0の行は非表示) |
気になる点(レビュー観点)
- ガイド文(GridGuide/EditorGuide)には「このテーブルはISOと役員しか閲覧することはできません」と明記されているが、2章のPermissions設定(Dept:1,21/Group:13,19,41/User:460)が実際にISO部門・役員のみに対応しているかは、環境側のDept/Groupマスタと突き合わせないと確認できない。ガイド文と実権限のズレがないか要確認。
- 多くの項目(ClassA〜ClassJ、NumA、NumB、Class100)に付与されている「読み取り専用」スタイル(
code-readonly2)はCSSのpointer-events:noneによる見た目上の制御に過ぎず、PermissionForUpdating等の正式なフィールド権限は設定されていない(5章)。API直接呼び出しやHTML改変により、本来手動編集させたくない値(自動転記された決裁額・按分額等)が書き換えられてしまう余地がある。運用上重要なテーブルであるため、必要であればフィールド単位権限による正式な制御への切り替えを検討する余地がある。 ClassP(稟議の原因)が参照するSiteId 319019は、今回ドキュメント対象として提示された10サイト一覧に含まれていない。全体のサイト関連図を作成する際には、319019についても存在を把握しておく必要がある。- サイト名が「部署担当者別稟議集計」であるにもかかわらず、本サイト自体のLinks/ServerScriptsには他サイトの値を自動集計する仕組みが見当たらない。按分決裁額(NumA/NumB)がどのように本サイトへ書き込まれているか(おそらく319016側のServerScript等からのレコード作成)は、本サイト単体の設定からは追跡できない。全体像を把握する際は319016(【ISO】稟議管理)側のServerScriptsを合わせて確認することを推奨する。
- 秘密情報(APIキー・Webhook URL等)は本サイトのScripts/ServerScripts/Stylesいずれにも見つからなかった(Scripts/ServerScriptsは0件、Stylesの内容もCSSのみ)。