ken_nogi/ClaudePleasanter/新・稟議申請システム/docs/site-319015_新・稟議申請書_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

42 KiB
Raw Blame History

サイト仕様書新・稟議申請書SiteId: 319015

  • 取得元データ: site-319015_latest.json
  • 取得日時: 2026-06-08T18:07:33サイト更新日時設定バージョン Ver: 38SiteSettings.Version: 1.017

1. サイト基本情報

項目
TenantId 1
Title 新・稟議申請書
ReferenceType Results
ParentId 319014新・稟議申請
InheritPermission 319015自サイト権限継承なし
Publish false
DisableCrossSearch false
Creator / Updator 460 / 460
CreatedTime 2025-03-02T19:15:06
SiteSettings.Version 1.017

このサイトは ParentId: 319014 を持ち、他サイト一覧にある「319014: 新・稟議申請」の子サイトとして位置付けられている。ReferenceType が Results(通常サイト)であるため、稟議申請の実務データを直接保持するメインテーブルと考えられる。

2. アクセス権限Permissions

種別 対象ID 権限値
Dept 1 1
Dept 21 37
Group 13 1
Group 19 511
Group 27 2
Group 61 5
User 459 1
User 460 511
User 463 1
User 670 1

※権限値はビットフラグの加算方式閲覧・編集・削除等の権限ビットを合算した値のため、正確な意味は環境のロール定義Group/Dept/Userのマスタ設定に依存する。511はほぼ全権限、1は閲覧のみに近い値と推測される。

3. 画面構成

3.1 一覧画面GridColumns

順番 項目名(内部) 表示ラベル
1 ResultId ID標準ラベル
2 Status ステータス
3 ClassA 稟議コード
4 ClassB エリア
5 ClassC 稟議分類
6 ClassG 稟議件名
7 Class001 申請部署(グリッド表示ラベル: 申請者)
8 Class011 マスターシート
9 Class012 契約コード
10 Class004 上長(一次承認者)(グリッド表示ラベル: 承認者)
11 Class037 次の処理者
12 Date033 最終決裁日
13 UpdatedTime 更新日時(標準ラベル)

FilterColumns絞り込み対象列: Statusステータス、ClassBエリア、ClassC稟議分類、ClassR該当物件有無、Class012契約コード、Class002申請者、Class037次の処理者

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

タブは4つGeneralTabLabelText: 「稟議申請書」+以下)。

タブキー タブ名
General 稟議申請書
_Tab-1 事故報告書
_Tab-2 WF承認状況
_Tab-3 経理処理
_Tab-6 リンク

General タブ

順番 項目名(内部名) ラベル名
1 ResultId ID標準ラベル・非表示
2 Ver Ver標準ラベル・非表示
3 Title タイトル(標準ラベル)
4 Comments 質疑応答
5 Status ステータス
6 DateA 申請日
7 CheckA ―(ラベル未設定・非表示)
8 ClassL 稟議コードリンク
9 ClassA 稟議コード
10 ClassB エリア
11 ClassC 稟議分類
12 ClassD 事前稟議
13 _Section-1 ―(セクション「申請者」開始)
14 Class001 申請部署
15 Class002 申請者
16 Class003 社員番号
17 Class004 上長(一次承認者)
18 Class005 役員(二次承認者)
19 Class009 関係者
20 _Section-2 ―(セクション「マスターシート」開始)
21 ClassR 該当物件有無
22 _Section-4 ―(セクション「(ラベル未設定)」開始)
23 Class011 マスターシート
24 Class012 契約コード
25 Class013 派生コード(非表示)
26 Class014 工事名
27 Class015 主担当営業
28 Class016 担当IC
29 Class017 担当設計
30 Class018 担当監督
31 Class019 所属長
32 Class020 担当役員
33 Class021 工務エリア担当
34 _Section-3 ―(セクション「稟議内容」開始)
35 ClassG 稟議件名
36 DescriptionA 稟議内容
37 AttachmentsA 補足資料
38 _Section-18 ―(セクション「稟議金額」開始)
39 ClassZ 消費税
40 NumA 原価
41 NumZ 販売/購入額
42 NumB 危険負担費(元)(非表示)
43 NumC 今回使用額(非表示)
44 NumD 危険負担費(残金)(非表示)
45 NumE 実損額
46 _Section-19 ―(セクション「※返金稟議の場合は、下記に返金額のみ記入」開始)
47 NumF 今回支払額
48 _Section-5 ―(セクション「購入・支払先」開始)
49 DescriptionX ラベル未設定・非表示。支払先明細テーブルのJSONデータ格納用
50 ClassV 支払先チェック
51 NumM 支払合計

_Tab-1 タブ(事故報告書)

順番 項目名(内部名) ラベル名
1 _Section-8 ―(セクション「事故報告書(赤稟議の場合必須)」開始)
2 DescriptionB 事故内容・原因
3 DescriptionC 損害状況
4 DescriptionD 再発防止策
5 _Section-7 ―(セクション「追記」開始)
6 DescriptionF 補足
7 AttachmentsB 事故補足資料

