生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>
18 KiB
サイト仕様書:事前稟議一覧(SiteId: 319027)
- 取得元データ: site-319027_latest.json
- 取得日時: 2026-06-08T14:53:48(サイト更新日時)/設定バージョン
Ver: 4(SiteSettings.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: Radio(9択), SearchType: PartialMatch |
| ClassB | 文字列(分類) | 稟議分類 | ― | ValidateRequired: true, ChoicesControlType: Radio(8択、選択肢ごとに色分けクラス指定あり), 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に複数SiteId(64583/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-readonly(Style Id1で装飾。9章参照) |
上記に加え、ResultId(自動採番ID/既定ラベル「ID」)、UpdatedTime(既定ラベル「更新日時」)、Title(既定ラベル「タイトル」)、Comments(コメント機能)がColumns配列には定義されず、GridColumns/EditorColumnHashのみで使用されている。
4.1 項目ごとの補足HTML(ExtendedHtmlAfterControl)
| 列名 | 色(スタイル) | 内容 |
|---|---|---|
| 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. 他サイト連携(Links / ルックアップ)
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の参照表示は、このアイテムリンクで関連付けられたレコードを参照していると推定される。 - Views(Id 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)をクリップボードにコピーするボタンを追加する処理。外部CDN(cdnjs.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: 新・稟議申請書)であり、他サイトとの関連図を作成する際に見落としやすい点として明記した。 - Views(Id1)のCrosstabValueが稟議関連10サイト外のSiteId(64583, 61259, 451952)を参照する未整理な設定値を含んでおり、実際に使われているか不明。将来的な整理対象の可能性がある。
- Permissions(Group 19 = 511, Group 27 = 7, User 460 = 511)はビットフラグのため、正確な権限範囲は環境のロール定義に依存する。特にGroup 27は319027では他サイトより限定的な値(7)になっており、意図した制限か確認が望ましい。
- 秘密情報らしき文字列(APIキー・Webhook URL・パスワード等)は、Scripts/ServerScripts本文からは見つからなかった。外部参照は公開CDN(cdnjs.cloudflare.com)のtoastr.jsライブラリ読み込みのみ。