ken_nogi/ClaudePleasanter/新・稟議申請システム/docs/site-319027_事前稟議一覧_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

18 KiB
Raw Blame History

サイト仕様書事前稟議一覧SiteId: 319027

  • 取得元データ: site-319027_latest.json
  • 取得日時: 2026-06-08T14:53:48サイト更新日時設定バージョン Ver: 4SiteSettings.Version: 1.017

1. サイト基本情報

項目
TenantId 1
Title 事前稟議一覧
ReferenceType Results
ParentId 319018本ドキュメントが対象とする稟議関連10サイトの一覧には含まれない外部の親サイト
InheritPermission 319027自サイト自身から権限を継承独自の権限設定
Publish false外部公開なし
DisableCrossSearch false
Creator / Updator 460 / 460
CreatedTime 2025-03-02T19:49:19
UpdatedTime 2026-06-08T14:53:48
Ver 4
SiteSettings.Version 1.017

2. アクセス権限Permissions

種別 対象ID 権限値
Group 19 511
Group 27 7
User 460 511

※権限値はビットフラグの加算方式のため、正確な意味閲覧作成編集削除エクスポート等のどの組み合わせかは環境のロール定義に依存する。511はGroup19・User460の双方に付与されており、他サイト例: 319015でもGroup19=511・User460=511という共通パターンが見られるため、この2者が管理者相当と推測される。Group27は319027では「7」と、他サイトより限定的な値になっている点に留意。

3. 画面構成

3.1 一覧画面GridColumns

順番 列名(内部) 表示ラベル
1 ResultId ID既定ラベル、Columns配列に定義なし
2 Status 状態既定ラベル、Columns配列にLabelText定義なし
3 ClassA エリア
4 ClassB 稟議分類
5 ClassC 稟議コード
6 ClassD 契約コード
7 ClassF 用件・物件名
8 Owner 申請者
9 DateA 申請日
10 ClassD~~319015,ClassA 関連サイト参照新・稟議申請書SiteId 319015側 ClassA「稟議コード」の値を表示
11 ClassD~~319015,ClassB 関連サイト参照新・稟議申請書SiteId 319015側 ClassB「エリア」の値を表示
12 ClassD~~319015,ClassC 関連サイト参照新・稟議申請書SiteId 319015側 ClassC「稟議分類」の値を表示
13 UpdatedTime 更新日時(既定ラベル)

ClassD~~319015,ColumnName はPleasanterのGridColumns専用の関連サイト参照書式{基点列}~~{参照先SiteId},{参照先列}。詳細は「7. 他サイト連携」を参照。

FilterColumns絞り込み対象: Status, Owner, ClassA, ClassB, ClassC, ClassD, ClassE, ClassF, DateA。

3.2 編集画面レイアウトEditorColumnHash / Sections

タブ「General」

