別アプリの条件に合うデータを表示する

お世話になっております。

以下のようなアプリを作成したいと思っていますが、どのように実現していいか悩んでいます。お知恵を拝借したく存じます。

 

元データがあるアプリ① (原材料入手先の査察に関する情報を管理するアプリ)

会社名、査察年月日、査察の評価(A〜C)、査察の資料(添付ファイル)、削除フラグ

元データがあるアプリ② (自社製品の原材料とその入手先のテーブル)

製品名、原材料名、会社名、削除フラグ

メインのアプリA

<レコード詳細画面>

製品名:○○

原材料1:名称、会社名、直近の査察年月日、査察の評価

原材料2:名称、会社名、直近の査察年月日、査察の評価

(以下、この製品の原材料の数だけ繰り返す。ただし削除フラグが立っていないデータ)

 

関連レコードを2つ組み合わせたような感じですが、抽出条件が「直近のもの」と特殊なものになっています。

レイアウトにはこだわりません。

さらに別のアプリを作り、「アプリ①に登録したら会社コードをキーにデータを書き換える」などでも構いません。(このアプリが作れれば、関連レコードで持って来られるので楽かもしれませんね)

手作りの資料をkintoneで実現しようとしているため、それにこだわりすぎになっていると思います。よろしくお願いします。

Koichi Ito さん

おもしろそうなので、試してみました。
少し長くなったので、Qiita に投稿しました。
kintone でSQLを使う(その3)

アプリ構成が少し違うかもしれませんが、ご参考になれば。

rex0220さん、ありがとうございます。

小さいアプリを作って動作確認をしました。まさにこのような表を作りたいと思っていました。

 

1点お詫びですが、上記の元データのあるアプリ②の中身が違っていることに気づきました。

元データがあるアプリ② (自社製品の原材料とその入手先のテーブル)

原材料名、会社名、削除フラグ

元データがあるアプリ③(自社製品と原材料のテーブル)

製品名、原材料名

 

SQL文を何とか読み解こうと努力していますが、 a.[製品名] は3つ目のアプリだとc.[製品名]でよいのかどうかなども含めて、まったく頭が付いていけません。

大変申し訳ないのですが、3つのアプリから抽出するコードをお教えいただけないでしょうか。

 

Koichi Ito さん

kintone でSQLを使う(その3) の後半に追加しました。

3本のアプリを読み込んで、SQL で組み立ててあげるだけですので、基本は同じです。

なお、無理に3つの配列を JOIN しなくても、2本の JOIN 結果を配列に作って、さらに JOIN してもkintone で扱うデータ件数であれば処理時間はそんなに変わりません。

 

rex0220さん、素早い回答ありがとうございます。

早速、製品名と原材料名の組み合わせたアプリを作り、JSを組み込んでみました。

残念ながら、表が作成されなかったので途中の値を吐き出してみたところ、obj.rs2がブランクになってしまいました。

( window.confirm(JSON.stringify(obj.rs2)); でダイアログに出してみました。)

その直前のq2は、製品名欄に記載した製品の原材料を持ってきていました。

部品調達情報取得のところで失敗しているのでしょうか。なおフィールド名はコードと同じように、原材料名、会社名にしています。

 

何度もお手間を取らせて申し訳ありません。

 

API がエラーになっていないということですので、単純に抽出条件に合うデータが無いのだと思います。

console.log(‘原材料名’, strNames); で、部品表の原材料名を表示していますので、
調達先アプリに該当するデータがあるか確認してみてください。

なお、わざわざ window.confirm しなくても、ブラウザーのデバッグツールでコンソール出力を見ると表示されていますよ。
chrome だと、ctl+shit+I。 IE だと、F12 です。

 

大変失礼しました!!

原材料コードが間違っていました。-01と-1が混在していました。

 

コンソール出力は初めて知りました。

毎回ブレークポイントを作るようにwindow.confirmで変数を確認していたのがバカみたいです。

 

この点も含めて、今回は大変勉強になりました。

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

たびたびすみません。

もう一つお知恵を借りたい事案が出てきました。

 

自社製品と原材料のテーブルにおいて、以下のようなデータの持ち方をしたときにはどのように変更したら良いのでしょうか。部分一致での抽出はできるのでしょうか。

製品名 原材料名

ロールパン6本入り ロールパン用大袋

ロールパン2本入り ロールパン用小袋

ロールパン6本入り、ロールパン2本入り 小麦粉

ロールパン6本入り、ロールパン2本入り バター

 

前半二つは製品特有の原材料で、後半2つは製品を構成する「半製品」の原材料です。

本来は

ロールパン(1本) 小麦粉

ロールパン(1本) バター

となっているのを、読み替えテーブルをかませて上記のようにしようと思っています。

これにより、ロールパン6本入りの原材料として「ロールパン用大袋、小麦粉、バター」を表示し、それぞれの製造業者・評価を表示させます。

 

後半2つを2行ずつにすれば簡単に解決するのですが、全体の行数が膨大なのに加え、一つの半製品が多数の製品に使われているため、テーブル作りが容易ではないのです。

(マクロを使って流し込むデータを作る、はアプリの運用管理の引き渡しを考えると出来れば避けたいです。ここまでガチガチにコーディングしておいてなんですが。)

よろしくお願いします。

半製品の登録と所要量展開 に追加しました。

半製品と所要量展開は、kintone で扱うのは向かないと思いますが、お試しということで。

・原材料に、半製品を追加します。
・半製品の原材料を登録します。

処理としては、半製品の原材料を求める処理を追加します。
半製品の階層が多い場合は、半製品の原材料を求める処理を繰り返します。