【kintone】Google 양식에서 레코드 편집(업데이트)

13193 단어 googleform금과gas
요 전날 Google 양식에서 레코드를 등록하는 방법을 시도했습니다.

【kintone】Google 양식에서 레코드 등록

이번은 전회의 계속으로 「편집(갱신)」하고 싶습니다.
마지막 앱과 Google 양식을 사용합니다.

앱 설정 변경



마지막 앱을 사용합니다.

Email 값 중복 금지



updateKey로 하고 싶으므로, 「값의 중복을 금지한다」에 체크를 넣어 주세요.
※Email의 필드의 종류는 링크가 아니고 캐릭터 라인(1행) 필드입니다.


API 토큰 설정 변경



"레코드 편집"을 체크하여 저장합니다.



GAS 다시 쓰기


  • 같은 이메일 주소라면 다른 정보를 덮어 씁니다
  • 새로운 메일 주소라면 신규 등록

  • 되고 싶습니다.

    코드는 이런 느낌. 비동기 처리하지 않아도 움직였습니다만, 좋은 것일까 이것으로?
    자세한 사람이 있으면 알려주세요 m (_ _) m
    function sendToKintone(e) {
        'use strict';
        const subdomain = "サブドメイン";//.cybozu.comの前のサブドメイン名
        const apps = {
            YOUR_APPLICATION: { appid: アプリID, name: "アプリの名前", token: "APIトークン" }
        };
        const manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリの初期化
    
        //アンケートの回答を取得
        const itemResponses = e.response.getItemResponses();
        const email = e.response.getRespondentEmail();
        let name, attend;
    
        itemResponses.forEach(item=>{                         
            switch (item.getItem().getTitle()) {
                case "名前":
                    name = item.getResponse();
                    break;
                case "参加/不参加":
                    attend=item.getResponse();
                    break;
            }                                           
        });
    
        //入力したemailアドレスが既にレコードにあるか調べる(件数が戻ってくる)
        const retSearch =  searchRecords(manager,email);
    
        let code, records;
        if(retSearch == 0){
            console.log("新規");
            records =[{
                "Email":{ "value":email},
                "name":{"value":name},
                "attend":{"value":attend}
            }];
            code=  createRecords(manager,records);
        }else{
            console.log("編集(更新)");
            records =[{
                "updateKey":{"field":"Email", "value":email},
                "record":{
                "name":{"value":name},
                "attend":{"value":attend}        
                }
            }];
            code =  editRecords(manager, records);
        }
        console.log(code);
    }
    
    //入力したEmailアドレスがすでにあるかどうか調べている
    function searchRecords(manager,email){
      const query = 'Email = "' + email + '"'
      const response = manager.search("YOUR_APPLICATION", query);
      const content = JSON.parse(response.getContentText());
      const records = content.records;
      return records.length;
    }
    
    //新規登録
    function createRecords(manager,records){
      const response = manager.create("YOUR_APPLICATION", records);//kintone レコードの生成
      const code = response.getResponseCode();
      return code;
    }
    
    //編集(更新)
    function editRecords(manager,records){
      const response = manager.update("YOUR_APPLICATION", records);//kintone レコードの更新
      const code = response.getResponseCode();
      return code;
    }
    

    설문조사 보내기



    이런 느낌으로 신규 등록 및 갱신할 수 있습니다.


    요약



    신규 등록 & 갱신을 아무것도 생각하지 않고 해 보았습니다만, 이것만이라고 장난스럽게 마음껏이 되어 버리므로, 여러가지 궁리가 필요할까 생각합니다.
    그렇기 때문에, 약간의 내륜의 앙케이트와 같이 사용해 보면 좋을지도 모르겠네요^0^
    또, 폼을 간단하게 만들 수 있는 제휴 서비스등도 있으므로, 그쪽을 사용해 보는 것도 좋을지도 모릅니다.

    좋은 웹페이지 즐겨찾기