サイト設定が格納されているSitesテーブルのSiteSettingsカラム

Pleasanter開発チームの内田です。

新年あけましておめでとうございます。
今年も宜しくお願いいたします。

弊社は中野駅北口のブロードウェイから徒歩3分の所にオフィスがあるのですが、中野駅の北口は飲食店がとても多く、毎日のように何を食べるか悩んでしまうほどです。今日は家系ラーメン「五丁目ハウス」で美味しいラーメンを食べてきました。家系なのにさっぱりとした味で胃もたれせずに美味しく食べれます。オススメ! tabelog.com

中野アピールはこのくらいにして、今日はサイト設定についてです。 Pleasanterは「テーブルの管理」のメニューから、項目をカスタマイズしたり計算式やスクリプトを挿入したりできます。ここで設定した内容がどこに保存されるのか、みなさん気になりますよね。

ずばり、保存先はデータベースImplem.PleasanterのSitesテーブルのSiteSettingsカラムにJSON形式で格納されます。

実際は、こんな形で保存されています。SQL Server Management Studioなどで開いてみてください。

{
  "Version": 1.014,
  "ReferenceType": "Issues",
  "GridView": 1,
  "GridColumns": [
    "IssueId",
    "ClassA",
    "ClassB",
    "TitleBody",
    "Comments",
    "Manager",
    "Owner",
    "StartTime",
    "CompletionTime",
    "WorkValue",
    "ProgressRate",
    "RemainingWorkValue",
    "Status",
    "Updator",
    "UpdatedTime"
  ],
  "EditorColumns": [
    "IssueId",
    "Ver",
    "Title",
    "Body",
    "StartTime",
    "CompletionTime",
    "WorkValue",
    "ProgressRate",
    "RemainingWorkValue",
    "Status",
    "Manager",
    "Owner",
    "ClassA",
    "ClassB",
    "ClassC",
    "AttachmentsA",
    "Comments"
  ],
  "TitleColumns": [
    "ClassA",
    "ClassB",
    "Title"
  ],
  "Columns": [
    {
      "ColumnName": "AttachmentsA",
      "LabelText": "添付資料"
    },
    {
      "ColumnName": "ClassA",
      "LabelText": "作業工程",
      "ChoicesText": "要件定義\n設計\n構築\nテスト\nリリース・展開\n初期サポート\n運用"
    },
    {
      "ColumnName": "ClassB",
      "LabelText": "作業内容",
      "ChoicesText": "調査\n調整/依頼\n申請\nドキュメント作成\n作業[定型]\n作業[非定型]\n打ち合わせ\nその他"
    },
    {
      "ColumnName": "ClassC",
      "LabelText": "機能分類",
      "ChoicesText": "ネットワーク・セキュリティ\nサーバ\n運用\n業務\n"
    }
  ],
  "Aggregations": [
    {
      "Id": 1,
      "GroupBy": "[NotGroupBy]",
      "Type": 1,
      "Target": "WorkValue"
    },
    {
      "Id": 5,
      "GroupBy": "[NotGroupBy]",
      "Type": 1,
      "Target": "RemainingWorkValue"
    },
    {
      "Id": 4,
      "GroupBy": "Owner",
      "Type": 1,
      "Target": "RemainingWorkValue"
    }
  ],
  "ViewLatestId": 1,
  "Views": [
    {
      "Id": 1,
      "Name": "標準",
      "TimeSeriesGroupBy": "ClassC",
      "TimeSeriesAggregateType": "Total",
      "KambanGroupByY": "ClassC"
    }
  ],
  "TitleSeparator": ""
}

比較的単純なので、「テーブルの管理」を使わずに直接編集することも可能です。以下に、いくつか主要なものを説明します。これ以外にも「テーブルの管理」で設定するものは、ほとんどこちらのJSONに格納されます。

・GridColumns:一覧画面に表示する項目
・EditorColumns:編集画面に表示する項目
・TitleColumns:タイトルに結合して表示する項目
・Columns:各項目の表示名や詳細設定
・Aggregations:集計機能で利用する項目と集計方法
・Views:ビューの設定

テーブルの管理で設定して、JSONを確認すると、どの設定がどの項目に対応するか簡単に把握できます。ぜひためしてみてください。

また、このJSONは、コピーして他のテーブルで使用したり、他の環境に移行するために使うこともできます。ただし、以下の項目は環境ごとに異なるIDをもっていたり、他のテーブルにも関連情報が格納されるので再設定が必要です。ご注意ください。

・リンクの設定(環境毎に異なるサイトIDが含まれる)
・サイトのアクセス制御(Permissionsテーブルに設定情報が格納される)
・レコードのアクセス制御(環境毎に異なる組織ID, グループID, ユーザIDが含まれる)
・項目のアクセス制御(環境毎に異なる組織ID, グループID, ユーザIDが含まれる)

今年もPleasanter開発チームをよろしくおねがいします!