みんなの投稿

◆2重ルックアップ処理について◆


訪問ヘルパーさんの時給計算をアプリで行っていますが、

ルックアップ処理が1アプリで2重になっている部分があり、なんとか簡素化できないかと思っています。


3の項目の、一度CSVに出力して、ルックアップ用フィールドにコピーして、再取り込みのルックアップ、の部分を、簡素化できる方法ってあったりしますか?


krewdata(あまり使いこなせていない)があるので、それで何とかできないかと思っていますがどうでしょうか。

または、こうしたルックアップのパターン、他のプラグインでも実装可能など情報あれば頂けるとありがたいです。


●業務フロー


1、「給与計算アプリ」で基本給計算(サービスごとに単価が違う)

↓

2、CSV出力し、「処遇改善手当計算アプリ」に取り込み

⇒取り込み時に職員情報をルックアップし、各レコードに対し「サービスー等級コード」を作成。

(ルックアップ1回目)

↓

3、手当計算CSVを出力して、「サービスー等級コード」を手当マスタ参照用のルックアップフィールドにコピー(手動)

↓

4、手当計算アプリに再度CSV取り込み。手当マスタから、手当をルックアップ。

(ルックアップ2回目)


マスタにないコードがあったりすると取り込めないデータがエラーで発生することがある。

2件のコメント (新着順)

CSVが何度も出てくる不思議なフローだとは思っていましたが、
Seasonさんコメントへの返信をみてご状況を理解しました。
(別件となりますが、これはこれで、カスタマイズの功罪として貴重なLTネタになりますね。
 是非いろいろお聞きしたいです)

さて、本題に戻りますが、フローを拝見する限り、

3、手当計算CSVを出力して、「サービスー等級コード」を手当マスタ参照用のルックアップフィールドにコピー(手動)

↓

4、手当計算アプリに再度CSV取り込み。手当マスタから、手当をルックアップ。

(ルックアップ2回目)

でやりたいことは、「サービスー等級コード」(計算フィールドか文字列(1行)フィールドで
作成と推察します)をルックアップフィールドにコピーすること

と認識しました。(違っていたらすみません)

これだけであれば、「サービスー等級コード」のフィールドタイプにもよるかと思いますが、
そのままルックアップフィールドにコピーするプラグインを探すか、JSでkintone上で
一括処理ができるのではないでしょうか。


もりおすさん コメントありがとうございます。

普通に見たら謎のフローですよね。事情がありまして、こんな運用になっています。。
カスタマイズの功罪!まさにそうですね。こういうのがLTネタに使えるんですね。また機会があればLTのネタにしますね。

本題について、まさにその通りです。
文字列1行(計算式)⇒ルックアップフィールドにコピーができればと思っています。
シンプルにルックアップフィールドにコピーできるプラグインを探してみます。(文字列 ⇒ ルックアップにコピー ⇒ 取得までいけますかね?取得はJSで処理か?)

この「給与計算アプリ」は4つのアプリからデータを参照し、計算式が組まれており、かなり複雑な構造になっています。プログラムに関わる部分を安易に修正すると、どこに影響が出るかわからない、ちょっと危険なアプリですw
基本の計算式はマクロのように壊れることがないので安心。マスタ修正すれば時給変更も容易。大量のデータ計算も安定。とメリットは大きいですが、
今回のように追加事項や修正点もやはり出てくるので、カスタマイズの良し悪しがでますね。

JSをカスタマインに置き換えたら、管理しやすいという声も聞きますが、計算式なども置き換えることができるのか。。根本的な修正よりも、他の運用部分でカバーというのが現状の正解になっています。

JSの数を見るだけで、かなり複雑な構造になっていることが伺えますね。。。お疲れ様です🙇‍♂️

既存の複雑な給与計算アプリと運用に危険性は感じていらっしゃるけど、変更による混乱やリスクを避けるため、アプリ自体には極力触らず運用でなんとかしたいとのご意向と理解しました。

私はKrewDataは使っていないのでよくわからないのですが、以下URLを見る限り、
https://blog-krew.mescius.jp/entry/20201221/krewdata/join/
2回目のルックアップをせずとも、KrewDataによって手当計算マスタと手当マスタのアプリ結合でいけるんじゃないかと思いました。(全然ちがっていたらすみません)



