開発者向け機能:サーバスクリプト:model
## 概要
[サーバスクリプト](/ja/manual/table-management-server-script)で使用可能な現在の「レコード」の情報をもつオブジェクトです。プロパティを使用し[項目](/ja/manual/table-management-column)の値の読み取りが行えます。プロパティに値を代入すると[一覧画面](/ja/manual/table-grid)や[エディタ](/ja/manual/table-editor)の項目の表示を変更できますが「レコード」の更新を行うことはできません。他のテーブルの「レコード」の取得や「レコード」の更新を行う場合は[itemsオブジェクト](/ja/manual/server-script-items)を使用してください。
## 制限事項
1. 「サイト設定読み込み時」、「ビュー処理時」の条件では使用できません。
1. [一覧画面](/ja/manual/table-grid)では「行表示の前」の条件を指定した場合のみ使用できます。
1. [項目のアクセス制御](/ja/manual/table-management-column-access-control)で「読み取り権限」の無い[項目](/ja/manual/table-management-column)は取得できません。
1. [項目のアクセス制御](/ja/manual/table-management-column-access-control)で「更新権限」の無い[項目](/ja/manual/table-management-column)は値を代入しても画面の表示を変更できません。
1. 画面上に存在しない[項目](/ja/manual/table-management-column)は取得できません。画面上にない[項目](/ja/manual/table-management-column)を取得するには「AlwaysGetColumnsオブジェクト」を使用してください。
1. [添付ファイル項目](/ja/manual/table-management-attachments)はファイルそのものを取得できません。添付ファイルに関するメタデータ(JSON)のみ取得可能です。
## プロパティ
|No|プロパティ名|get|set|type|説明|
|:----|:----|:----|:----|:----|:----|
|1|IssueId / ResultId|○| |long|[ID項目](/ja/manual/table-management-id)|
|2|SiteId|○| |long|「サイトID項目」|
|3|Creator|○| |int|[作成者項目](/ja/manual/table-management-creator)|
|4|CreatedTime|○| |DateTime|[作成日時項目](/ja/manual/table-management-created-time)|
|5|Updator|○| |int|[更新者項目](/ja/manual/table-management-updator)|
|6|UpdatedTime|○| |DateTime|[更新日時項目](/ja/manual/table-management-updated-time)|
|7|Ver|○| |int|[バージョン項目](/ja/manual/table-management-ver)|
|8|Title|○|○|string|[タイトル項目](/ja/manual/table-management-title)|
|9|Body|○|○|string|[内容項目](/ja/manual/table-management-body)|
|10|StartTime|○|○|DateTime|[開始項目](/ja/manual/table-management-start-time)|
|11|CompletionTime|○|○|DateTime|[完了項目](/ja/manual/table-management-completion-time)|
|12|WorkValue|○|○|decimal|[作業量項目](/ja/manual/table-management-work-value)|
|13|ProgressRate|○|○|decimal|[進捗率項目](/ja/manual/table-management-progress-rate)|
|14|RemainingWorkValue|○| |decimal|[残作業量項目](/ja/manual/table-management-remaining-work-value)|
|15|Status|○|○|int|[状況項目](/ja/manual/table-management-status)|
|16|Manager|○|○|int|[管理者項目](/ja/manual/table-management-manager)|
|17|Owner|○|○|int|[担当者項目](/ja/manual/table-management-owner)|
|18|Locked|○|○|bool|[ロック項目](/ja/manual/table-management-lock)|
|19|Comments|○| |string|[コメント項目](/ja/manual/table-management-comments)|
|20|ClassA~|○|○|string|[分類項目](/ja/manual/table-management-class)|
|21|NumA~|○|○|decimal|[数値項目](/ja/manual/table-management-num)|
|22|DateA~|○|○|DateTime|[日付項目](/ja/manual/table-management-date)|
|23|DescriptionA~|○|○|string|[説明項目](/ja/manual/table-management-description)|
|24|CheckA~|○|○|bool|[チェック項目](/ja/manual/table-management-check)|
|25|AttachmentsA~|○| |string|[添付ファイル項目](/ja/manual/table-management-attachments)|
|26|ExtendedRowCss|○|○|string|「行CSS」|
|27|ExtendedRowData|○|○|string|「行データ属性」|
|28|UpdateOnExit| |○|bool|サーバスクリプト終了後にレコードを更新|
|29|ReadOnly|○|○|bool|レコードを読取専用|
## メソッド
メソッドはありません。
## 使用例①
下記の例では[更新日時項目](/ja/manual/table-management-updated-time)を取得します。時刻はUTCで取得されますので、必要に応じてJST等に変換してください。
##### JavaScript
```
let updatedTime = model.UpdatedTime;
```
## 使用例②
下記の例では[状況項目](/ja/manual/table-management-status)を取得します。表示名ではなく値を取得します。
##### JavaScript
```
let status = model.Status;
```
## 使用例③
下記の例では[タイトル項目](/ja/manual/table-management-title)に'新しいレコードタイトル'を設定します。
##### JavaScript
```
model.Title = '新しいレコードタイトル';
```
## 使用例④
下記の例では[状況項目](/ja/manual/table-management-status)に300(レビュー)を設定します。表示名ではなく値を代入します。
##### JavaScript
```
model.Status = 300;
```
## 使用例⑤
下記の例では[分類項目](/ja/manual/table-management-class)に「東京都」を設定します。
##### JavaScript
```
model.ClassB = '東京都';
```
## 使用例⑥
下記の例では[複数選択](/ja/manual/table-management-multiple-selections)をオンにした[分類項目](/ja/manual/table-management-class)の値を取得します。取得した値は以下のように配列に置き換えて処理する必要があります。※下記は選択肢一覧に[[Groups*]]を設定
##### JavaScript
```
let groupIdList = JSON.parse(model.ClassA);
for (let groupId of groupIdList) {
context.Log(groupId);
}
```
## 使用例⑦
下記の例では[複数選択](/ja/manual/table-management-multiple-selections)をオンにした[分類項目](/ja/manual/table-management-class)に「設計」と「構築」を代入します。[複数選択](/ja/manual/table-management-multiple-selections)をオンにした[分類項目](/ja/manual/table-management-class)ではJSON形式の文字列で代入する必要があります。
##### JavaScript
```
let data = [];
data.push('設計');
data.push('構築');
model.ClassA = JSON.stringify(data);
```
## 使用例⑧
下記の例では[一覧画面](/ja/manual/table-grid)で[管理者項目](/ja/manual/table-management-manager)または[担当者項目](/ja/manual/table-management-owner)がログインユーザのレコードに黄色の背景色のCSSをセットします。条件は「行表示の前」を使用します。[サーバスクリプト](/ja/manual/table-management-server-script)と[スタイル](/ja/manual/table-management-style)を組み合わせて使用します。
##### JavaScript
```
if (model.Manager === context.UserId || model.Owner === context.UserId) {
model.ExtendedRowCss = 'own';
}
```
##### CSS
```
.own {
background-color: yellow;
}
```
## 使用例⑨
下記の例では[一覧画面](/ja/manual/table-grid)のレコードにデータ属性「data-extension」を追加します。※属性名は「extension」固定です。複数のデータ属性を付与したい場合はJSONオブジェクトに格納してセットしてください。
##### JavaScript
```
model.ExtendedRowData = JSON.stringify({ timeout: limit });
```
生成されるHTMLです。
##### HTML
```
<tr class="grid-row" data-extension="'{"timeout":300}'"> ...
```
スクリプトで参照してみます。jQueryのdata()でアクセスします。
##### JavaScript
```
const handler = function () {
$('table tr').each(function (i, e) {
var ext = $(e).data('extension'); // var extはJSON object
if (Date.now() > ext.timeout) {
...
}
});
};
```
## 使用例⑩
下記の例では[日付項目](/ja/manual/table-management-date)に当日の日付をセットし、サーバスクリプト終了後にレコードの更新を行います。
##### JavaScript
```
model.DateA = utilities.Today();
model.UpdateOnExit = true;
```
## 出力例
model.AttachmentsAの出力例(以下は出力された文字列を整形したものです)
```
[
{
"Guid": "18F34BCD594F4FF6A94D7C0F9C8AB5D4",
"Name": "test.txt",
"Size": 4,
"HashCode": "n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg="
}
]
```
model.Commentsの出力例(以下は出力された文字列を整形したものです)
```
[
{
"CommentId": 1,
"CreatedTime": "2022-12-22T14:42:56.7963585+09:00",
"Creator": 1,
"Body": "ここにはコメントの本文が入ります"
}
]
```
## 詳細情報
1. [一覧画面](/ja/manual/table-grid)では条件に「行表示の前」を指定した場合のみ使用できます。行毎に[サーバスクリプト](/ja/manual/table-management-server-script)が実行され各行のレコードが「modelオブジェクト」に格納されます。
1. [エディタ](/ja/manual/table-editor)では現在、画面に表示されている「レコード」の情報が「modelオブジェクト」に格納されます。
## 対応バージョン
|対応バージョン|内容|
|:--|:--|
|1.3.27.0 以降|Commentsを追加<br>Attachmentsを追加|
## 関連情報
<div id="ManualList"><ul><li><a href="/ja/manual/table-grid">テーブル機能:レコードの一覧画面</a><span>2023/04/12 up</span></li>
<li><a href="/ja/manual/table-editor">テーブル機能:レコードのエディタ画面</a><span>2023/04/12 up</span></li></ul></article>
<ul><li><a href="/ja/manual/table-management-column">テーブルの管理:項目</a><span>2023/06/13 up</span></li>
<li><a href="/ja/manual/table-management-id">テーブルの管理:項目:ID</a><span>2023/04/19 up</span></li>
<li><a href="/ja/manual/table-management-ver">テーブルの管理:項目:バージョン</a><span>2023/04/19 up</span></li>
<li><a href="/ja/manual/table-management-title">テーブルの管理:項目:タイトル</a><span>2023/04/19 up</span></li>
<li><a href="/ja/manual/table-management-body">テーブルの管理:項目:内容</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-start-time">テーブルの管理:項目:開始</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-completion-time">テーブルの管理:項目:完了</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-work-value">テーブルの管理:項目:作業量</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-progress-rate">テーブルの管理:項目:進捗率</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-remaining-work-value">テーブルの管理:項目:残作業量</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-status">テーブルの管理:項目:状況</a><span>2023/06/13 up</span></li>
<li><a href="/ja/manual/table-management-manager">テーブルの管理:項目:管理者</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-owner">テーブルの管理:項目:担当者</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-lock">テーブルの管理:項目:ロック</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-class">テーブルの管理:項目:分類</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-num">テーブルの管理:項目:数値</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-date">テーブルの管理:項目:日付</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-description">テーブルの管理:項目:説明</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-check">テーブルの管理:項目:チェック</a><span>2024/06/03 up</span></li>
<li><a href="/ja/manual/table-management-attachments">テーブルの管理:項目:添付ファイル</a><span>2024/06/13 up</span></li>
<li><a href="/ja/manual/table-management-comments">テーブルの管理:項目:コメント</a><span>2023/04/21 up</span></li>
<li><a href="/ja/manual/table-management-creator"> テーブルの管理:項目:作成者</a><span>2024/06/03 up</span></li>
<li><a href="/ja/manual/table-management-updator">テーブルの管理:項目:更新者</a><span>2024/06/03 up</span></li>
<li><a href="/ja/manual/table-management-created-time">テーブルの管理:項目:作成日時</a><span>2024/06/03 up</span></li>
<li><a href="/ja/manual/table-management-updated-time">テーブルの管理:項目:更新日時</a><span>2024/06/03 up</span></li></ul></article>
<ul><li><a href="/ja/manual/table-management-editor">テーブルの管理:エディタ</a><span>2024/04/09 up</span></li>
<li><a href="/ja/manual/table-management-editor-columns">テーブルの管理:エディタ:エディタの項目の設定</a><span>2024/12/19 up</span></li>
<li><a href="/ja/manual/table-management-multiple-selections">テーブルの管理:エディタ:項目の詳細設定:複数選択</a><span>2024/04/11 up</span></li></ul></article>
<ul><li><a href="/ja/manual/table-management-column-access-control">テーブルの管理:アクセス制御:項目のアクセス制御</a><span>2023/05/18 up</span></li></ul></article>
<ul><li><a href="/ja/manual/table-management-style">テーブルの管理:スタイル</a><span>2024/12/10 up</span></li>
<li><a href="/ja/manual/table-management-server-script">テーブルの管理:サーバスクリプト</a><span>2024/10/08 up</span></li></ul></article>
<ul><li><a href="/ja/manual/dev-column-name">項目名とデータベース上のカラム名の対応</a><span>2024/12/19 up</span></li></ul></article>
<ul><li><a href="/ja/manual/server-script">開発者向け機能:サーバスクリプト</a><span>2023/06/01 up</span></li>
<li><a href="/ja/manual/server-script-items">開発者向け機能:サーバスクリプト:items</a><span>2024/06/11 up</span></li></ul></article>
<ul><li><a href="/ja/manual/style">開発者向け機能:スタイル</a><span>2023/05/18 up</span></li></ul></article>
<ul><li><a href="/ja/manual/faq-server-script-log">FAQ:サーバスクリプトのエラーログを出力したい</a><span>2024/04/29 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />