# kintoneの設定画面のアクションで作成したボタンを押下した際のイベントハンドラ

**URL:** <https://community.cybozu.dev/t/topic/9786>\
**Category:** kintone 開発相談\
**Created:** [2024 年 11 月 28 日午前 2:50 UTC](https://community.cybozu.dev/t/topic/9786 "2024-11-28T02:50:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![SSS](https://avatars.discourse-cdn.com/v4/letter/s/57b2e6/32.png) [@SSS](https://community.cybozu.dev/u/SSS)\
**Post date:** [2024 年 11 月 28 日午前 2:50 UTC](https://community.cybozu.dev/t/topic/9786/1 "2024-11-28T02:50:27Z")

</div>

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

kinttoneアプリ⇒歯車マーク⇒設定⇒プロセス管理⇒アクション名（ボタン名）  
から作成できるボタンを押下した際に、  
アプリ内の項目の値を更新させたいです。

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

イベントハンドラが分かればJavaScriptで記述する方法は分かるのですが、  
このkintoneの機能で作成されたボタンのイベントハンドラは  
どのように指定すれば良いのでしょうか。

ご教示お願いいたします。

---

<div class="post-metadata">

**Author:** ![puppet](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/puppet/32/2126_2.png) [@puppet](https://community.cybozu.dev/u/puppet)\
**Post date:** [2024 年 11 月 28 日午前 8:05 UTC](https://community.cybozu.dev/t/topic/9786/2 "2024-11-28T08:05:40Z")

</div>

> **[プロセス管理でアクションを実行するときのイベント](https://cybozu.dev/ja/kintone/docs/js-api/events/detail/detail-process-proceed-event/)**
>
> プロセス管理機能を有効にしたアプリで、アクションを実行したときに発生するイベントです。

↑こちらのイベント内処理で対象アクションを取捨選択できるようです。

---

<div class="post-metadata">

**Author:** ![SSS](https://avatars.discourse-cdn.com/v4/letter/s/57b2e6/32.png) [@SSS](https://community.cybozu.dev/u/SSS)\
**Post date:** [2024 年 11 月 28 日午前 8:51 UTC](https://community.cybozu.dev/t/topic/9786/3 "2024-11-28T08:51:04Z")

</div>

回答ありがとうございます  
参考にし以下の処理で概ね対応できました。

```javascript
    // 同期処理イベント（アクションボタン押下後）
    kintone.events.on(['app.record.detail.process.proceed', 'mobile.app.record.detail.process.proceed'], function(event) {

        var btnAction = event.action.value;

        // ボタン1が押下された場合
        if (btnAction == 'ボタン1押下') {

            // アプリID, レコードID取得
            var appId = kintone.app.getId();
            var recordId = kintone.app.record.getId();

            // 更新する項目のパラメータ設定
            var params;
            params = {
                "app": appId,
                "id": recordId,
                "record": {
                    "ボタン": {
                        "value": "ボタン1押下"
                    }
                }
            }

            // APIで更新
            kintone.api('/k/v1/record', 'PUT', params, function(resp) {
                // thenの処理へ
                resolve(resp);
            }, function(resp) {
                // エラーの場合はメッセージを表示する
                var errmsg = '処理中にエラーが発生しました。';
                // レスポンスにエラーメッセージが含まれる場合はメッセージを表示する
                if (resp.message !== undefined) {
                    errmsg += '\n' + resp.message;
                    alert(errmsg);
                    event.error = error;
                    return event;
                }
            });
            location.reload();
        }
        return event;
    });

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2024 年 12 月 1 日午前 8:51 UTC](https://community.cybozu.dev/t/topic/9786/4 "2024-12-01T08:51:06Z")

</div>

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