プラグインかJSを使うなら、「サービスー等級コード」生成が、2のCSV取り込み時に計算されていることから、自分で一括処理ボタンを押してルックアップフィールドにコピーするタイプのプラグインかJSが必要になるのではないかと思いました。

私の知る限りでは、一般的なプラグインはCSV取り込みをトリガーとして発火しないので
(私が使っているのが無料のものばかりだからかもしれませんが)、別途、一覧画面から
一括処理を行うとよいのではないかと思います。

なお、ルックアップフィールドへコピーする際、入力されるデータが一意であれば、自動的にルックアップ取得される動作だったと思います。(違っていたらすみません)

返信ありがとうございます。

・ルックアップフィールドへコピーする際、入力されるデータが一意であれば、自動的にルックアップ取得される動作だったと思います。
⇒調べてみたら、マスタのキー項目を、値の重複を禁止にしていればルックアップ自動で取得できるようでした!(勉強になります)

条件分岐処理プラグインで、ルックアップフィールドにコピー&値の重複を禁止で自動取得、でいけるかも、と思ったのですが、やはりCSV取り込みをトリガーとしては、プラグインは動かないようでした(また一つ勉強になりました。)

最終的に、
ルックアップのマスタのキーの値の重複を禁止にしておいて、KrewDataでフィールドのコピーを実施⇒ルックアップ自動取得。の流れが一番いい感じにいけそうな気がしています😌
いろいろと情報をありがとうございます🙏

どんな方法で攻略するのがベストか、考えていくのがゲームみたいでおもしろいですね。kintoneまだまだ奥が深いです。

どんな方法で攻略するのがベストか、考えていくのがゲームみたいでおもしろいですね。kintoneまだまだ奥が深いです。

そうですね。ここがおもしろいところですよね。

こうやりました!というのをアウトプットすると、もっとよいアイディアを出してくれる人がいたりして、とても勉強になりますよね。

追伸です。

先日の
マスタのキーの値の重複禁止
⇒KrewDataでフィールドのコピー
⇒ルックアップ自動取得
でばっちり処理できました!(処理時間:5分)

CSV書き出し⇒手作業でコピー⇒再取り込みのフローが自動化され、
約15~20分の効率化が実現できました😊

うれしいご共有ありがとうございます!

すごい改善効果ですね。さすがです!

こんにちは。
複雑な業務フローをシステム対応でカバーするより、運用面の見直しを検討されてはどうでしょう。

2回目のルックアップエラーは「手当マスタ」側に該当する「サービス-等級コード」が存在しない場合に発生している様ですので、まずはエラーの発生自体を事前に防ぐ運用・設定の仕組みの導入を検討されてはいかがでしょうか。

(1)登録時の自動チェック・ルックアップ選択の強制
「職員情報」や「サービス」「等級」を登録・変更する段階で、「手当マスタ」に存在するコードしか選べない構成やルールに変更する。

(2)マスタ登録のトリガー化
サービスや新しい等級が発生した場合、給与計算を回す前に「手当マスタ」への登録を必須とするチェックリストを運用に組み込む。

サービスや新しい等級が発生する場合の業務は、「新商品の商品マスタを登録する業務フロー」の様に、事前にマスタ側の情報を整備するという運用ルールが良いと思います。

期待されていた回答と方向性が違ってましたら、スミマセン。


Season さん コメントありがとうございます。

仰るとおりですね。複雑なシステムを組むよりも、まずは運用フローの見直しが必要ですよね。。
そもそもの、1の給与計算アプリは、伴走パートナーさんに5年前に、プログラムごりごりで組んでもらったアプリで、こちらでの修正ができないアプリになっているのが原因です。。そこが修正できれば1回のルックアップで全て処理できるはずです。

とはいえ、開発当時からこのアプリにはかなり助けられていて、当時のこちらの要望を実現するには、プログラムで組むしかなかったというところもあり。
ですが、何年も使っていると修正や追加事項も出てきていて、そのアプリは修正しない前提で。他の部分でカバーするしかない状態になっていました(俗人化マクロと同じ状態ですよね💦)

アプリの根本的な修正にかかる負担よりも、少し複雑になった運用フローでカバーできてしまうので、現状のような複雑なフローになっています。
プログラムでのカスタムのメリット・デメリットを今になって痛感しています。