開発者向け機能:サーバスクリプト:items.Create
## 概要
指定したサイトIDのテーブルにレコードを作成します。
・ 構文①:オブジェクトを指定する方法 > 使用例①
・ 構文②:JSON文字列を指定する方法 > 使用例②、使用例③
## 制限事項
作成したレコードのIDを、items.Createの戻り値から取得することはできません。
・ 構文①で記述すると、作成したレコードのIDを取得できます。> 使用例①
・ 構文②で記述すると、作成したレコードのIDを取得できません。> 使用例②、使用例③
## 構文①
```
items.Create(siteId, model)
```
## パラメータ
|パラメータ|型|必須|説明|
|:----------|:----------|:---:|:---------------------------|
|siteId|object|○|対象テーブルのサイトIDを指定|
|model|object|○|items.NewSite,items.NewIssue,Items.Resultメソッドで取得したapiModelオブジェクトを指定|
## 戻り値
レコードを作成できたらtrue、作成できなかったらfalseを返却します。
作成したレコード内容はレコードIDを含めmodelに反映されます。
## 構文②
```
items.Create(siteId, json)
```
## パラメータ
|パラメータ|型|必須|説明|
|:----------|:----------|:---:|:---------------------------|
|siteId|object|○|対象テーブルのサイトIDを指定|
|json|string|○|JSON文字列を指定|
## 戻り値
レコードを作成できたらtrue、作成できなかったらfalseを返却します。
## サンプルコード
##### コード内の{{ ... }} は適宜修正してください。
<details>
<summary>1. 構文①でレコード作成</summary>
構文①でレコードを新規作成します。
##### itemsCreateP1.js
```
// サイトIDを指定しレコードを1件作成
// サイト名を指定しレコードを1件作成
const siteName = '{サイト名}';
let apiModel = items.NewResult();
apiModel.Title = 'サンプル案件_P1';
apiModel.Status = 200;
apiModel.ClassA = '問い合わせ';
apiModel.DateA = '2025/01/10';
apiModel.NumA = 5;
// サイト情報を取得
const site = items.GetClosestSite(siteName);
if (!site) {
logs.LogInfo(`${siteName} サイト情報取得失敗`);
return false;
}
items.Create(site.SiteId, apiModel);
// ブラウザのコンソールに作成したレコードのIDを出力
logs.LogInfo(apiModel.ResultId);
```
##### 実行結果
```
(Info):9999
```
</details>
<details>
<summary>2. 構文②でレコード作成</summary>
構文②でレコードを新規作成します。
##### itemsCreateP2.js
```
// サイト名を指定しレコードを1件作成
const siteName = '{サイト名}';
// サイト情報を取得
const site = items.GetClosestSite(siteName);
if (!site) {
logs.LogInfo(`${siteName} サイト情報取得失敗`);
return false;
}
const data = {
ApiVersion: 1.1,
Title: 'サンプル案件_P1',
Status: 200,
ClassHash: { ClassA: '問い合わせ' },
DateHash: { DateA: '2025/1/10' },
NumHash: { NumA: 5 },
};
const result = items.Create(site.SiteId, JSON.stringify(data));
if (result) {
logs.LogInfo('レコード作成成功');
} else {
logs.LogInfo('レコード作成失敗');
}
```
##### 実行結果
```
(Info):レコード作成成功
```
</details>
<details>
<summary>3. CSVファイルを読み込み複数件レコード作成</summary>
CSVを読み込み、複数件のレコードを作成します。
##### itemsCreateP3.js
```
// サイト名を指定
const siteName = '{サイト名}';
// サイト情報を取得
const site = items.GetClosestSite(siteName);
if (!site) {
logs.LogInfo(`${siteName} サイト情報取得失敗`);
return false;
}
// セクションとファイルパスを指定し、CSVファイルを読み込み
const section = 'files';
const path = 'projects_data.csv';
const file = $ps.file.readAllText(section, path);
// CSV文字列を配列に変換
const csvRec = $ps.CSV.str2csv(file);
// 配列の各行をレコードとして作成
for (const rec of csvRec) {
let apiModel = items.NewResult();
apiModel.Title = rec[0];
apiModel.Status = rec[1];
apiModel.ClassA = rec[2];
apiModel.NumA = rec[3];
apiModel.NumB = rec[4];
apiModel.DateA = rec[5];
apiModel.DateB = rec[6];
apiModel.DescriptionA = rec[7];
items.Create(site.SiteId, apiModel);
// ブラウザのコンソールに作成したレコードのIDを出力
logs.LogInfo(`レコード作成しました/${apiModel.ResultId}`);
}
```
##### 実行結果
```
(Info):レコード作成しました/9999
(Info):レコード作成しました/9999
(Info):レコード作成しました/9999
・・・
```
</details>
## 関連情報
・ [テーブルの管理:サーバスクリプト](/manual/table-management-server-script)
・ [オブジェクトごとの実行タイミング](/manual/server-script-conditions)
・ [itemsオブジェクト](/manual/server-script-items)
・ [itemsオブジェクト:NewSiteメソッド](/manual/server-script-items-new-site)
・ [itemsオブジェクト:NewIssueメソッド](/manual/server-script-items-new-issue)
・ [itemsオブジェクト:NewResultメソッド](/manual/server-script-items-new-result)
・ [apiModelオブジェクト](/manual/server-script-api-model)
・ [$ps.fileオブジェクト](/manual/server-script-ps-file)
・ [$ps.fileオブジェクト:readAllTextメソッド](/server-script-ps-file-read-all-text)
