$p.apiUpdate
概要¶
AjaxのPOSTリクエストにより、レコードおよびWikiを更新します。
使い方¶
JavaScript¶
各パラメータの説明¶
| パラメータ名 | 説明 |
|---|---|
| レコードID | 操作対象のレコードID |
| 更新データ | POSTするjsonデータ |
| 任意の処理 | API通信成功(done:必須)、失敗時(fail:任意)、完了時(always:任意)の処理 |
記述方法¶
JavaScript¶
$p.apiUpdate({
id: 123,
data: {
ApiVersion: 1.1,
ClassHash: {
ClassA: 'テストデータ'
}
},
done: function (data) {
console.log(data);
},
fail: function (data) {
console.log(data);
},
always: function (data) {
console.log(data);
}
});
サンプルコード¶
Note
コード内の【 ... 】は適宜修正してください。
1. レコードIDを直接指定し更新
レコードIDを直接指定し更新します。
// 更新対象のレコードID
const recordId = 【レコードID】;
$p.apiUpdate({
id: recordId,
data: {
ApiVersion: 1.1,
Title: 'タイトル変更',
ClassHash: { ClassA: '障害' },
},
done: function (data) {
console.log('更新成功');
},
fail: function (data) {
console.log('更新失敗');
},
});
実行結果¶
2. 複数のレコードを更新
条件に該当するレコードを取得し、該当するレコード複数件を更新します。
// 更新対象を絞り込むサイトID
const siteId = 【サイトID】;
$p.apiGet({
id: siteId,
data: {
View: {
ColumnFilterHash: {
Status: `["100"]`, // 状況が未着手(100)のレコードを抽出
},
},
},
done: function (data) {
const records = data.Response.Data;
records.forEach(function (item) {
// 結果テーブルは ResultId、課題テーブルは IssueId で参照
const recordId = item.ResultId || item.IssueId;
$p.apiUpdate({
id: recordId,
data: {
Status: '910', // 状況を保留(910)に更新
},
done: function (updated) {
console.log(`更新成功:Id=${recordId}`);
},
fail: function (updated) {
console.log(`更新失敗:Id=${recordId}`);
},
});
});
},
fail: function (data) {
console.log('レコード取得に失敗しました。');
},
});
実行結果¶
3. 添付ファイルを削除
特定のレコードに添付されている添付ファイルをすべて削除します。
// 処理対象のレコードID
const recordId = 【レコードID】;
$p.apiGet({
id: recordId,
data: { ApiVersion: 1.1 },
done: function (data) {
const records = data.Response.Data;
if (records.length === 0) {
console.log(`レコードが見つかりませんでした: Id=${recordId}`);
return;
}
const record = records[0];
// 添付ファイルの配列を取得(環境により Hash 形式 / フラット形式の両対応)
const attachments =
(record.AttachmentsHash && record.AttachmentsHash.AttachmentsA) ||
record.AttachmentsA ||
[];
if (attachments.length === 0) {
console.log(`添付ファイルなしのため更新不要: Id=${recordId}`);
return;
}
$p.apiUpdate({
id: recordId,
data: {
ApiVersion: 1.1,
AttachmentsHash: {
// すべての添付の Guid を指定し Deleted:1 にして削除
AttachmentsA: attachments.map(function (attachment) {
return { Guid: attachment.Guid, Deleted: 1 };
}),
},
},
done: function (updated) {
console.log(
`更新成功: Id=${recordId}, 削除対象=${attachments.length}件`,
);
},
fail: function (updated) {
console.log(`更新失敗: Id=${recordId}`);
},
});
},
fail: function (data) {
console.log('レコード取得に失敗しました。');
},
});
実行結果¶
4. レコードのアクセス制御を設定
特定のレコードにレコードのアクセス制御を設定します。
// 処理対象のレコードID
const recordId = 【レコードID】;
$p.apiUpdate({
id: recordId,
data: {
ApiVersion: 1.1,
// 【グループID】のグループに対してすべての権限(511)をレコードのアクセス制御に付与
RecordPermissions: ['Group,【グループID】,511'],
},
done: function (data) {
console.log(`更新成功: Id=${recordId}`);
},
fail: function (data) {
console.log(`更新失敗: Id=${recordId}`);
},
});
