# チェックボックスの内容によって承認をスキップし、自動でステータス更新をしたい

**URL:** <https://community.cybozu.dev/t/topic/1149>\
**Category:** kintone 開発相談\
**Created:** [2022 年 11 月 14 日午前 9:06 UTC](https://community.cybozu.dev/t/topic/1149 "2022-11-14T09:06:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account127](https://avatars.discourse-cdn.com/v4/letter/l/f07891/32.png) [@Legacy\_Account127](https://community.cybozu.dev/u/Legacy_Account127)\
**Post date:** [2022 年 11 月 14 日午前 9:06 UTC](https://community.cybozu.dev/t/topic/1149/1 "2022-11-14T09:06:45Z")

</div>

お世話になります。  
最近カスタマイズができるようになったばかりで、  
至らない部分があれば申し訳ありません。

フォームに承認者と口頭承認のチェックボックスを設置し、  
口頭承認のチェックが入っていたら、「申請する」の次のプロセスである  
「システム登録」に飛ばしたいと考えています。

さらに、保存時に下記の通りに自動でプロセス実行を行いたいです。  
・口頭承認に未チェックの場合＝「申請する」にステータスを自動更新。  
・口頭承認にチェックが入っている場合＝「システム登録」にステータスを自動更新。

① ステータスの自動更新

```
(() => {

  'use strict';

  // レコード追加画面の保存成功後イベント
  kintone.events.on('app.record.create.submit.success', (event) => {
    const record = event.record;
    const appId = event.appId;
    const recordId = event.recordId;
    const authorizer = record.authorizer.value[0].code;

    // レコードのステータス更新API
    const body = {
      'app': appId,
      'id': recordId,
      'action': '申請する',
      'assignee': authorizer,
      'revision': 1
    };
    
    return kintone.api(kintone.api.url('/k/v1/record/status', true), 'PUT', body).then((resp) => {
      alert('申請するボタンを実行しました');
      return event;
    }, (error) => {
      alert(error.message);
      return event;
    });
  });
})();

```

② 承認のスキップ(参考 ：[https://blog.intracker.net/archives/2594](https://blog.intracker.net/archives/2594))

```
(function() {
  'use strict';
  
  //経路の値が変更されたときの処理
  kintone.events.on([
    'app.record.create.change.Decision',
    'app.record.edit.change.Decision'
  ], function(event) {
    var record = event.record;
    var changes = event.changes;
    
    //console.dir(record);
    
    record['口頭承認'].disabled = false;
     
    //承認者が必要かをチェック
    if(record['authorizer']['value']['length'] >= 1 ) {
      console.log('口頭承認なし');
      record['口頭承認'].value = [];
    }else{
      console.log('口頭承認あり');
      record['口頭承認'].value = ['口頭で承認済み'];
     }
      
    record['口頭承認'].disabled = true;
    
    return event;
  });
  
  
})();

```

こちらを組み合わせて利用しようと試行錯誤しており、  
煮詰まってしまったので一からやり直しております。

今は上記の通りのものを別々のJSファイルにしてアップロードしている状態で、  
②は上手く動くものの①が動きません。

おそらく①もifで条件分岐しなくてはいけないと思うのですが、  
参考になりそうなページや、記述方法をご教示いただけると幸いです。

よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account63](https://avatars.discourse-cdn.com/v4/letter/l/6de8d8/32.png) [@Legacy\_Account63](https://community.cybozu.dev/u/Legacy_Account63)\
**Post date:** [2022 年 11 月 18 日午前 12:52 UTC](https://community.cybozu.dev/t/topic/1149/2 "2022-11-18T00:52:42Z")

</div>

１と２はイベントハンドラが違うため、２が影響して１がうごかない、ということは可能性としては低そうです。  
（より確実にするためには１のjsだけでためしてみるといいかもしれません）

１がなぜ動かないかは、まずはデバッグでエラーがでてないか確認してみてください。  
[実行時のエラー](https://community.cybozu.dev/hc/ja/articles/4977994758297-kintone-JavaScript-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81#check-errors)と通[信時のエラーを](https://community.cybozu.dev/hc/ja/articles/4977994758297-kintone-JavaScript-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81#check-the-network)確認してみるのがいいかとおもいます。

---

<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:** [2023 年 10 月 18 日午前 6:56 UTC](https://community.cybozu.dev/t/topic/1149/3 "2023-10-18T06:56:36Z")

</div>

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