kintoone의 표에 응용 프로그램의 기록을 등록, 업데이트, 삭제(2)

14942 단어 kintone
지난번에 책상에 프로그램 기록을 등록하고 업데이트했습니다.
이번 삭제는

삭제된 지침


삭제 버튼
테이블에서 삭제된 행 데이터가 응용 프로그램에서 제거됩니다.
또한 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)


좋은 웹페이지 즐겨찾기