他アプリへのレコード登録

お世話になっております

最近kintoneを利用し始めたのですがこういうことができないかと以下の事を考えたのですが知識がなくなにをすれば解決できるのか分からずに困っている状態です。

※アプリ名は「」、フィールド名は()表記

現在ラズパイとICカードリーダーを利用しICカードをかざすと(年月日)(時刻)(IDm)がkintoneのアプリ「入場記録」にレコードとして記録されます。
それを踏まえて、現在kintoneで3つのアプリを連携させようとしています。

①「名簿」アプリ:利用する人の情報
・利用するフィールド:(氏名)(IDm)
②「入退室記録」アプリ:(年月日)(時刻)(IDm)が記録されている
・利用するフィールド:(年月日)(時刻)(IDm)
③「勤怠管理」アプリ:入室記録と退室記録を各個人の正規の記録として登録しておく
・利用するフィールド(入室時刻)(退室時刻)(氏名)(年月日)(IDm)

やりたいこと
「勤怠管理」アプリ内に作成したボタンを操作すれば以下の動作が行われる

・前日に「入退出記録」に記録されたレコードを対象とする
・「入退出記録」記録されたレコードの(IDm)の種類数だけ「登降園記録」にレコードを作成する、各フィールドには、
※矢印は各アプリか参照してくるフィールド元とフィールド先になります
「入退室記録」(一番早い入室時刻)→「勤怠管理」(入室時刻)
「入退室記録」(一番遅い退室時刻)→「勤怠管理」(退室時刻)
※同一人物(IDm)が一日のうちに複数回記録されていた場合(入室時刻)は一番早い記録と(退室時刻)は一番遅い記録を取り扱う
「名簿」(氏名)→「勤怠管理」(氏名)
「入退室記録」(年月日)→「勤怠管理」(年月日)
「名簿」(IDm)→「勤怠管理」(IDm)
となるように考えています。

 

(function() {
“use strict”;
kintone.events.on(‘app.record.index.show’, function(event) {
if (document.getElementById(‘my_index_button’) !== null) {
return;
}

var myIndexButton = document.createElement(‘button’);
myIndexButton.id = ‘my_index_button’;
myIndexButton.innerHTML = ‘入退出記録作成’;

// ボタンクリック時の処理
myIndexButton.onclick = function() {
var result = window.confirm(‘入退出記録を作成します’);

if ( result ) {
window.alert(‘入退出記録が作成されました’);

}
else {
window.alert(‘入退出記録の作成をキャンセルします’);

}
};

kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);
});
})();

 

現在上記のコードで止まっています

cybozu developer networkでチュートリアルを読みながら作成してきましたが、事前知識がないので作業が全く進まず理解も追いつかない状態です。
よろしければ若輩者の私にアドバイスの方をして頂ければ幸いです。

よろしくお願いいたします。

shitsucyou さん

やりたいことを1つずつ考えてみます。

①前日に「入退出記録」に記録されたレコードを対象とする
⇒「入退出記録」アプリのレコードを取得する(一括?)
おそらくレコードの一括取得の記事が参考になると思います。
↑の記事が理解できない場合、基本の第10回 kintone REST APIを利用したレコード取得を参考にしてください。

②「入退出記録」記録されたレコードの(IDm)の種類数だけ「登降園記録」にレコードを作成する。
⇒「登降園記録」は「勤怠管理」アプリでしょうか?
①で取得したレコードをもとに、「勤怠管理」アプリ用にレコードを成型して、POST(登録)してあげる必要があります。

さらに、②は以下の注意があるので、もっと細かく手順をわける必要があります。

※矢印は各アプリか参照してくるフィールド元とフィールド先になります
「入退室記録」(一番早い入室時刻)→「勤怠管理」(入室時刻)
「入退室記録」(一番遅い退室時刻)→「勤怠管理」(退室時刻)
※同一人物(IDm)が一日のうちに複数回記録されていた場合(入室時刻)は一番早い記録と(退室時刻)は一番遅い記録を取り扱う
「名簿」(氏名)→「勤怠管理」(氏名)
「入退室記録」(年月日)→「勤怠管理」(年月日)
「名簿」(IDm)→「勤怠管理」(IDm)

②-1

①のレコードを同一人物ごとに分割する
参考になる記事は↓でしょうか。ここらへんはJavaScriptのオブジェクトループ方法などの理解が必要です。
はじめようJavaScript第8回 JavaScriptの基本機能 おさらい if文とfor文の組み合わせ・2重for

②-2

②-1で分割したレコードの(一番早い入室時刻)、(一番遅い退室時刻)を取得して、
「勤怠管理」アプリ用にレコードを成型する
②-1と同じように、オブジェクトのループ方法やif文の使い方の理解が必要です。
また、POSTするには以下の仕様に合わせて成型する必要があります。

https://developer.cybozu.io/hc/ja/articles/202166160#step2

②-3

②-2で成型したレコードを登録する
これは第9回 kintone REST APIを利用したレコード追加が参考になると思います。

HANSA さん

つたない私の文章から意図を読み取りアドバイスの方をしていただき大変ありがとうございます。

細かく解説していただいたところ申し訳ないのですが、プログラミングの知識がないためリンク先の内容を読んでみても理解できずコードを書くことができなかった為に別の手段を探してみようと思います。

 

本当にありがとうございました。