kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제(2)
이번 삭제는
삭제된 지침
삭제 버튼
테이블에서 삭제된 행 데이터가 응용 프로그램에서 제거됩니다.
또한 bulkRequest에서 새 등록과 업데이트를 동시에 진행합니다.
↓ 이번에 추가된 삭제 기능
기능 설계 삭제
이번에는 책상 위의 기록을 보존하기 위해 맞춤형 제작을 진행합니다.
자, 삭제!이럴 때 어떤 줄이 있는지 모르면 삭제된 기록을 모른다p>
원래 책상 위에 1줄과 2줄의 UID가 있었어요.
레코드를 편집할 때 한 줄을 삭제하면 이 상태가 됩니다.
는 원래 몇 줄이 있습니까?삭제된 UID 행은 무엇입니까?몰라요.p>
따라서 이번에ids라는 필드에서 등록된 UID를 쉼표로 구분해서 저장하는 메커니즘을 사용해서 삭제하려고 합니다br/>
ids 필드 사용하기
이것은 표의 UID 필드에 없는 것으로 Uids 필드에 있는 번호의 기록을 삭제했습니다!!!
사용
테이블의 모든 행을 삭제할 때
지난번까지의 코드는 "영어 단어와 일본어를 입력하세요"라고 표시되며 프로그램이 종료됩니다.br/>
따라서 책상이 비어 있으면 전소기를 세워야 합니다.
JavaScript
지난번과 같은 부분을 생략하였습니다
새 등록, 업데이트, 모두 삭제 판정
이전 코드의 "새 등록/업데이트 확인"코드가
로그인 업데이트 삭제 단추를 눌렀을 때 표의 줄이 모두 비어 있으면 모두 삭제됩니다.
중복 제거를 방지하기 위해 삭제 플래그를 모두 추가합니다.
const obj = kintone.app.record.get();
// 全消しフラグ
const allDel =
obj.record.テーブル.value.length === 1 &&
!obj.record.テーブル.value[0].value.英単語.value &&
!obj.record.テーブル.value[0].value.日本語.value &&
!obj.record.テーブル.value[0].value.UID.value;
if (
!allDel &&
obj.record.テーブル.value.some((r) => {
return !r.value.英単語.value || !r.value.日本語.value;
})
) {
console.log("英単語と日本語両方入力してね(終了)");
return;
}
// 空白のUIDがあればtrue(しかし全消しtrueならfalse)
const retUID =
obj.record.テーブル.value.some((r) => {
return !r.value.UID.value;
}) && !allDel;
const client = new KintoneRestAPIClient();
// 英単語一覧アプリ用の新しいUID
let newUID;
// 新規登録行がある場合、新しいUIDを求める
if (retUID) {
// 省略
}
새 레코드 작성 및 레코드 업데이트, 삭제할 레코드 번호 추출
이전 코드의'새 등록 및 업데이트 기록 만들기'를
전체 삭제 시 업데이트되거나 업데이트되지 않으므로 삭제할 레코드 ID를 추출합니다.br/>
모두 삭제하지 않으면 새 레코드와 업데이트된 레코드의 데이터를 만듭니다.
UID라는 독특한 ID는 영어 단어 목록 응용 프로그램에 있지만, 삭제할 때 번호를 기록해야 합니다.
특별히 UID에서 레코드 번호를 호출할 필요가 있습니다.(처음부터 번호를 기록하면 됩니까?)
const postRecs = [];
const putRecs = [];
const uids = obj.record.uids.value.split(",").map(Number);
const tuids = [];
const regUids = [];
let idx = 0;
// 全消しfalseなら新規・更新データ作成
if (!allDel) {
obj.record.テーブル.value.forEach((r, i) => {
if (!r.value.UID.value) {
// 新規 省略
} else {
// 更新 省略
});
}
// 削除するレコードのUIDを抽出する
const delUids = uids.filter((i) => tuids.indexOf(i) === -1);
// 削除するレコードのUIDから削除するレコード番号を抽出する
let delIds = [];
if (delUids.length > 0) {
const resDelGet = await client.record.getRecords({
app: appId,
fields: ["UID", "$id"],
query: `UID in(${delUids.join(",")})`,
});
resDelGet.records.forEach((r) => {
delIds.push(r.$id.value);
});
}
API 요청 매개변수 생성하기
DELETE용 매개 변수를 추가합니다.
const requestParams = [];
if (delIds.length > 0) {
requestParams.push({
method: "DELETE",
api: "/k/v1/records.json",
payload: {
app: appId,
ids: delIds,
},
});
}
if (postRecs.length > 0) {
requestParams.push({
・・・・以下略・・・・
총결산
처음에는 삭제를 잘 고려하지 않고 만들었는데 로고가 늘어나 혼란스러워졌지만 삭제 기능도 순조롭게 추가되었습니다.p>
해보고 싶은 사람은 취향에 맞게 코드를 깨끗이 지우고 사용하세요p>
↓ 후속 보도가 있습니다↓
* kintoone의 표 기록을 다른 프로그램의 기록에 로그인하기
* kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제 (1)
* kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제(2)(지금 보고 있는 보도)
* kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제(3)
* kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제(4)
Reference
이 문제에 관하여(kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/juri_don/items/2ddb06c5ddaade5b7209텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)