_Tab-3 タブ(経理処理)

順番 項目名(内部名) ラベル名
1 _Section-14 ―(セクション「経理処理欄」開始)
2 DateP 経理処理日
3 ClassN 経理処理者
4 ClassO 経理確認
5 ClassP 科目
6 ClassQ 摘要
7 DescriptionP 備考
8 Class100 役員(非表示)
9 Class101 経理(非表示)
10 _Section-17 ―(セクション「保険」開始)
11 Class102 保険担当

_Tab-2 タブWF承認状況

順番 項目名(内部名) ラベル名
1 DateK 期限
2 Class037 次の処理者
3 _Section-11 ―(セクション「承認状況」開始)
4 Class031 一次承認者
5 Date031 一次承認日
6 Class051 一次承認コメント
7 Description051 一次承認コメント履歴
8 Class032 二次承認者
9 Date032 二次承認日
10 Class052 二次承認コメント
11 Description052 二次承認コメント履歴
12 Class033 最終決裁者
13 Date033 最終決裁日
14 Class053 決裁コメント
15 Description053 決裁コメント履歴
16 _Section-16 ―(セクション「却下」開始)
17 Class040 却下処理者
18 Date040 却下処理日
19 Class054 却下コメント
20 Description054 却下コメント履歴
21 _Section-13 ―(セクション「差戻し」開始)
22 Class041 差戻し者
23 Date041 差戻し日
24 Class055 差戻しコメント
25 Description055 差戻しコメント履歴
26 _Section-15 ―(セクション「取消・保留」開始)
27 Date042 取消日
28 Date043 保留日
29 Date044 再開日
30 _Section-12 ―(セクション「決裁完了通知先」開始)
31 Class071 役員(非表示)
32 Class072 経理担当(非表示)
33 Class073 工務担当(非表示)
34 Class074 アフター担当(非表示)
35 Class075 アシスタント(非表示)
36 Class076 ISO担当非表示
37 Class080 差戻し権限者(非表示)
38 Class081 豊藏社長(非表示)

_Tab-6 タブ(リンク)

順番 項目名(内部名) 内容
1 _Links-160926 サイト連携表示項目。SiteId 160926稟議コード管理を参照するリンク先レコード一覧をインライン表示する特殊項目
2 _Links-189112 サイト連携表示項目。SiteId 189112マスターシート、10サイト一覧には含まれない別サイトを参照するリンク先レコード一覧をインライン表示する特殊項目

Sections 一覧

Id ラベル AllowExpand Expand
1 申請者 false true
2 マスターシート false true
4 (ラベル未設定) false true
3 稟議内容 false true
18 稟議金額 false true
19 ※返金稟議の場合は、下記に返金額のみ記入 false true
5 購入・支払先 false true
8 事故報告書(赤稟議の場合必須) false true
7 追記 false true
14 経理処理欄 false true
17 保険 false true
11 承認状況 false true
16 却下 false true
13 差戻し false true
15 取消・保留 false true
12 決裁完了通知先 false true

3.3 タイトル表示TitleColumns / TitleSeparator

TitleColumns: ClassA(稟議コード) + ClassB(エリア) + ClassC(稟議分類) + Class002(申請者) TitleSeparator:

表示式: 稟議コード ■ エリア ■ 稟議分類 ■ 申請者

4. 項目定義Columns

