開発者向け機能:サーバスクリプト: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)のみ取得可能です。
## 対応バージョン
#### Comments / Attachments
プリザンター 1.3.27.0 以降
## プロパティ
|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オブジェクト」に格納されます。
## 関連情報
<div id="ManualList"><ul><li><a href="/en/manual/table-grid">Table Function: Record Screen Index</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-editor">Table Function: Record Editor Screen</a><span>10.02.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/table-management-column">Manage Table: Column</a><span>10.07.2024 up</span></li>
<li><a href="/en/manual/table-management-id">Table Management: Item: ID</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-ver">Table Management: Item: Version</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-title">Table Management: Item: Title</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-body">Table Management: Item: Body</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-start-time">Manage Table: Column: Start</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-management-completion-time">Table Management: Item: Complete</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-work-value">Table Management: Item: Workload</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-progress-rate">Manage Table: Column: Progression Rate</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-management-remaining-work-value">Manage Table: Column: Remaining Work Volume</a><span>10.11.2024 up</span></li>
<li><a href="/en/manual/table-management-status">Manage Table: Column: Status</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-management-manager">Manage Table: Column: Manager</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-management-owner">Manage Table: Column: Owner</a><span>10.11.2024 up</span></li>
<li><a href="/en/manual/table-management-lock">Table Management: Item: Lock</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-class">Table Management: Item: Classification</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-num">Manage Table: Column: Numerical Value</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-management-date">Table Management: Item: Date</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-description">Table Management: Item: Description</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-check">Table Management: Item: Check </a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-attachments">Table Management: Item: Attachment</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-comments">Table Management: Item: Comment</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-creator">Manage Table: Column: Creator</a><span>10.11.2024 up</span></li>
<li><a href="/en/manual/table-management-updator">Manage Table: Column: Updater</a><span>10.02.2024 up</span></li>
<li><a href="/en/manual/table-management-created-time">Table Management: Item: Created Datetime</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-updated-time">Manage Table: Column: Update Datetime</a><span>10.11.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/table-management-editor">Table Management: Editor</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-editor-columns">テーブルの管理:エディタ:エディタの項目の設定</a><span>04.09.2024 up</span></li>
<li><a href="/en/manual/table-management-multiple-selections">Manage Table: Editor: Column Advanced Settings: Multiple Selection</a><span>10.02.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/table-management-column-access-control">Table Management: Access Control: Item Access Control</a><span>08.13.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/table-management-style">Table Management: Style</a><span>08.13.2024 up</span></li>
<li><a href="/en/manual/table-management-server-script">Table Management: Server Script</a><span>08.13.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/dev-column-name">Correspondence of Column name and Name in the system in the Database</a><span>10.04.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/server-script">Developer Function: Server Script</a><span>08.14.2024 up</span></li>
<li><a href="/en/manual/server-script-items">Developer Function: Server Scripts: items</a><span>08.14.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/style">Developer Features: Styles</a><span>08.14.2024 up</span></li></ul></article>
<ul><li><a href="/en/manual/faq-server-script-log">FAQ: I want to output the error log of a server script</a><span>08.14.2024 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />