ケアマネの訪問依頼はこちら、あなたの会社・団体に訪問します!

気が付いたら夕方、kintoneと戯れ、ユーザー名をテキスト形式+年月付与で関連レコードの自動集計を動的に行う。そして全銀データに出力するにはプラグイン。なんでも出来そうなkintone、実は・・No5838

おはようほしがきおじさん

昨日は丸1日、kintoneと戯れてました

昨日は丸1日、kintoneと戯れてました。

戯れてた、
といってもシステムを作っていたので、
遊んでいたわけではありません。

外注で受けている、
作業時間の登録・集計・チェックおよび、、、、

月で締めて、
振込まで出来るように、
あわよくば全銀データフォーマットまで作成して、

振込の一歩手前まで行えるよう、レコード作成の準備までおこなっていました。

あと少し、
まで到達できました。

全銀フォーマットはこちらのプラグインを使うことで、
出力することが出来ます。

これをすることで、
業務報告後の振込などが出来るようになります。

今なんと、全体で6時間かかっているそうですから、
なんとしてでも短縮化したいものです。

ユーザー名と年月で集計したい

弊社であれば、ユーザー名と出勤簿が必ず1対1ではありません。
その理由は週数回しか来られないパートさんまで、kintoneのアカウントを発行する必要がないからです。

しかしながら、
このシステムではすべてのユーザがkintoneアカウントを発行出来ています。

これを前提すると、
自分がログインしたときに、自分の出勤簿や、
年月で締めたレコードを集計することが出来るのですが、、、、

ここでまた問題です。

集計方法はこちら。

を使おうとしていたのですが、、、、
ログインユーザ―名のテキストを文字列(1列)フィールドにセットできません。

計算フィールドにも、
文字列(1列)フィールドでも、
ログインしたユーザーの名前をテキスト形式で自動で取得できません。

ので、
結局JavaScriptで書くことにしました。

もう最近はそれすらも、Geminiで書かせております。

const record = event.record;
const val1 = record.ログインユーザ.value[0].name;
const val2 = record.種別.value;

record.ログインユーザ_自動.value = val1;

const dateValue = new Date(record.日付.value);
const year = dateValue.getFullYear();
// getMonth() returns 0-11, so add 1 for actual month
const month = (dateValue.getMonth() + 1).toString().padStart(2, ‘0’);
record.ログインユーザ・年月.value = val1 + `${year}${month}` + val2; // Set the yyyymm string to the target field

画面上の「ログインユーザ」フィールドと、種別フィールドを取得して、年月を付与する。
という内容なんですが、、、

ログインユーザ_自動フィールドに「はやし」
ログインユーザ・年月フィールドに「はやし202506種別1」

と自動で設定するようにします。

年月の集計フィールドでも同様に、
JavaScriptをセットすることで、

集計側アプリ.ログインユーザ・年月 = データ側アプリ.ログインユーザ・年月

をキーに関連レコードを取得し、
その集計した値を取得するようにすれば、、、

出来るようになります。

kintoneは何でも出来る!と思わない

kintoneは素晴らしいシステムで、
自由度が高すぎます。

ゆえに、何でも出来る!
と思いますが、私はそれは出来ないときがあると肝に銘じています。

例えば、

画面上のラジオボタンを文字列に変換する場合は

フィールド1 & ラジオボタン & DATE_FORMAT(…)

なんてやれば出来るのですが、
これがチェックボックスの場合は配列データで来るために、

フィールド1 & IF(CONTAINS(チェック,”aa”), “aa”, IF(CONTAINS(チェック,”bb”),”bb…) & DATE_FORMAT(…)

と、画面上のチェックボックスに
“aa”が含まれている場合は “aa”を返すというように、チェックボックスの内容をハードコードすることになるので、プラグインなどを使わない場合はなかなか難義な状態です。

これが数字の場合だと、

ラジオボタン
0、1000、2000,3000、4000

の値をそのまま数字に変換してハードコードせずに、
ラジオボタンが1000の場合は、数字として1000を加算する、

ときは

IF(ラジオボタン=”1000”,1000, IF(ラジオボタン=”2000”,2000,…))

とハードコードする必要があり、そのまま数値として扱えないので、
プラグインを使う必要がある、というわけです。

なので今回の場合は、特殊な「ユーザー」フィールドでしたので、
難義でした。

可変的に関連レコードを変えられる

そのお陰で、、、、

(1)作業年月を指定すると、
(2)関連レコードが自動的に変わる
(3)報酬金額が自動集計
(4)金額を手入力、加算率を設定、調整を入力
(5)振込金額が確定したら、「全銀データ作成」ボタンを押すと、CSVが出力される

というものです。

関連レコードの集計値を、別のフィールドにコピーするには、
Attazoo+のプラグインを別途購入する必要があるので、今のところはお金をかけないでいきます。

しかも加算率、7.5%といったところはハードコードなので

IF(加算率=”7.5%”,7.5%, IF(加算率=”10%”,10%,…))

といった内容にしています。

1レコードのキーが、ユーザー名となっているため、
前述のJavaScriptが生きてくる、というわけです。

既存システムからリプレイスの場合は

それを既存システムがある場合、
それをkintoneにリプレイスする場合は、、、、

既存システムの数値と
kintone側の数値が、
まったくもって一致していないといけません。

その整合性のチェックに手間取っていました。
それすらも画面上をチェックするんじゃなく、
ExcelでDiffとってチェックするなど、ツールにチェックさせます。

単にkintone開発のみならず、

・既存システムのデータ移行
・数値のチェック
・集計結果のチェック

といったことが、必要になってくる、
というわけです。

気が付いたら夕方になっていました。。。。
1日がかりでしたね汗。

そして飲んでいたら気が付いたら月曜の朝になっていた(笑)
というわけです。

そんな1週間がまたやってきます。
今週もよろしくお願いいたします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
HAYASHI
S49/12/9福井市生まれ。 地元円山小学校区で、有料老人ホームあんしん村とあんのんデイサービスをH18/8から運営する。(カフェはH31/2閉店しデイへ) 富山大学経済学部から東京でエンジニアを7年経験し、帰福して起業。 30歳代で2回の相続体験と、有料老人ホームでの経験から、相続や終活で困らないために終活ケアマネージャとして活動中。 保有資格は介護福祉士、主任ケアマネ、初級シスアド、普通二種免許のため介護タクシーも運営している。 火星人+、ペガサスの奇人変人タイプ(笑)。 特技:マダムキラー、あんしん村の入居者さんから毎日告白されている(笑)