列名(内部) 種別 表示ラベル 説明・入力ガイド 備考
ResultId 自動採番ID 標準ID - Hide
Ver システム項目(バージョン) 標準Ver - Hide
ClassA 文字列(分類) 稟議コード - NoWrap, ExtendedControlCss(code-readonly2), ValidateRequired, NoDuplication
ClassB 文字列(分類) エリア 選択肢: 東京/愛知/千葉/熊本/静岡/特建事業部/不動産事業部/デザイノ/その他 Radio, NoWrap, ExtendedHtmlAfterControlあり
ClassC 文字列(分類) 稟議分類 選択肢: 白稟議/赤稟議/駐車場稟議/赤稟議(5万以下)/事前稟議/お客様返金稟議/社用車事故報告/自家用車事故報告 Radio, ExtendedHtmlAfterControlあり
Class001 文字列(拡張分類) 申請部署 部署選択(Depts, 初期値Self GridLabelText:申請者, ExtendedControlCss
Class002 文字列(拡張分類) 申請者 ユーザー選択, 初期値Self UseSearch, ExtendedControlCss
Class003 文字列(拡張分類) 社員番号 - ExtendedControlCss, ExtendedHtmlAfterControlあり(自動入力)
Class004 文字列(拡張分類) 上長(一次承認者) ユーザー選択 GridLabelText:承認者, NoWrap, ExtendedHtmlAfterControlあり
Class005 文字列(拡張分類) 役員(二次承認者) ユーザー選択Groups[41]でフィルタ) UseSearch
Class009 文字列(拡張分類) 関係者 ユーザー選択(複数) MultipleSelections, ExtendedHtmlAfterControlあり, FieldCss(field-wide)
ClassR 文字列(分類) 該当物件有無 選択肢: 有り/無し。Description:関連するマスターシートが登録済みの場合は「有り」を選択 Radio, DefaultInput:1, ExtendedHtmlAfterControlあり(強調)
Class011 ルックアップ(サイト参照) マスターシート SiteId 189112参照 UseSearch, FieldCss(field-wide), ExtendedHtmlAfterControlあり
Class012 文字列(拡張分類) 契約コード - NoWrap
Class013 文字列(拡張分類) 派生コード - Hide
Class014 文字列(拡張分類) 工事名 - FieldCss(field-wide), ExtendedHtmlAfterControlあり
Class015 文字列(拡張分類) 主担当営業 ユーザー選択 UseSearch
Class016 文字列(拡張分類) 担当IC ユーザー選択 UseSearch
Class017 文字列(拡張分類) 担当設計 ユーザー選択 UseSearch
Class018 文字列(拡張分類) 担当監督 ユーザー選択 UseSearch
Class019 文字列(拡張分類) 所属長 ユーザー選択 UseSearch, NoWrap
Class020 文字列(拡張分類) 担当役員 ユーザー選択 UseSearch
Class021 文字列(拡張分類) 工務エリア担当 ユーザー選択 UseSearch
ClassG 文字列(分類) 稟議件名 - ValidateRequired, FieldCss(field-wide)
DescriptionA 説明(複数行文字列) 稟議内容 - ExtendedControlCss(textarea-sizing), ValidateRequired
AttachmentsA 添付ファイル 補足資料 - AllowDeleteAttachments:false, OverwriteSameFileName:true, ExtendedHtmlAfterControlあり
NumA 数値 原価 Format:N, 初期値0 Min:0, ExtendedHtmlAfterControlあり(id:NumAcomment)
NumB 数値 危険負担費(元) Format:N Hide, NoWrap, ExtendedHtmlAfterControlあり
NumC 数値 今回使用額 Format:N Hide
NumD 数値 危険負担費(残金) Format:N Hide, ExtendedControlCss, ExtendedHtmlAfterControlあり
DescriptionX 説明(複数行文字列) (ラベル未設定) 支払先明細テーブル(jspreadsheet)のJSONデータ格納専用 Hide, ExtendedHtmlAfterFieldあり
ClassV 文字列(分類) 支払先チェック 選択肢: 未チェック/記入漏れ無し DefaultInput:0, NoWrap
NumM 数値 支払合計 Format:N Min:0, NoWrap, ExtendedHtmlAfterControlあり
DescriptionB 説明(複数行文字列) 事故内容・原因 - ExtendedControlCss(textarea-sizing)
DescriptionC 説明(複数行文字列) 損害状況 - ExtendedControlCss(textarea-sizing)
DescriptionD 説明(複数行文字列) 再発防止策 - ExtendedControlCss(textarea-sizing)
DescriptionE 説明(複数行文字列) 是正処置の効果測定 - 定義のみで編集画面レイアウトに未配置(後述「気になる点」参照)
DescriptionF 説明(複数行文字列) 補足 InputGuide: 上長・役員からの補足 ExtendedControlCss(textarea-sizing)
AttachmentsB 添付ファイル 事故補足資料 - AllowDeleteAttachments:false, NotDeleteExistHistory:true, OverwriteSameFileName:true
ClassD ルックアップ(サイト参照) 事前稟議 SiteId 319027参照ClassB=[4]でフィルタ、DateA降順 UseSearch, FieldCss(field-wide), ExtendedHtmlAfterControlあり
UpdatedTime 日時(標準) (標準)更新日時 - GridDesign設定あり
Status 状態 ステータス 選択肢13種下記8.参照) ExtendedControlCss
DateA 日付 申請日 Ymdhms形式 EditorReadOnly
Class031 文字列(拡張分類) 一次承認者 ユーザー選択 ExtendedControlCss
Date031 日付 一次承認日 Ymdhms形式 ExtendedControlCss
Class032 文字列(拡張分類) 二次承認者 ユーザー選択 ExtendedControlCss
Date032 日付 二次承認日 Ymdhms形式 ExtendedControlCss
Class071 文字列(拡張分類) 役員 ユーザー選択(複数) Hide, MultipleSelections, ExtendedControlCss, FieldCss(field-wide)
Class072 文字列(拡張分類) 経理担当 ユーザー選択(複数) Hide, MultipleSelections, ExtendedControlCss, FieldCss(field-wide)
Class073 文字列(拡張分類) 工務担当 ユーザー選択(複数) Hide, MultipleSelections, ExtendedControlCss, FieldCss(field-wide)
Class074 文字列(拡張分類) アフター担当 ユーザー選択(複数) Hide, MultipleSelections, ExtendedControlCss, FieldCss(field-wide)
Class075 文字列(拡張分類) アシスタント ユーザー選択(複数) Hide, MultipleSelections, ExtendedControlCss, FieldCss(field-wide)
Class076 文字列(拡張分類) ISO担当 ユーザー選択(複数) Hide, MultipleSelections, ExtendedControlCss, FieldCss(field-wide)
Class033 文字列(拡張分類) 最終決裁者 ユーザー選択 ExtendedControlCss
Date033 日付 最終決裁日 Ymdhms形式 ExtendedControlCss
Comments コメント欄 質疑応答 - 標準コメント機能
Class041 文字列(拡張分類) 差戻し者 ユーザー選択 ExtendedControlCss
Date041 日付 差戻し日 Ymdhms形式 ExtendedControlCss
ClassP 文字列(分類) 科目 - FieldCss(field-wide)
ClassQ 文字列(分類) 摘要 - FieldCss(field-wide)
DateP 日付 経理処理日 Ymdhms形式 ExtendedControlCss
DescriptionP 説明(複数行文字列) 備考 - -
ClassL ルックアップ(サイト参照) 稟議コードリンク SiteId 160926参照。Lookups: ClassC→ClassA, ClassA→ClassB, ClassB→ClassC, ClassF→ClassG ExtendedFieldCss, FieldCss(field-wide)
CheckA チェックボックス (ラベル未設定) 新規作成時に稟議コード発行済みかを示すシステム内部フラグ Hide, NoWrap, ValidateRequired
Class100 文字列(拡張分類) 役員 ユーザー選択(複数), 初期値に9名の固定User IDを設定 Hide, ExtendedControlCss, FieldCss(field-wide)
Class101 文字列(拡張分類) 経理 ユーザー選択(複数), 初期値に5名の固定User IDを設定 Hide, ExtendedControlCss, FieldCss(field-wide)
Class081 文字列(拡張分類) 豊藏社長 ユーザー選択, 初期値421 Hide, ExtendedControlCss
DateK 日付 期限 InputGuide: 申請または承認日から7日後, 初期値7(日) ExtendedControlCss
Class080 文字列(拡張分類) 差戻し権限者 ユーザー選択(複数), Description: 上長、担当役員、社長 UseSearch, ExtendedControlCss, FieldCss(field-wide)
NumE 数値 実損額 Format:N ControlType:Normal, ExtendedControlCss, ExtendedHtmlAfterControl/Field(稟議金額入力ルール表)
Date042 日付 取消日 Ymdhms形式 ExtendedControlCss
Date043 日付 保留日 Ymdhms形式 NoWrap, ExtendedControlCss
Date044 日付 再開日 Ymdhms形式 NoWrap, ExtendedControlCss
Class040 文字列(拡張分類) 却下処理者 ユーザー選択 ExtendedControlCss
Date040 日付 却下処理日 Ymdhms形式 ExtendedControlCss
Class051 文字列(拡張分類) 一次承認コメント - ExtendedControlCss, FieldCss(field-wide)
Class052 文字列(拡張分類) 二次承認コメント - ExtendedControlCss, FieldCss(field-wide)
Class053 文字列(拡張分類) 決裁コメント - ExtendedControlCss, FieldCss(field-wide)
Class054 文字列(拡張分類) 却下コメント - ExtendedControlCss, FieldCss(field-wide)
Class055 文字列(拡張分類) 差戻しコメント - ExtendedControlCss, FieldCss(field-wide)
Description051 説明(複数行文字列) 一次承認コメント履歴 - ExtendedFieldCss, ExtendedControlCss(textarea-sizing)
Description052 説明(複数行文字列) 二次承認コメント履歴 - ExtendedFieldCss, ExtendedControlCss(textarea-sizing)
Description053 説明(複数行文字列) 決裁コメント履歴 - ExtendedFieldCss, ExtendedControlCss(textarea-sizing)
Description054 説明(複数行文字列) 却下コメント履歴 - ExtendedFieldCss, ExtendedControlCss(textarea-sizing)
Description055 説明(複数行文字列) 差戻しコメント履歴 - ExtendedFieldCss, ExtendedControlCss(textarea-sizing)
Class037 文字列(拡張分類) 次の処理者 ユーザー選択 ExtendedControlCss, GridDesign(次の処理者/期限を併記)
ClassO 文字列(分類) 経理確認 選択肢: 未確認/確認済み Radio, DefaultInput:0, NoWrap
ClassN 文字列(拡張分類) 経理処理者 ユーザー選択 ExtendedControlCss
NumZ 数値 販売/購入額 Format:N Min:0, ExtendedHtmlAfterControlあり(id:NumZcomment)
Class102 文字列(拡張分類) 保険担当 ユーザー選択(複数) MultipleSelections, ExtendedFieldCss, ExtendedControlCss, FieldCss(field-wide)
ClassZ 文字列(分類) 消費税 選択肢: 税別/税込 Radio, DefaultInput:0, NoWrap, ExtendedHtmlAfterControlあり
NumF 数値 今回支払額 Format:N Min:0, NoWrap, ExtendedHtmlAfterControlあり

