キンコミ kintone user community

みんなの投稿

2024/01/24 11:28

「一覧」でのレコード絞り込みについて(関連レコード)

「一覧」でのレコード絞り込みについてアイディアを頂きたく、投稿させていただきます。

<アプリの状況>
Aアプリ:文書管理アプリ
 「起案方法」(ラジオボタンで「電子」か「紙」か選択)というフィールドがあります。
 また、ルックアップでBアプリのフィールド「ファイル番号」(文字列:重複不可)を登録します。
 ※その他、件名や諸々のフィールドがありますが割愛

Bアプリ:ファイル管理アプリ
 「ファイル番号」(文字列:重複不可)というフィールドがあります。
 また、関連レコード一覧で、自分のファイル番号が登録されているAアプリのレコードを表示しています。
 対応関係としては、1つのBアプリのレコードに対して、複数のAアプリのレコードが関連付きます。(1つも関連付かないこともある)

 あるBレコードの関連レコード一覧をみると、
  ・件名〇〇、起案方法:電子
  ・件名△△、起案方法:紙
  ・件名□□、起案方法:電子
  ・件名◇◇、起案方法:電子
 などと表示されています。



<やりたいこと その1>
Bアプリで以下のような3つの「一覧」を作成したいです。
・関連レコードに「起案方法=電子」の文書のみが表示されているレコードだけを表示(上の例のレコードは表示されない)
・関連レコードに「起案方法=紙」の文書のみが表示されているレコードだけを表示(上の例のレコードは表示されない)
・関連レコードに「起案方法=電子」と「起案方法=紙」の両方の文書が表示されているレコードだけを表示(上の例のレコードが表示される)

<やりたいこと その2>
Bアプリに登録されているレコードのうち、「1件も関連レコードに表示がないレコード」を抽出したいです。



サポートに聞いてみたところ、どちらも「一覧」の標準的な仕様では難しいようなのですが、何かこれを実現するアイディアはあるでしょうか?

JavaScriptカスタマイズは使用可能、プラグインも使用可能ですが予算次第(無料のものは使用可能)、というところです。
また、そこまで頻繁に表示(絞り込み)をしたいわけではないので、最悪、ファイル書き出し機能を使って、エクセルなどで絞り込み・抽出する方法でも構いません。
やりたいこと2については、「すべてのレコード」と「1件以上関連レコードに表示のあるレコード」をそれぞれ書き出し、エクセルで重複をチェックして抽出することはできそうなのですが・・・

アイディアいただけますと幸いです。

5件のコメント (新着順)
つだ
2024/01/24 17:16

きったんさん、かなさん、怪盗KIDさん、コメントありがとうございます!

かなさん、情報ありがとうございます。
キンコミやGoogle検索で調べてもなかなかいい情報を探せなかったのですが、developer's networkで検索したら使えそうなカスタマイズ事例がありました!(deve~で検索するということが頭から抜けておりました・・・)
ただ、REST APIを使わないと情報が取得できなさそうで、AアプリもBアプリもレコード数がかなり多いため、制限にひっかかりそうな気がします・・・

きったんさん、怪盗KIDさん、アイディアありがとうございます!
その方法で実現できそうですね!良いアイディアありがとうございます!
ただ、お二人からのアイディアを参考に色々試していたら、もっと簡単にデータを作る方法を思いついたので、そちらで実現したいと思います。
その方法ですが、
アプリAの方で、グラフのクロス集計表を使って、
大項目=起案方法
中項目=ファイル番号
集計方法=レコード数
という条件にすると、いい感じの表が作成されました!

この表をそのまま手動で(ブラウザから)エクセルにコピペして、
少し細工すると
「電子の文書のみが登録されているBアプリのレコード」
「紙の文書のみが登録されているBアプリのレコード」
「電子も紙も両方の文書が登録されているBアプリのレコード」
を一覧表にすることができました!

せっかくの頂いたアイディアや情報を活かしていませんが、
みなさまからの情報でひらめきました。
改めてありがとうございます!
今後ともよろしくお願いいたします!

suji バッジ画像
2024/01/24 16:50

こんにちは。
きったんさんの投稿の補足です。

TISさんのアプリ間レコード更新プラグイン もしくは
条件分岐処理プラグイン
を利用すればその2は可能だと考えます。

処理としてはこんな感じです
①Aアプリにフィールド追加(仮にフィールド名「フラグ」) 
②Bアプリにフィールド追加(仮にフィールド名「フラグ」)し、初期値を「1」にする
③Bアプリにフィールド追加(仮にフィールド名「Aアプリレコード番号」)
④Bアプリのルックアップ設定でAアプリのレコード番号(もしくはユニークな管理番号等)も
 一緒に呼び出してフィールド「Aアプリレコード番号」に保存する設定をする
⑤プラグイン設定、レコード保存時にBアプリ「フラグ」のデータをAアプリ「フラグ」に連携させる
⑥Aアプリの一覧の絞り込み条件で「フラグ」が空のものを設定する

なお、やりたいことその1ですが、
TISさんの 複数レコードサブテーブル化プラグイン をBアプリに設定、
定期的に更新すればいけそうかな…という感じです。
Boost!Actionなら自動処理できるかな…(有料ですが)


つだ
2024/01/24 17:43

sujiさん、コメントありがとうございます!
※きったんさん、かなさん、怪盗KIDさんへの回答を作成している途中に投稿いただいたので見落としていました…

AアプリのレコードとBアプリのレコードはN:1の関係になるので、
Bアプリに「Aアプリレコード番号」のフィールドを作っても、どのレコードの番号を登録したらよいのか特定ができないのです。

ただ、ご紹介いただいたTISさんのアプリ間レコード更新プラグインを使えば、Aレコードを更新した際に、Bレコードの何かのフラグを更新して、そのフラグをキーにして絞り込むことはできそうな気がします!
情報・アイディアありがとうございます!




怪盗KID
製造業
2024/01/24 13:27

はじめまして、こんにちわ~。
無料でできないかの案です。

https://www.tis2010.jp/referencedtable/
アプリBの更新が必要になりますが…。

有料だと下記のプラグインとかですかね。
https://rex0220.stores.jp/items/5b52a2285f786618e9002e44

やり方はきったん様がおっしゃているような流れかなと。
試してないですが、ご参考までに。

かな
建設業
2024/01/24 12:42

JSカスタマイズが可能ということであれば、フィールドvalueを取得して、switch出来ると思いますよ〜。
関連フィールドのvalueが取得出来たかは微妙ですが、ルックアップのBアプリのファイル番号を直接参照しに行けば、一覧カスタマイズで行けると思います。
(詳しくはcybozu developer networkで調べてみてください😊)
【API一覧】
https://cybozu.dev/ja/kintone/docs/js-api/#event

関連レコード一覧の情報で一覧画面を絞り込むのは思い通りに行かないでしょうね。。。

例えば、
・何かしらのプラグインや連携サービスを使って関連レコード一覧を集計
・集計結果をBアプリのフィールドに保存(「電子のみ」「紙のみ」「両方」などの値を入れたりなど)
・そのフィールドを一覧画面の絞り込み条件にする

イメージできるのはカスタマインやkrewData、データコレクトなどを使うことですかね。
「無料」のプラグインはすいません、わかりません。