既存レコードから他アプリへレコードをコピーしたり、テーブル行をレコードに変換するプラグインです。
レコード更新時の自動処理、ボタンクリックによる一括操作が可能です。
乱数を使ってまとめてテストレコードを生成できますので、テスト作業が楽になるかも。
ただし、設定をミスるとデータが丸ごと消えますので注意しましょう。
Ver.27
・プラグイン設定画面のデザイン変更対応
・FSET 関数に、テーブル内項目を指定できる機能を追加
・FSET_TADD 関数追加(テーブルに指定した行を追加)
・DIC, DIC_ITEM, DIC_DEL, DIC_EXISTS, DIC_KEYS, DIC_COUNT, DIC_ASSIGN 関数追加
データ生成プラグインの応用例
テーブル行を他アプリのレコードに変換
- 案件管理アプリの活動履歴テーブルを、活動詳細アプリのレコードに変換する例です。
- 編集画面で、案件担当者名を変更すると、活動詳細アプリにも反映されます。
- 一覧画面での一括データ生成
活動詳細アプリで活動件数集計グラフ
kintone 標準のグラフでは、テーブル行内の件数集計が苦手です。
テーブル行をレコード変換することにより、集計が可能になります。
プラグインの機能
- 既存レコードから他アプリへレコードをコピー
- テーブル行をレコードに変換
- レコード更新時の自動処理
- ボタンクリックによる一括操作
- ボタン操作の権限設定
- 複数アプリ(最大10個)へのデータ生成
※ 動作環境は、PCとスマホです。
rex0220 storesで、販売中です。
アプリの準備
プラグインの設定項目が多くわかりにくいので、アプリ作成から順番に作成してみます。
案件管理アプリの作成
- kintone アプリストアで、「案件管理」アプリを選択して作成します。
- フィールドコードをラベルに合わせて、設定します。
これをしないと、プラグインの設定をみても分からない状態になりますので、必ず設定しましょう。
※フィールドコード設定プラグインで変更した例
活動詳細アプリの作成
- 案件管理アプリを流用して、活動詳細アプリを作成します。
- テーブル内項目は、テーブルではない普通の項目に作り直します。
フィールドコードは、テーブル内項目と合わせます。 - 他の項目もフィールドコードを合わせておくとプラグインの設定が簡単になります。
- 「識別ID」項目を文字列で追加します。
プラグインでレコード更新する際のキー項目として使われます。 - 必須項目などの制約がある項目は、可能ならば制約を外しておきます。
- 元アプリで制約解除などを行うと、コピー先のアプリも合わせて変更する必要があります。
- ルックアップ項目は、文字列項目に変更しましょう。
APIで追加・更新時はルックアップ元のデータが無くなっているとエラーになります。
データ生成プラグインの設定
案件管理アプリにデータ生成プラグインを設定します。
- ボタン別設定: ボタン名を指定します。
- 一覧別設定: 一括データ生成ボタンを表示する一覧を指定します。
- 権限設定: ボタンを表示するユーザー・組織・グループを指定します。
- 実行条件・後処理
- 実行条件:データ生成を行う条件を指定します。
- 詳細画面では、実行条件が false であれば、ボタンを表示しません。
- 編集画面・一覧画面では、各レコード単位に実行条件を計算し、データ生成を行うか判定します。
- 後処理:データ生成後に、自レコードで更新する項目と計算式を指定します。
- 「後処理で項目を"完了"を指定し、実行条件で"完了"以外でデータ生成処理を行う」などの制御で利用できます。
- 実行条件:データ生成を行う条件を指定します。
- 自動: レコード更新時に自動で、対象アプリのレコードを生成します。
- ボタン: 詳細画面・一覧画面に表示される「データ生成」ボタンの処理対象になります。
- 処理名: なんの処理か忘れないようにメモしておきましょう。
- アプリ: 対象アプリを選択します。
- 対象アプリ条件: キー項目となる項目と条件を指定します。
- ループ: 1レコードで何回処理するかループ回数を指定します。(計算式指定可能)
- テーブル: テーブル行をレコード変換する場合、選択します。
- 設定項目: 対象アプリに設定する項目と計算式を設定します。
生成するレコード数
元アプリの1レコードに対して、下記の出力レコード数になります。
出力レコード数=ループ数*テーブル行数*ループ配列数
例 | ループ数 | テーブル行数 | ループ配列数 | 出力レコード数 |
---|---|---|---|---|
テーブルなし | 1 | 1 | 1 | 1 |
テーブルあり | 1 | 10 | 1 | 10 |
ループ配列あり | 1 | 1 | 3 | 3 |
全てあり | 10 | 10 | 3 | 300 |
更に一覧画面で、一括生成すると
- 一覧、ループ数あり、テーブルあり、ループ配列あり
- 100レコード*10(ループ数)*10(テーブル行数)*3(ループ配列数)=30,000レコード
対象アプリ条件
キー項目となる項目と条件を指定します。
※キー項目に過不足があると、対象アプリに反映されなかったり、レコードが丸ごと削除されたりしますので、必ず設定内容をテストして問題ないか確認してください。
設定項目の詳細
ループ配列: 配列でループを指定します。
Ver.11 以降、数値指定可能
- ARRAY("ABC","XYZ")
- ARRAY("予算","実績")
- ARRAY(チェックボックス)
- SEL_CODE(ユーザー選択,"ARRAY")
- 10
- 数値
- "A"
- ARRAY("A") と同等
出力条件: 計算式の結果で、レコード出力するか制御できます。
- IF(数値>=1000,1) : 数値が1000以上の場合に、レコード出力します。
- SWITCH($val,"予算",予算,"実績",実績,0)>0 :予算・実績処理時に数値が1以上
- IFS(IN($val,"sample1"),数値1,IN($val,"sample2"),数値2,0)>0
出力項目の計算式
対象アプリの項目ごとに、計算式を設定します。
計算式プラグインの計算式と同様の関数が利用できます。
- 変数として、下記が利用できます。
- $lno: ループカウンター
- $rno: テーブルの行カウンター
- $val: ループ配列のループ値
- 乱数関連の関数: データ作成時に乱数を利用できます。
-
RAND 関数: 0 ~ 1 の範囲で少数の乱数
- RAND()
-
RANDBETWEEN 関数: 指定した範囲の整数の乱数
- RANDBETWEEN(1,10): 1 ~ 10 の乱数
-
自動設定
設定項目のダイアログで「自動設定」ボタンをクリックすると、フィールドコードとタイプの一致する項目に、自動で計算式を設定します。
有効な計算式を設定済みの項目は、自動設定の対象外です。
- 識別IDの設定
対象項目の「識別ID」をチェックすると、レコード更新時にプラグインが識別IDをセットします。
テーブル項目の設定
編集ボタンをクリックして、テーブル内項目の計算式を指定します。
- 変数として、下記が利用できます。
- $lno: ループカウンター
- $rno: テーブルの行カウンター
- $val: ループ配列のループ値
- $trno: From テーブルの行カウンター
- $tval: ループ配列のループ値
関連情報
注意事項
- 既に、JavaScript によるカスタマイズを行っているアプリの場合、処理が競合して、エラーになる場合があります。その場合は、該当するアプリでプラグインの使用を中止してください。