はじめまして、樋口と申します。
現在ルックアップ項目の絞り込み条件として、別フォームの値を参照するような仕組みを作ろうとしています。
しかし以下の問題が発生しており、その対処方法が不明な状態です。
どなたか解決策をご存知であれば教えていただけないでしょうか。
・発生している問題
フォームの設定変更を行うAPI自体は成功しているのですが、変更後設定が画面上に反映されません。
ここではcustomer_idとcategoryによって、動的にルックアップ項目の絞り込み条件を変更しようとしています。
・実際のコード
(function () {
“use strict”;
var app = 29;
var targetApp = 30;
/*
* 契約一覧を取得
*/
var getDegreeList = function(event) {
var customer_id = "";
var category = "";
var records = event.record;
if (records) {
if(records.customer_id.value != undefined) customer_id = records.customer_id.value;
if(records.category.value != undefined) category = records.category.value;
}
if(customer_id == "") return event;
if(category == "") return event;
var jsondata = {
"app":app,
"properties": {
"agreement_price": {
"lookup": {
"relatedApp": {
"app": targetApp,
},
"relatedKeyField": "common_value",
"filterCond": "common_customer_id = \"" + customer_id + "\" and common_kind_agreement in (\"" + category + "\")",
"sort": "common_balance_payable asc, common_agreement_date asc"
},
"type": "NUMBER"
}
}
};
// lookup項目である契約一覧の、絞り込み要素を設定する
kintone.api(kintone.api.url("/k/v1/preview/app/form/fields", true), "PUT", jsondata)
.then(
function(resp) {
// レコード番号を表示する
alert("success");
},
function(error) {
// エラーの場合はメッセージを表示する
var errmsg = "レコード取得時にエラーが発生しました。";
// レスポンスにエラーメッセージが含まれる場合はメッセージを表示する
if (error.message !== undefined){
errmsg += "" + error.message;
}
alert(errmsg);
}
);
return event;
};
// 追加画面表示時
kintone.events.on("app.record.create.show", function (event) {
getDegreeList(event);
// 顧客変更時に契約一覧を取得
kintone.events.on("app.record.create.change.customer_id", function (event) {
getDegreeList(event);
});
// カテゴリ変更時に契約一覧を取得
kintone.events.on("app.record.create.change.category", function (event) {
getDegreeList(event);
});
});
// 編集画面表示時
kintone.events.on("app.record.edit.show", function (event) {
getDegreeList(event);
// 顧客変更時に契約一覧を取得
kintone.events.on("app.record.edit.change.customer_id", function (event) {
getDegreeList(event);
});
// カテゴリ変更時に契約一覧を取得
kintone.events.on("app.record.edit.change.category", function (event) {
getDegreeList(event);
});
});