【kintone】Googleフォームからレコードを編集(更新)する
先日、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^
また、フォームを簡単に作れる連携サービスなどもあるので、そちらを使ってみるのもいいかもしれません。
Author And Source
この問題について(【kintone】Googleフォームからレコードを編集(更新)する), 我々は、より多くの情報をここで見つけました https://qiita.com/juri_don/items/3483bf347a42473a04ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .