コンテンツにスキップ

$p.apiUpdate

概要

AjaxのPOSTリクエストにより、レコードおよびWikiを更新します。

使い方

JavaScript
$p.apiUpdate({
    id: <レコードID>,
    data: {
        <更新データ>
    },
    done: <任意の処理>,
    fail: <任意の処理>,
    always: <任意の処理>
});

各パラメータの説明

パラメータ名 説明
レコード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('レコード取得に失敗しました。');
    },
});

実行結果

更新成功:Id=9999
更新成功:Id=9999
更新成功:Id=9999
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('レコード取得に失敗しました。');
    },
});

実行結果

更新成功: Id=9999, 削除対象=3件
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}`);
    },
});

実行結果

更新成功:Id=9999