ルックアップによる初期入力

通常ルックアップすると任意のフィールドに、別アプリから値を持ってくることができますが、その値を変更することができません。

その値をあとから変更可能な形にカスタマイズしたいと思っております。

またそのフィールドはユーザー選択にしたいと思っています。

この場合どのような書き方をすればいいのでしょうか。

倉田実さん
cstapの落合です。

以下のような仕様ならご要望の機能が実現できるのかと思います。

  • アプリの設定
    • ユーザー選択フィールドは、ルックアップの反映フィールドには指定しない
    • ユーザー選択フィールドの横にスペースフィールドを設置する
  • JavaScript
    • スペースフィールドにユーザーフィールドを編集するかどうかのチェックボックスを設置
    • レコード登録&編集画面の表示イベントで、ユーザー選択フィールドを編集不可にする
    • 上のチェックボックスがONでユーザー選択を編集可にする
    • レコード登録&編集submitイベントで上のチェックボックスがOFFの時、ルックアップ先のデータを同期処理で取得し、ユーザー選択フィールドにルックアップ元のデータを反映する

以上、参考になりますでしょうか?

落合様

早速の回答ありがとうございます。

回答いただいた方法をとった場合には、ルックアップする内容は、レコードの保存をするまでわからないということでしょうか。

可能であれば、ルックアップした値を事前に確認のうえで、変更するしないが決定できればと考えています。

あらかじめ、ルックアップして、別のユーザー選択に値を入れておいて事前に確認し、変更が必要な場合にはユーザー選択フィールドに記入を行う/不要ならそのままということで対応するようなイメージでしょうか。

また、同期処理というのは、以下で述べられているような、XMLHttpRequest を使うという理解であっていますでしょうか。

https://cybozudev.zendesk.com/hc/communities/public/questions/201106490-%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E8%A1%A8%E7%A4%BA%E6%99%82-%E8%A9%B3%E7%B4%B0%E7%94%BB%E9%9D%A2%E8%A1%A8%E7%A4%BA%E6%99%82%E3%81%AE%E3%83%AB%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E5%86%8D%E5%8F%96%E5%BE%97%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6?locale=ja

倉田実さん

回答いただいた方法をとった場合には、ルックアップする内容は、レコードの保存をするまでわからないということでしょうか。

ルックアップ先のデータREST APIで取得することで確認できます。
そのため、

ルックアップした値を事前に確認のうえで、変更するしないが決定できればと考えています。

も可能です。
フィールド値変更時イベントでルックアップで値がコピーされたタイミングをキャッチすることができるので、指定可能なフィールドがあれば、その変更イベントでルックアップしたデータのチャックをすればいいかと思います。

この場合は非同期処理がいいので、kintone.apiを使ってレコード情報を取得してください。

また、同期処理というのは、以下で述べられているような、XMLHttpRequest を使うという理解であっていますでしょうか。

この質問と回答も同期処理の参考になるかと思います。

他では、以下のTipsも参考になるかと思います。
郵便番号→住所について, 外部APIの同期処理について

以上、参考になりますでしょうか?

落合様

回答いただきましてありがとうございます。

回答いただいた内容を元にアプリを作成していたときに、
ひとつ気付いたことがあります。

それは、ルックアップの反映フィールドを
record[‘ユーザー選択’][‘disabled’] = false
としておくと、ルックアップの反映フィールドの結果を修正できるということです。

この方法をとった場合に、何か問題ありそうな点はありますでしょうか。

教えていただいた内容が自分にとっては、実装するのが難しそうなこともあり、もしこれで問題ないのであればこの方法をとりたい、と考えております。

倉田実さん

ルックアップの反映フィールドを
record[‘ユーザー選択’][‘disabled’] = false
としておくと、ルックアップの反映フィールドの結果を修正できるということです。

ルックアップの性質上、特に問題ないかと思います。
ただ、https://cybozudev.zendesk.com/hc/ja/articles/202166270#step5にある仕様と動作が違いますね。
私も試しましたが、同じように編集可にできたので、おそらくドキュメントの方が間違っているのでしょう。

運営の方にドキュメントの修正を依頼しておきます。

落合様

ありがとうございました。
今後ともよろしくお願いいたします。