開発者向け機能:スクリプト:$p.apiDelete
## 概要
AjaxのPOSTリクエストにより、レコードおよびWikiを削除します。
## 構文
##### JavaScript
```
$p.apiDelete({
id: <レコードID>,
done: <任意の処理>,
fail: <任意の処理>,
always: <任意の処理>
});
```
## パラメータ
|パラメータ名|型|必須|概要|
|:--|:--|:--|:--|
|id|long|○|削除対象のレコードID|
|done|function|○|API通信成功時の処理|
|fail|function||API通信失敗時の処理|
|always|function||API通信完了時の処理|
## 使用例
##### JavaScript
```
$p.apiDelete({
id: 123,
done: function (data) {
console.log(data);
},
fail: function (data) {
console.log(data);
},
always: function (data) {
console.log(data);
}
});
```
## サンプルコード
##### コード内の【 ... 】 は適宜修正してください。
<details>
<summary>1. ステータスが「保留中」かつ申請予定日が「30日以上」経過しているレコードを削除する</summary>
ステータスが保留中(910)かつ申請予定日が30日以上前のレコードを取得し、削除する。
##### JavaScript
```
// 対象サイトID
const TARGET_SITE_ID = 【対象サイトのID】;
// 削除対象ステータス(保留)
const TARGET_STATUS = '["910"]';
// 経過日数の閾値
const LIMIT_DAYS = 30;
///対象サイトのデータを取得
$p.apiGet({
id: TARGET_SITE_ID,
data: {
View: {
ColumnFilterHash: { Status: TARGET_STATUS },
},
},
done: function (data) {
const rows = data.Response.Data;
// 申請予定日(DateA)が30日以上前のものだけに絞り込み
const limitDate = new Date();
limitDate.setDate(limitDate.getDate() - LIMIT_DAYS);
const targets = rows.filter(row => new Date(row.DateHash.DateA) < limitDate);
if (targets.length === 0) return;
// 対象のレコード削除
targets.forEach(row => {
$p.apiDelete({
id: row.ResultId,
done: function () {
console.log(`(Info):削除成功:Id=${row.ResultId}`);
},
fail: function (err) {
console.log(`(Info):削除失敗:Id=${row.ResultId}`, err);
},
});
});
},
fail: function (err) {
console.log('レコード取得に失敗しました。', err);
},
});
```
##### 実行結果
```
(Info):削除成功:Id=9997
(Info):削除成功:Id=9998
(Info):削除成功:Id=9999
```
</details>
[FAQ:サンプルコード:ステータスが完了になったら別レコードを削除させたい](/manual/faq-delete-complete-record)



