Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

kintoneに入門した学習メモ

基本のき

  • RDB感覚でいえば、1テーブル=1アプリ
    • RDBと違うのは、子テーブルをN件持つことが可能なので、親子関係を含めて1つのアプリになる
    • 注文を親に持つ注文明細並びに発注明細などを持てる。
  • 入力値に対する関数が少ない
    • SUM, YEN, DATE_FORMAT, IFぐらいしかない
  • 関連するレコードは全部持ってこれる
    • 得意先を親にして、見積明細、受注明細、契約明細、請求明細など、全部持ってこれて、結合条件やソート条件も指定可能。
  • 画面の融通は効かない
    • 例えばボタンだけを置いて他のアプリに画面遷移する、みたいなのができない
    • フォームの画面ではそもそも任意のボタンはおけない
    • 画面遷移はkintoneの仕組みを使って実現するしか無い
  • 親子関係の表現は楽勝だが、孫まではさすがにむり。
  • アプリ間でフィールドのデータコピーが出来る
    • 見積と見積明細をコピーして、契約と契約明細に値をコピーできる
    • なぜか、ルックアップしたやつは引き直しをしないとだめ
  • ルックアップ先の検索条件、原則あいまい検索になってるの助かる
  • ルックアップは値のコピーであって参照のコピーじゃない
    • なので、参照元が100→101に変わっても、追従して変更されない。
    • 得意先コードや品番のような、JOINするキーに該当する値の変更は出来ないようにマスタ管理で縛る。

プロセス管理

複数の人にお伺いを立てることできるし、条件で分岐することも出来る

  • 基本は「ステータス」を作ること
    • 作成中、上長決裁、部長決裁、社長決裁、承認みたいな感じで。
    • ステータスが変わる条件によって、誰にお伺いを立てるかを設定する
    • 金額が1万未満の場合、作成中→即承認。
    • 1万〜5万は、作成中→上長決裁→承認
  • 決裁担当者は複数人選択できるし、自分で選ぶことも出来る
    • 誰か1人でも承認すればOKもあれば、全員承認しないと駄目、も設定できる
    • 選べる作業者の自動設定は無理っぽい。
    • 自分とメンターみたいな関係があった場合、自分のメンターを自動で引っ張るのは無理。

アクセス制限

  • レコード単位及びフィールド単位で制限ができる
    • 他の担当者のレコードは一切見せたらあかんで、みたいなやつ
    • フィールド単位ってことは、金額がN円で担当者のグループがこれで..みたいなのも出来る
    • ディシジョンテーブルに近道なし。頑張りましょう。

通知

  • この3パターンで通知を飛ばせる
    • アプリのデータが操作されたとき
    • アプリのデータが特定の条件を満たしたとき
    • アプリの日時項目の日時が過ぎたとき

標準では出来ないことも非常に多い

イベントハンドリング
  • プルダウン変わったら連動して子供をかえる
  • フィールドの値イベントのフック
    • 計算するフィールドの場合はchangeイベントが走る
    • 計算しないフィールドの場合は、自分でonchangeでフックして頑張る
  • 明細グループの中で一意にする
    • 注文明細で品番がかぶったらエラーにしたいとか
  • ルックアップしたレコードをN件挿入する
    • 商品を10個いっぺんサブテーブルに登録ができない
  • ルックアップのオートコンプリート(いうほど使わない)
  • アプリ間連携
    • 注文入れたら商品の在庫減らす的な
    • 注文入れたら顧客の与信額減らす的な
    • 整合性を取るために、リビジョンを利用して楽観的ロックを行う
      • データ取得時とデータ更新時でリビジョン違ったら例外発生でやり直し。
  • 自動採番
    • JSで自分でMAX値を取りに行って++せなあかん
  • フィールドの表示・非表示
    • JSでコードを書く。
  • 帳票出力(開発)
  • ログインユーザーの取得
    • 自分の名前をユーザーをルックアップした時に初期値に入れる、が出来ない
  • お知らせの権限設定
    • ポータルのお知らせは権限設定ができない。スペース内のスレッドでやるしかないみたい。
  • 関連レコードの集計
  • 関連レコードをcsvに出す

入力チェックが弱い

標準で可能なチェックはこれぐらい。弱い。

  • ユニーク制約
  • 必須
  • 文字数制限
  • 数値の型チェック
    • 数値以外が入ったらエラー
    • 最小値と最大値の範囲外ならエラー

見たところ、こういうのは全部頑張るしか無い。プラグインを活用するようだ。

  • 大小のチェック
    • 開始日と終了日で、終了日<開始日ならエラー
  • フォーマットのチェック
    • メアドとURLしかないらしい
  • 相関チェック
    • Aにチェックが入っているなら、項目Bは絶対に入力して貰う必要がある
  • かなやカナ、半角全角のチェック

割り切って使えってみんな言うけど、ミスを防ぐために割り切れない部分が多すぎるんじゃね。

こら、kintone専業が少ないわけだ。こんな所に振り回されるぐらいならって思うんだろうな。