順番 項目名(内部名) ラベル名
1 Title タイトル既定ラベル、Columns配列に定義なし
2 ResultId ID既定ラベル
3 Status 状態(既定ラベル)
4 ClassC 稟議コード
5 _Section-2 ―(セクション「稟議コード取得」開始)
6 ClassA エリア
7 ClassB 稟議分類
8 Owner 申請者
9 ClassD 契約コード
10 ClassE 派生コード
11 ClassF 用件・物件名
12 DateA 申請日
13 Comments コメント
14 ClassX (ラベル未設定・非表示項目)
15 ClassY (ラベル未設定・非表示項目)
16 _Links-319015 ―(サイト間リンク: 新・稟議申請書SiteId 319015との関連付けウィジェット

Sectionsセクション定義

Id ラベル AllowExpand Expand
2 稟議コード取得 false true

3.3 タイトル表示TitleColumns / TitleSeparator

TitleColumns: ClassC稟議コード, Owner申請者, DateA申請日 TitleSeparator: " - "

タイトル表示式: {稟議コード} - {申請者} - {申請日}

4. 項目定義Columns

列名(内部) 種別 表示ラベル 説明・入力ガイド 備考
ClassA 文字列(分類) エリア ExtendedHtmlAfterControlに注意書きあり NoWrap, ValidateRequired: true, ChoicesControlType: Radio9択, SearchType: PartialMatch
ClassB 文字列(分類) 稟議分類 ValidateRequired: true, ChoicesControlType: Radio8択、選択肢ごとに色分けクラス指定あり, SearchType: PartialMatch
ClassX 文字列(拡張分類) (ラベル未設定) Hide: true。非表示の裏項目
ClassY 文字列(拡張分類) (ラベル未設定) Hide: true。非表示の裏項目
Owner ユーザー選択 申請者 NoWrap, EditorReadOnly: true編集画面で読み取り専用, DefaultInput: ""(既定は空=ログインユーザー等)
ClassD 文字列(分類) 契約コード UseSearch: true検索選択式, NoWrap, GridDesign: [ClassD][ClassE], SearchType: PartialMatch。ChoicesTextにSiteId 61259への参照JSONあり詳細は7章
ClassE 文字列(分類) 派生コード UseSearch: true, Link: true, SearchType: PartialMatch。ChoicesTextに複数SiteId64583/74927/72434への参照あり詳細は7章
ClassF 文字列(分類) 用件・物件名 「契約コードまたは派生コードを選択すると自動的に邸名が入力されます」 ValidateRequired: true, FieldCss: field-wide
Status 状態 (ラベル未設定・既定ラベル「状態」) NoWrap。ChoicesText: 100=発行(status-new), 500=申請(status-green), 900=決裁(status-blue), 910=取消(status-rejected)
DateA 日付 申請日 DefaultInput: "0"(当日日付が既定値), EditorReadOnly: true
ClassC 文字列(分類) 稟議コード NoWrap, ExtendedFieldCss / ExtendedControlCss: code-readonlyStyle Id1で装飾。9章参照

上記に加え、ResultId自動採番ID既定ラベル「ID」、UpdatedTime既定ラベル「更新日時」、Title既定ラベル「タイトル」、Commentsコメント機能がColumns配列には定義されず、GridColumnsEditorColumnHashのみで使用されている。

4.1 項目ごとの補足HTMLExtendedHtmlAfterControl

列名 色(スタイル) 内容
ClassA commentAdd red(赤字想定のクラス) 「※物件・案件に対応したエリアを選択すること※」という注意書き

5. 作成・更新権限(フィールド単位)

PermissionForCreating / PermissionForUpdating はSiteSettingsに設定なし。

代わりに UpdateColumnAccessControls により、特定項目の更新を部署・グループ単位で制限している。

列名 Depts部署ID GroupsグループID
Status 8, 56 19

すなわち、状態Status列は部署ID 8・56、またはグループID 19に属するユーザーのみが更新可能であり、それ以外のユーザーからは実質的に変更できない項目になっている。

6. 集計設定Aggregations

Id GroupBy Type Target
3 Status 0 (空)
1 ClassA 0 (空)
2 ClassB 0 (空)

Type: 0 は件数Count集計と推定される。Status別・エリアClassA別・稟議分類ClassB別の3種の集計軸が設定されている。

7.1 明示的なLinks設定

起点列(内部/ラベル) 参照先SiteId 参照先の値→自コピー先 JsonFormat
ClassD契約コード 61259 SearchFormat: [ClassH] - [ClassJ] - [ClassO] - [ClassP](検索結果表示書式) true
ClassE派生コード 64583
ClassE派生コード 74927
ClassE派生コード 72434

SiteId 61259, 64583, 74927, 72434 はいずれも本ドキュメントが対象とする稟議関連10サイト319014, 319020, 319021, 319027, 335730, 319017, 319015, 319022, 319016, 160926には含まれない、外部の契約コード・派生コードマスタサイトである。ClassD契約コードは検索選択によりSiteId 61259の該当レコードを参照し、ClassE派生コードは同様にSiteId 64583/74927/72434のいずれかのレコードを参照する構成。

7.2 暗黙的なサイト間連携Links配列に現れないもの

  • GridColumns: ClassD~~319015,ClassA / ClassD~~319015,ClassB / ClassD~~319015,ClassC という書式({基点列}~~{参照先SiteId},{参照先列}で、稟議関連10サイトのひとつである SiteId 319015新・稟議申請書 の ClassA稟議コード・ClassBエリア・ClassC稟議分類の値を一覧画面に表示している。これはSiteSettings.Linksの列リンク設定ではなく、GridColumns側の関連サイト参照専用書式であり、正式なLinks配列には現れない。
  • EditorColumnHash: General タブ末尾に _Links-319015 というPleasanterのサイト間アイテムリンク機能用の特殊項目があり、編集画面上でSiteId 319015新・稟議申請書のレコードとの関連付けリンク操作ができる構成になっている。上記GridColumnsの参照表示は、このアイテムリンクで関連付けられたレコードを参照していると推定される。
  • ViewsId 1のCrosstabValue: ClassE~64583-ClassA~61259-ClassW~451952,NumA という値が設定されており、SiteId 64583, 61259, 451952いずれも稟議関連10サイト外を参照するクロス集計軸の定義が残っている。ただし本サイトの既定ビューDefaultModeは Index一覧であり、Crosstab関連設定は現状使われていない可能性が高い。

7.3 Scripts / ServerScripts内のハードコード参照

Scripts稟議コード生成, 編集禁止処理およびServerScripts取消しグレー表示の本文を確認したが、稟議関連10サイトのSiteIdをitems.Get(SiteId)のような形で直接ハードコード参照している箇所は見つからなかった。Script「稟議コード生成」内の $p.apiGet({'id': code1, ...}) はClassD/ClassEの選択値SiteId 61259等のレコードIDをキーにAPI取得しており、こちらもSiteIdの直接指定ではなくレコードIDのみを渡す形になっている。

8. プロセス設定Processes

定義ファイル: configs/site-319027_事前稟議一覧/processes.json

processes.jsonは空配列ProcessesCount: 0であり、本サイトにはボタン操作によるプロセス状態遷移の自動化は定義されていない。状態Statusの変更は、5章のUpdateColumnAccessControlsで許可された部署・グループのユーザーが直接編集する運用と推測される。

9. スタイルStyles

Id Title 適用範囲 ファイル
1 readonly-font130%-bold New, Edit styles/1_readonly-font130%-bold.css
2 取消しグレー表示 Index styles/2_取消しグレー表示.css
  • Id1: .code-readonly に対し pointer-events: none; font-size: 130%; font-weight: bold; を適用。稟議コードClassCのExtendedFieldCss/ExtendedControlCssから参照され、発行された稟議コードを大きく太字で強調しつつ操作不可に見せる装飾。
  • Id2: .cancelCode に対し background-color: lightgrey; を適用。10章のServerScript「取消しグレー表示」が付与するCSSクラスと対応しており、状態が「取消」の行を一覧画面でグレー表示するための装飾。

10. スクリプトScriptsサーバースクリプトServerScripts

Id Title 適用画面 状態 ファイル
1 稟議コード生成 New新規作成画面 Disabled: true無効化 scripts/1_稟議コード生成.js
2 編集禁止処理 Edit編集画面 Disabled: true無効化 scripts/2_編集禁止処理.js
  • Id1「稟議コード生成」: 新規作成時、非表示項目ClassX/ClassYにClassA/ClassBの値をコピーする処理と、ClassD契約コードまたはClassE派生コードを選択した際に $p.apiGet で相手レコードを取得し、用件・物件名ClassFへ邸名を自動補完する処理が定義されている。現在 Disabled: true のため、これらの自動処理は動作していない。
  • Id2「編集禁止処理」: 編集画面表示時にClassA〜Fの入力コントロールをdisabledにし、稟議コードClassCをクリップボードにコピーするボタンを追加する処理。外部CDNcdnjs.cloudflare.comからtoastr.jsライブラリを動的読み込みする。現在 Disabled: true のため動作していない。
Id Title フック 状態 ファイル
1 取消しグレー表示 BeforeOpeningRow 有効 serverscripts/1_取消しグレー表示.js
  • Id1「取消しグレー表示」: 行を開く前のサーバー処理として、model.Status == '910'(取消)の場合に model.ExtendedRowCss = 'cancelCode' を設定し、9章のStyle Id2と連動して一覧上の該当行をグレー表示する。

秘密情報チェック: 上記Scripts/ServerScriptsの本文を確認したが、APIキー・Webhook URL・パスワード等の秘密情報らしき文字列は見つからなかった外部参照は公開CDN cdnjs.cloudflare.com のtoastr.jsライブラリ読み込みのみ

11. その他設定

項目
NoDisplayIfReadOnly false
HideLink trueリンク一覧を非表示にする設定
SectionLatestId 2
AllowCopy falseレコードのコピー機能は無効
TitleSeparator " - "
GridGuide 「稟議コード発行テーブルになります。発行後に内容を変更することはできません。〜」という注意文あり(html/GridGuide.html
EditorGuide GridGuideと同一内容html/EditorGuide.html
CalendarGuide等その他ガイド いずれも空
Comments EditorColumnHashに含まれ、コメント機能は有効。現時点のコメントデータは0件"[]"
UpdateColumnAccessControls 5章参照Status列を部署8,56グループ19に制限
Notifications SiteSettingsに定義なし通知設定なし

気になる点(レビュー観点)

  • Script Id1「稟議コード生成」・Id2「編集禁止処理」がいずれも Disabled: true で無効化されている。ClassX/ClassYへの値コピー、ClassD/ClassE選択時のClassF自動補完、編集画面での入力ロック・コピー用ボタンといった、コード上想定されている挙動が現在は動作していない可能性が高い。意図的な無効化なのか、設定漏れなのか確認が望ましい。
  • ClassF用件・物件名のDescriptionには「契約コードまたは派生コードを選択すると自動的に邸名が入力されます」と案内されているが、その処理を担うScript Id1が無効化されているため、案内文と実際の挙動が一致していない可能性がある。
  • ClassX / ClassYはHide: trueのみでLabelTextが未設定であり、用途ClassA/ClassBのバックアップ値保持がスクリプト無効化と相まって分かりにくい。
  • Status列にLabelTextが設定されておらず既定ラベル「状態」のままである。一覧・絞り込み・権限制御UpdateColumnAccessControlsで使われる主要項目のため、明示的なラベル付けが望ましい。
  • GridColumnsのClassD~~319015,ClassA/B/CおよびEditorColumnHashの_Links-319015は、正式なLinks配列には現れない「暗黙的なサイト間連携」SiteId 319015: 新・稟議申請書)であり、他サイトとの関連図を作成する際に見落としやすい点として明記した。
  • ViewsId1のCrosstabValueが稟議関連10サイト外のSiteId64583, 61259, 451952を参照する未整理な設定値を含んでおり、実際に使われているか不明。将来的な整理対象の可能性がある。
  • PermissionsGroup 19 = 511, Group 27 = 7, User 460 = 511はビットフラグのため、正確な権限範囲は環境のロール定義に依存する。特にGroup 27は319027では他サイトより限定的な値7になっており、意図した制限か確認が望ましい。
  • 秘密情報らしき文字列APIキー・Webhook URL・パスワード等は、Scripts/ServerScripts本文からは見つからなかった。外部参照は公開CDNcdnjs.cloudflare.comのtoastr.jsライブラリ読み込みのみ。