Statusステータス選択肢一覧

コード ラベル
100 新規作成
101 新規登録
110 差戻し
120 再開
150 稟議申請
200 一次承認
300 二次承認
900 最終決裁完了
910 保留
920 却下
930 取消
940 ISO修正
990 経理確認済み

4.1 項目ごとの補足HTMLExtendedHtmlAfterControl

列名 色・見た目 内容
ClassB 赤字 ※変更不可※
ClassC 赤字 ※変更不可※
Class003 水色 ※自動入力
Class004 赤字・小 ※申請者が部門長の場合は自身を設定
Class009 青字・左寄せ ※決裁完了通知先 ※物件関係者・閲覧可能 ※随時追加可能
ClassR 赤字・大・背景黄色 ※該当物件のマスターシートがある場合は、必ず選択すること/※選択漏れがあった場合は承認者は差戻してください
Class011 赤字 ※関連するマスターシートを選択
Class014 赤字・小 ※下記の関係者に本稟議は共有されません。物件関係者に共有したい場合は「関係者」欄に対象を追加
AttachmentsA 緑・小 ※補足資料、見積書、請求書、写真など。同名ファイルは上書きされる。申請後も追加可だが削除不可
NumA 赤字(税込選択時は青字に変化) ※税別(スクリプトにより「※税込」に動的変化)
NumB 赤字・小 ※MSSから転記、または手入力
NumD 赤字・小 ※決裁後にMSSに反映
DescriptionXExtendedHtmlAfterField 赤字・左寄せ 支払いに関する注意書き(支払タイミング、支払先情報の入力ルール等)
NumM 赤字・大・右寄せ ※『今回支払額』と相違が無いように入力
AttachmentsB 緑・小 ※写真などの補足資料。同名ファイルは上書きされる。申請後も追加可だが削除不可
ClassD 赤字・小 ※関連する事前稟議がある場合は必ず選択してください。赤稟議の場合、事前稟議がないと却下される要因となります
NumEExtendedHtmlAfterControl 赤字 ※原価 今回使用額 ※自動計算
NumEExtendedHtmlAfterField 表形式 「稟議金額入力ルール」表(稟議分類ごとに原価/販売購入額/実損額/今回支払額のどれを入力すべきかを示す一覧)
NumZ 赤字(税込選択時は青字に変化) ※税別・利益込み(動的に「※税込・利益込み」に変化)
NumF 赤字 ※実損額または販売額から転記。または返金稟議。
ClassZ 赤字・小 ※原則として税別にて申請。物品購入等の場合は税込み申請可。

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

