お世話になります。初歩的な質問ですがご回答宜しくお願い致します。
Aアプリに設置したボタンを押下すると、Bアプリのテーブルに追加されるようにしたいと考えております。
※Bアプリに1レコードにデータを蓄積させたいと考えております。
どの様に実現すればよいかご教示頂ければ幸いです。
@TS44 さん
こんにちは、簡単にですが思いついたので、一例をフローで書いてみますね。
Bアプリに反映するボタンを押したら、kintone.app.record.get();
で今表示しているレコードの値を取得。
↓
Bレコードの対象のレコードの値をREST APIで取得(GET)する。
↓
(恐らく)Bアプリのテーブルの値をfor()
などでループさせて既に追加したもの か 新規追加するものか判断する。(Aアプリの追加対象のレコードのレコード番号をキーにして確認することを想定。なので.map()
などを使う方が短くまとまりますね。)
↓
まだ追加していない新規のレコードだと.push()
などで行追加、すでに追加していてば代入する形で値を更新。
↓
追加及び更新処理が終われば、BレコードにREST APIで更新(PUT)する。
みたいな形になるかなと想定してみました。
Aアプリのレコード番号をキーにすることを想定したので、BアプリのテーブルにもAアプリのレコードのレコード番号を記録するフィールドを追加してあげるほうがいいかなと思います!
ご回答誠にありがとうございます。
初心者の為、簡単なコードを教えて頂ければ幸いです。
ここは、有志の集まりで回答しているので時間のかかるコードをくださいは、初心者関係なくなかなか厳しいですよ
あと、人からもらったコードで構築しても恐らく後学にもならないと思いますし、恐らくビジネス上で自責の上で使っていると思いますが、他人が書いたコードを意味も分からず使用するのは危険だと思いませんか
言われている事を書こうと思えば、正直30分もあれば皆さん構築できると思いいますが、せめて一度自身で試してみて、わからなければ試してみた事と自身で考えたコードを提示の上また質問してみてください。
GetでAアプリのデータを取得する事は出来き、PUTで追加したメッセージは表示されるのですが、
Bアプリにデータが反映されません。何か誤りがあれがご教示願います。
let el1 = kintone.app.record.getSpaceElement('button1');
$('<input />', {
'type': 'button',
'name': 'button1',
'value': 'Bアプリへ',
'class': 'create_button',
}).on('click', function (resp) {
const params = {
app: event.appId,
id: event.recordId
};
kintone.api(kintone.api.url('/k/v1/record.json', true), 'GET', params).then((resp) => {
console.log(resp);
ID = event.recordId;
Name = resp.record.名前.value;
PostCode = resp.record.郵便番号.value;
Prefectures = resp.record.都道府県.value;
Address1 = resp.record.住所1.value;
Address2 = resp.record.住所2.value;
}).catch((error) => {
console.log(error);
});
var subTable = [];
var params2 = {
"app": 935,
"id": 1,
"Table": {"value": subTable}
};
subTable.push({
value: {
"ID": {value: ID, type: "SINGLE_LINE_TEXT"},
"名前": {value: Name, type: "SINGLE_LINE_TEXT"},
"郵便番号": {value: PostCode, type: "SINGLE_LINE_TEXT"},
"都道府県": {value: Prefectures, type: "SINGLE_LINE_TEXT"},
"住所1": {value: Address1, type: "SINGLE_LINE_TEXT"},
"住所2": {value: Address2, type: "SINGLE_LINE_TEXT"},
}
});
return kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', params2).then((resp) => {
alert('追加しました。');
return event;
}).catch((error) => {
// PUTエラー
console.log(error);
event.error = 'エラーが発生しました。';
return event;
});
}).appendTo(el1);
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。