items.Update
概要¶
指定したレコードを更新します。
構文¶
パラメータ¶
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| recordId | object | ○ | 対象レコードのレコードIDを指定 |
| data | string | ○ | 更新内容をJSON形式で指定。指定内容はJSONデータレイアウト:共通、JSONデータレイアウト:Itemを参照してください。また、items.UpdateではItemのパラメータにVerUpを指定できます。 |
戻り値¶
レコードを更新できたらtrue、更新できなかったらfalseを返却します。
使用例¶
const recordId = 12345;
const updateModel = JSON.stringify({
Body: '内容',
VerUp: true
});
const updated = items.Update(recordId, updateModel);
if (updated) {
context.Log('更新成功');
} else {
context.Log('更新失敗');
}
サンプルコード¶
コード内の【 ... 】 は適宜修正してください。¶
1. レコードIDを直接指定し更新
レコードIDを直接指定し更新します。
JavaScript¶
// レコードIDを指定しレコードを更新
const recordId = 【レコードID】;
const data = {
Title: 'タイトル変更',
ClassHash: {
ClassA: '障害',
},
};
const result = items.Update(recordId, JSON.stringify(data));
if (result) {
logs.LogInfo(`更新成功`);
} else {
logs.LogUserError(`更新失敗`);
}
実行結果¶
2. 複数のレコードを更新
条件に該当するレコードを取得し、該当するレコード複数件を更新します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// 処理対象のサイト名を指定
const siteName = '【サイト名】';
// サイト情報を取得
const site = items.GetClosestSite(siteName);
if (!site) {
logs.LogInfo(`${siteName} サイト情報取得失敗`);
return false;
}
// 状況が未着手(100)のデータを抽出対象とする
const status_codes = `["100"]`;
const data = {
View: {
ColumnFilterHash: {
Status: `${status_codes}`,
},
},
};
const results = Array.from(items.Get(site.SiteId, JSON.stringify(data)));
for (const item of results) {
// 状況を保留(910)に更新
const data = {
Status: '910',
};
const result = items.Update(item.ResultId, JSON.stringify(data));
if (result) {
logs.LogInfo(`更新成功:Id=${item.ResultId}`);
} else {
logs.LogUserError(`更新失敗:Id=${item.ResultId}`);
}
}
実行結果¶
3. 添付ファイルを削除
特定のレコードに添付されている添付ファイルをすべて削除します。
コードの途中で return を使っているため、サーバスクリプトの「関数化」を有効にしてください。
JavaScript¶
// 処理対象のレコードID
const recordId = 【レコードID】;
// レコード取得
const results = Array.from(items.Get(recordId));
if (!results || results.length === 0) {
logs.LogInfo(`レコードが見つかりませんでした: Id=${recordId}`);
return;
}
// AttachmentsAを扱いやすい形にパース
const attachments = JSON.parse(
$ps.JSON.stringify(results[0].AttachmentsA || [])
);
if (attachments.length === 0) {
logs.LogInfo(`添付ファイルなしのため更新不要: Id=${recordId}`);
return;
}
// すべての添付の Guid を指定、Deleted=1 にして更新する(添付を削除する)
const data = {
AttachmentsHash: {
AttachmentsA: attachments.map((attachment) => ({
Guid: attachment.Guid,
Deleted: 1,
})),
},
};
const result = items.Update(recordId, JSON.stringify(data));
if (result) {
logs.LogInfo(
`更新成功: Id=${recordId}, 削除対象=${attachments.length}件`
);
} else {
logs.LogUserError(`更新失敗: Id=${recordId}`);
}
実行結果¶
4. レコードのアクセス制御を設定
特定のレコードにレコードのアクセス制御を設定します。
JavaScript¶
// 処理対象のレコードID
const recordId = 【レコードID】;
// 【グループID】のグループに対して管理者権限をレコードのアクセス制御に付与する
const data = {
RecordPermissions: ['Group,【グループID】,511'],
};
const result = items.Update(recordId, JSON.stringify(data));
if (result) {
logs.LogInfo(`更新成功: Id=${recordId}`);
} else {
logs.LogUserError(`更新失敗: Id=${recordId}`);
}
実行結果¶
5. 必要な権限を持つユーザのAPIキーで更新
下記の例では、特定のユーザの権限でレコードを更新します。書き込み権限を持つユーザのAPIキーをApiKeyに入力してください。
注意事項¶
こちらはサーバスクリプトで使用するメソッドです。スクリプトでは使用できません。
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.5.6.0 以降 | VerUpを追加 |