PermissionForCreating

列名 権限値
Class002 5
Class004 5
Class005 5
Class009 1
Class037 5
Class102 31

PermissionForUpdating

列名 権限値
Class002 5
Class004 5
Class005 5
Class009 1
Class072 5
Class073 1
Class074 1
Class075 1
Class076 1
Class037 5
Class102 1

フィールド単位のグループ限定アクセス制御CreateColumnAccessControls / ReadColumnAccessControls / UpdateColumnAccessControls

以下の6項目経理処理欄は、いずれもGroup 61経理グループにのみ作成・閲覧・更新が許可されている。

列名 ラベル 許可Group
ClassP 科目 61
ClassQ 摘要 61
DateP 経理処理日 61
DescriptionP 備考 61
ClassO 経理確認 61
ClassN 経理処理者 61

6. 集計設定Aggregations

Id GroupBy Type Target
1 ClassBエリア 0件数集計と推測 (空)
2 ClassC稟議分類 0件数集計と推測 (空)

明示的なLinks設定

起点列 参照先SiteId 参照先の値→自コピー先 JsonFormat
Class011マスターシート 189112 SearchFormat: [Title] - [ClassF] - [ClassG]10サイト一覧外の別サイト true
ClassL稟議コードリンク 160926稟議コード管理 ClassC→ClassA, ClassA→ClassB, ClassB→ClassC, ClassF→ClassG true
Class005役員(二次承認者) UsersTableName=Users, SiteId 0 Groups[41]でフィルタしたユーザー一覧を選択肢に使用 true
ClassD事前稟議 319027事前稟議一覧 SearchFormat: [Title] - [ClassF]ClassB=[4]でフィルタ、DateA降順 true
  • 「稟議コード管理160926」の該当レコードから、稟議分類・稟議コード・エリアなどの値を、このサイトの ClassA(稟議コード)・ClassB(エリア)・ClassC(稟議分類)に自動反映する(ClassL 経由のルックアップ)。
  • 「マスターシート189112、10サイト一覧には含まれない別システムのサイト」を選択すると、契約コード・工事名・担当者情報などがクライアントスクリプトを通じて自動反映される詳細は下記「暗黙的な参照」参照
  • 「事前稟議一覧319027」から関連する事前稟議レコードを選択できる。

