後付ボタン押下時、画面上部にエラー表示

1週間程、この問題で悩んでいます。助けて頂ければ幸いです。

何を実現したいのかを書きましょう

ボタンを後から追加。そのボタン押下時に、エラー処理を実施。
エラー時に、フィールドでは無く、画面上部にエラーを表示したい。

発生した問題やエラーメッセージを具体的に書きましょう

画面上部へのエラー表示は、recordにエラーを設定するのでは無く、
eventオブジェクト自体にerrorを設定する必要があるという認識です。

後付けでボタンを作成した場合、このボタンに対してonclickでイベント追加後、
errorプロパティを追加した、eventオブジェクトをイベント元?(kintone.events.on)へ
返すことで表示される。はず。
このonclickイベント発火時に、eventオブジェクトを返す方法がわかりません。

実行したコードをコピー&ペーストしましょう

kintone.events.on(['app.record.create.show', 'app.record.edit.show'], (e) => {
    //ボタン作成
    const addObj = new Kuc.Button({
            text: 'AAA'
        });
    //ボタン描画
    const btnSpace = kintone.app.record.getSpaceElement('tms_btn_space');
    addObj.onclick = () => {
        //エラー処理、エラー発生したとする
        e.error = "AAAA";
        return e;    //意味ない?
        }

        btnSpace.appendChild(addObj);
    });

フィールドに対してエラーを表示させるのは、clickイベント内で、
そのタイミングのレコードをget()、errorプロパティ設定、set()でセット。
で想定した動きが出来るのは確認出来ました。

何かしらのアドバイスを頂戴出来れば、大変有り難いです。
宜しくお願い致します。

@hanzoumon さん

こんにちは、少しお力添えできそうだったので回答してみました。
少しわかりくにいかもですが… まず、.onclick(( ) => { })内でしている、return event (こちらのコードでは e)は意味ないのかですが、 あくまでレコード新規作成・編集画面表示後イベント時にボタンを押したときの処理(onclick処理)を定義して、スペースフィールドにレンダリングしてる形なので、ボタンを押したときにはイベントは既に終了してしまっているので、反映されないという形になりますね。

またおっしゃられているように get(),set()ではフィールドに対してエラー表示はできますが、画面上部には表示できないですね。
画面上部にエラー表示させたいのであれば、既にお使いの KUCのコンポーネントで Notification というものがござますので、こちらを使ってボタンを押したときに表示させれば意図した動作になるのではないかと思いました。
下記に参考リンク貼らせていただきますね。

「いいね!」 2

やはりそうなんですね。このeventオブジェクトの正体がよく解っていないので、レコードに対するset()の様なものがないのか、大分悩みました。
KUCのコンポーネントを利用するご提案、有り難う御座います。そちらを利用させて頂きます。
また、速攻でのご回答、本当に助かりました。悩んでいる時間が1週間と13分ほどで済みました。

「いいね!」 1

ちょっとわかりにくいかもですね :sweat_drops:
kintoneでのeventオブジェクトでは、イベント発火時(今回だったらレコード新規作成、編集画面表示後イベント)にレコードの情報をJSON文字列で渡してくれてます :sweat_drops:
渡してくれたeventオブジェクトに対して、値を変更したり追記したり…などして、return eventで返すとイベントを発火させたレコードに変更内容を反映してくれるというものですね :sweat_smile:
どういった実装方法をとっているのか正直そこはサイボウズ社しかわからないです :sweat_drops:

でも、問題が解決ができたようで何よりでございます :v:

「いいね!」 1

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。