新規投稿
フォローする

カスタム関連レコードプラグイン (絞り込み条件に自アプリのレコード値利用可)

kintoneの関連レコードの「さらに絞り込む条件」では、自アプリのレコード値を利用できません。 それを解消する、関連レコード機能チックなプラグインを作成しました。

プラグインファイル

下記からダウンロードしてください。
https://github.com/Atsushi-Eda/custom-reference-table/raw/master/plugin.zip

利用例

購入履歴アプリに、カスタム関連レコードプラグインを設置します。 キャンペーンアプリから、購入日が期間内となるキャンペーンを取得します。 表示は、レコード詳細画面の指定したスペースフィールド内に行います。

プラグイン設定

space

  • カスタム関連レコードを表示するスペースフィールドの要素ID。
  • グループフィールド内のスペースフィールドは選択できません。
  • レコード追加画面、レコード編集画面では表示しません。

app

  • 参照するアプリのID。(半角数字)
  • アプリIDを入力後、searchボタンを押す。

conditions

  • レコードの絞り込み条件式。
  • 複数の場合は、andで評価。

conditions[].targetField

  • 絞り込み条件式に用いる、参照するアプリ内のフィールド名。
  • 以下のフィールドタイプのフィールドは選択できません。
    「カテゴリー」、「サブテーブル内のフィールド」、「関連レコード内のフィールド」

conditions[].operator

  • 絞り込み条件式に用いる、演算子。
  • conditions[].targetFieldに合わせて選択肢が変わります。

conditions[].selfField

  • 絞り込み条件式に用いる、自アプリ内のフィールド名。
  • 以下のフィールドタイプのフィールドは選択できません。
    「サブテーブル内のフィールド」、「関連レコード内のフィールド」

shows

  • 表示するフィールド。

shows[].field

  • 表示するフィールドのフィールド名。
  • 「添付ファイル」は画像ファイルの場合も、サムネイル表示しません。
  • 「ユーザー選択」、「組織選択」、「グループ選択」等はアイコンを表示しません。
  • 以下のフィールドタイプのフィールドは選択できません。
    「サブテーブル内のフィールド」、「関連レコード内のフィールド」

sorts

  • レコードのソート条件式。

sorts[].field

  • ソート条件式に用いる、参照するアプリ内のフィールド名。
  • 以下のフィールドタイプのフィールドは選択できません。
    「作業者」、「カテゴリー」、「文字列 (複数行)」、「リッチエディター」、「チェックボックス」、「複数選択」、「添付ファイル」、「ユーザー選択」、「組織選択」、「グループ選択」、「サブテーブル内のフィールド」、「関連レコード内のフィールド」

sorts[].operator

  • ソート条件式に用いる、演算子。

※プラグインに利用しているフィールドの設定に変更があった場合は,プラグイン設定をやり直してください.

API

JavaScriptカスタマイズ用にAPIを用意しております。 カスタム関連レコードと同条件でレコード取得が可能です。 プラグインJSの読み込み完了後に利用可能です。

customReferenceTablePlugin.getRecordsFromSingleReferenceTable(index, record)

アプリ内の指定する1つのカスタム関連レコードと同条件でレコードを取得します。

引数

返り値

Promiseオブジェクト

customReferenceTablePlugin.getRecordsFromAllReferenceTables(record)

アプリ内の全てのカスタム関連レコードと同条件でレコードを取得します。

引数

返り値

Promiseオブジェクト

APIの利用例

カスタム関連レコードの値を用いて、値段_割引後を計算します。

コード

JavaScriptカスタマイズにて、下記「sample.js」を読み込みます。

・sample.js

(function() {
  "use strict";
  kintone.events.on([
    'app.record.create.submit',
    'app.record.edit.submit',
  ], function(event){
    return customReferenceTablePlugin.getRecordsFromSingleReferenceTable(0, event.record).then(function(response){
      var multiplier = response.records.reduce(function(multiplier, record){
        return multiplier * (1 - record.割引.value/100);
      }, 1);
      event.record.テーブル.value.forEach(function(row){
        row.value.値段_割引後.value = row.value.値段.value * multiplier;
      });
      return event;
    });
  });
})();
2

0件のコメント

ログインしてコメントを残してください。