暗黙的なテーブル参照ServerScripts / Scripts内のハードコード

正式なLinks設定には現れないが、クライアントスクリプト内でSiteIdを直接指定して他サイトのAPIを呼び出している箇所が2つ存在する。

起点スクリプト 参照先SiteId 参照方法 目的(推測)
scripts/1_1.新・稟議申請書.js(関数 getTuuchiData 319021稟議通知管理 $p.apiGetClassA にエリアコードを指定し検索 新規作成時、選択したエリア・稟議分類に応じた通知先担当者役員・経理担当・工務担当・アフター担当・アシスタント・ISO担当Class071Class076)を自動補完する
scripts/2_2.稟議申請_作成時処理など.js(関数 uploadISOdata 319016【ISO】稟議管理 fetch/$.ajax/pleasanter/api/items/319016/upsert に直接POST 赤稟議ClassC=1または3が最終決裁されたタイミングで、稟議データのサマリをISO管理サイトへ複写・計上する

また scripts/1_1.新・稟議申請書.js(関数 getMSSData)は Class011 に選択されたレコードIDSiteId 189112に対して $p.apiGet で直接データを取得しており、こちらはLinks設定と整合した参照。同スクリプトの updateMSSdata は決裁時にMSSサイト189112の危険負担費残金Num081)を $p.apiUpdate で直接更新しているLinks設定には現れない書き込み方向の連携

サーバースクリプト serverscripts/1_プロセス14 事故報告書チェックボタンの非表示.js 内の items.Sum(319015, ...) は自サイト319015自身を対象とした集計であり、他サイト参照ではない同一契約コードの赤稟議申請金額合計をチェックに利用

8. プロセス設定Processes

定義ファイル: configs/site-319015_新・稟議申請書/processes.json

Id Name / DisplayName 実行条件(CurrentStatus→ChangedStatus) 動作(OnClick等) 成功メッセージ
1 稟議申請 / 稟議申請 (任意)→150(稟議申請)。View: 自分の申請(Class002=Own)かつStatus∈[101,120] $p.ex.processScript('1')。Class004・Class005・ClassV必須バリデーション 稟議を申請しました。
2 一次承認 / 一次承認 150(稟議申請)→200(一次承認)。View: Class004=Own上長本人 $p.ex.processScript('2') 稟議を承認しました。
3 二次承認A / 二次承認 200(一次承認)→300(二次承認)。View: Class005=Own役員本人かつClassC∈[白,赤,事前,返金] $p.ex.processScript('3') 稟議を承認しました。
4 二次承認B / 二次承認(決裁) 200(一次承認)→900(最終決裁完了)。View: Class005=Own かつClassC∈[駐車場,赤5万以下,社用車事故,自家用車事故] $p.ex.processScript('4') 稟議を決裁しました。
5 最終決裁 / 最終決裁 300(二次承認)→900(最終決裁完了)。Users:[421]限定。View: ClassC∈[白,赤,事前,返金]かつClass037=Own $p.ex.processScript('5') 稟議を決裁しました。
6 差戻し / 差戻し (任意)→110(差戻し)。View: Status∈[150,200,300]かつClass037=Own $p.ex.processScript('6') 稟議申請を差戻しました。
7 再申請 / 再申請 110(差戻し)→150(稟議申請)。View: Class002=Own $p.ex.processScript('7')。Class004・Class005・ClassV必須バリデーション 稟議申請を再申請しました。
8 取消 / 取消 (任意)→930(取消)。View: Class002=OwnかつStatus∈[101,110,120,910] $p.ex.processScript('8') 稟議申請を取り消しました。
9 却下 / 却下 (任意)→920(却下)。View: Status∈[150,200,300]かつClass037=Own $p.ex.processScript('9') 稟議申請を却下しました。
10 保留 / 保留 (任意)→910(保留)。View: Class002=OwnかつStatus∈[101,110,120] $p.ex.processScript('10') 稟議申請を保留しました。
11 再開 / 再開 910(保留)→120(再開)。View: Class002=Own $p.ex.processScript('11') 稟議申請を再開しました。
12 新規登録 / 新規登録 100(新規作成)→101(新規登録)。ExecutionType:10自動実行系と推測 OnClickなし自動処理 稟議申請書が新規登録されました。
13 経理処理 / 経理処理 900(最終決裁完了)→990(経理確認済み)。Groups:[61]限定 $p.ex.processScript('13')。ClassO必須バリデーション 経理処理を行いました。
14 事故報告書チェック / 事故報告書チェック (任意)→(変更なし)。ActionType:90ステータス変更を伴わない検証専用アクション OnClickなしringiCheck関数内から$p.execProcessで内部的に呼び出し) SuccessMessageなし
15 最終決裁B / 二次(最終)決裁 200(一次承認)→900(最終決裁完了)。Users:[421]限定。View: ClassC∈[白,赤,事前,返金]かつClass037=Own $p.ex.processScript('15') 稟議を決裁しました。
16 ISO稟議修正 / ISO稟議修正 900(最終決裁完了)→940(ISO修正)。Groups:[13,19]限定 OnClickなし。ConfirmationMessageあり 稟議書を修正できる状態に変更しました。速やかに修正し、再承認を行ってください。
17 ISO稟議承認 / ISO稟議承認 940(ISO修正)→900(最終決裁完了)。Groups:[13,19]限定 $p.ex.processScript('17')。ConfirmationMessageあり 稟議は最終決裁状態へ差し戻されました。修正した内容については、関係者へ通知してください。
18 取消(システム・総務) / 取消(システム・総務) (任意)→930(取消)。Groups:[19]かつUsers:[463]限定 $p.ex.processScript('18') 稟議申請を取り消しました。

補足:

  • Id4二次承認(決裁)とId15二次(最終)決裁はともに「200→900」の同一遷移だが、Id4はView条件が Class005=Own担当役員本人でClassC限定、Id15はUsers:[421]特定ユーザー、社長限定でClassC条件は同一。少額カテゴリ駐車場・赤5万以下等を担当役員が直接決裁する経路Id4と、社長が同カテゴリを直接決裁できる経路Id15が並存している。
  • ステータス値とラベルの対応は4.のStatus選択肢一覧を参照。

StatusControlsステータス別の項目読取り専用制御

Id Name 対象Status 概要
1 全項目読取り専用 150,200,300,910,920,930,990 稟議申請以降・保留/却下/取消/経理確認済みの状態で主要項目(金額・分類・担当者・説明等)を読取り専用化
2 決裁完了 900 決裁完了後、主要項目を読取り専用化(経理処理欄は対象外)
3 経理確認済み 990 経理確認済み後、添付ファイルを含む全項目を読取り専用化

9. スタイルStyles

Id Title 適用範囲 ファイル
1 1.読み取り専用 New, Edit styles/1_1.読み取り専用.css
2 2.基本スタイル調整 New, Edit styles/2_2.基本スタイル調整.css
4 3.支払先テーブルの調整 New, Edit styles/4_3.支払先テーブルの調整.css
5 4.ボタンスタイル New, Edit styles/5_4.ボタンスタイル.css
6 5.ガイド欄 All styles/6_5.ガイド欄.css
7 6.金額ルールテーブル New, Edit styles/7_6.金額ルールテーブル.css

概要:code-readonly/code-readonly2 クラスによる疑似読取り専用表示、稟議コード・金額欄の大きな文字表示、支払先テーブルjspreadsheetの余白調整、プロセスボタンの色分け申請・承認系青、差戻し黄、取消・却下赤、保留・再開灰、経理処理、ガイド欄の強調表示、NumE項目内の「稟議金額入力ルール」表の配色を定義している。

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

Id Title 適用画面 ファイル
1 1.新・稟議申請書 New, Edit scripts/1_1.新・稟議申請書.js
2 2.稟議申請_作成時処理など New, Edit scripts/2_2.稟議申請_作成時処理など.js

概要Script Id1: jExcel/jSuitesライブラリをCDNから読み込み、支払先明細のスプレッドシート風テーブル工種・材料/取引先/客出し金額/原価/銀行口座情報等を生成・編集させる。関連案件有無ラジオボタンの表示切替、マスターシート選択時のAPI連携によるデータ自動反映工事名・担当者・危険負担費、危険負担費の自動計算、稟議通知先の自動補完、社用車事故報告テンプレートの自動挿入、消費税表示切替、既存項目の読取り専用制御などを行う。

概要Script Id2: 各プロセス(稟議申請/承認/決裁/差戻し/取消/却下/経理処理等)実行時の確認ダイアログ・入力チェック(ringiCheckマスターシート選択チェック、金額整合性チェック、赤稟議の事故報告書必須チェック、赤稟議5万円上限チェック等・コメント履歴の追記処理を行う。決裁完了時には稟議コード管理サイト160926のステータス更新、ISO稟議管理サイト319016へのデータ複写、マスターシート189112の危険負担費残金更新をAPI経由で実行する。

Id Title 適用タイミング ファイル
1 プロセス14 事故報告書チェックボタンの非表示 BeforeOpeningPage [serverscripts/1_プロセス14 事故報告書チェックボタンの非表示.js](../configs/site-319015_新・稟議申請書/serverscripts/1_プロセス14 事故報告書チェックボタンの非表示.js)

概要: 編集・新規作成画面表示前に、内部専用プロセス「事故報告書チェックId14」ボタンを非表示化し、更新ボタンのラベルを「一時保存」に変更する。また同一契約コードClass012かつ赤稟議系ClassC=1,3で申請中〜完了済みのレコードを対象に、原価・販売購入額・実損額・今回支払額・支払合計を items.Sum で集計し、隠しフィールド(summaryHanbaiMoneyとして画面に埋め込むクライアント側の「赤稟議5万円チェック」で参照される

セキュリティ上の注意(重要)

scripts/1_1.新・稟議申請書.jsscripts/2_2.稟議申請_作成時処理など.js の両方に、Pleasanter APIを呼び出すための APIキーがJavaScriptのソースコード内に平文でハードコードされているlet apiKey = '...' および uploadJson.ApiKey)。これらはクライアントスクリプト(ブラウザ上で実行され、画面のソースやネットワークタブから誰でも閲覧可能)であるため、ログイン可能な全ユーザーにAPIキーが事実上公開されている状態にある。値そのものは本書には転記していないが、下記「気になる点」に指摘として記載する。

11. その他設定

設定 値・有無
NoDisplayIfReadOnly false
HideLink true
AllowCopy false
TitleSeparator
SectionLatestId 19
TabLatestId 6
GuideAllowExpand / GuideExpand true / "1"
GridGuide 設定あり(システム概要・注意事項を[md]形式で記載)
EditorGuide 設定ありGridGuideに加え、赤稟議の必須項目・承認ルールを記載
CalendarGuide等その他Guide 未設定
Commentsサイト直下 "[]"コメント初期値なし。項目Commentsとは別のサイトメタ情報

Comments項目質疑応答は稟議申請書上で使用されており、コメント追加時に通知下記が発火する設定になっている。

サイト直下の通知Notifications、Process外

内容
質疑応答コメントComments列追加時に、申請者・更新者へ宛てて通知メールを送信。件名「稟議申請にて質疑応答コメントが追加されました」

リマインダーReminders

内容
DateK(期限)を基準に、期限が近いレコードについて Class037次の処理者とsystemadmin宛にリマインドメールを送信

エクスポート設定Exports

内容
「稟議集計用CSV」という名前でエクスポート定義ありResultId, Title, Status, および主要ClassX/NumX/DateX項目、計60列

カスタムビューViews

Id Name 概要
1 自分の申請 Class002(申請者)=Own の絞り込み
2 自分の処理 Class037(次の処理者)=Own の絞り込み。カレンダー/クロス集計表示設定あり
3 件名・内容 GridColumnsを差し替えた一覧DescriptionA=稟議内容を含む)

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

  • 【重大・セキュリティ】 クライアントスクリプト(scripts/1_1.新・稟議申請書.jsscripts/2_2.稟議申請_作成時処理など.js内にPleasanter APIキーが平文でハードコードされている。クライアントスクリプトはブラウザで実行されるためソースが全ユーザーに公開されており、閲覧可能な全ユーザーがこのAPIキーを取得できてしまう状態にある。APIキーが強い権限他サイトへの直接更新権限を含むを持つ場合、情報漏洩・不正操作のリスクがある。サーバースクリプトServerScripts側への処理移設、またはAPIキーのローテーション・権限最小化を推奨。
  • DescriptionE是正処置の効果測定はColumns定義には存在するが、EditorColumnHashのどのタブにも配置されておらず、実質的に編集画面から入力できない「死んだ列」になっているStatusControlsの読取り専用対象には含まれている。過去の仕様変更の残骸である可能性があり、削除または再配置の要否を確認すべき。
  • Sectionsの Id 4 は LabelText が空文字のままセクション区切りとして使われている(見出しなしセクション)。意図的な余白区切りなのか設定漏れなのか確認が必要。
  • CheckA列はラベル未設定・非表示のまま、新規作成時に稟議コード発行済みかどうかを判定するシステム内部フラグとして使われている。ラベルがないため仕様書上は用途がスクリプトを読まないと分からない。
  • Class100役員・Class101経理にはユーザーIDが配列でハードコードされた初期値が設定されている。人事異動があった場合にサイト設定の手動更新が必要になる構造であり、運用上のメンテナンス漏れリスクがある。
  • Id4二次承認(決裁)とId15二次(最終)決裁はステータス遷移が同一200→900で対象ClassCも同一だが、実行可能ユーザーの条件担当役員 vs 特定ユーザー421が異なる。UIボタンスタイル設定Styles Id5では#Process_15のみが承認系の青ボタンスタイル対象に含まれ#Process_4は含まれていない点で表示上の扱いに差異があり、意図した設計か確認が推奨される。
  • Class011マスターシートが参照するSiteId 189112は、本システムの10サイト一覧319014/319020/319021/319027/335730/319017/319015/319022/319016/160926には含まれない外部サイトである。全体関連図を作成する際は、この189112を「システム外部の連携先」として区別して扱う必要がある。