プロセス管理、ステータス変更時のユーザー選択フィールドの自動入力について

 いつもお世話になっております。

表題について質問させていただきます。

 

現在は以下のプログラムを用いて、ステータスが「決裁済み」になった日時の自動入力を行っています。

今回はここに、「決裁済み」にステータスを進めた作業者をユーザー選択フィールドに自動反映させたいと思っています。

以下のプログラムにどのような工夫をすれば、ユーザー選択フィールドへの自動入力ができるでしょうか。

なお、「決裁済み」のステータスは最終のステータスであり、そのあとにステータスが変化することはありません。

アドバイスを頂けますと助かります。

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

 

 

   kintone.events.on([“app.record.detail.show”],function(event){
     var record = event.record;
     var nStatus = record.ステータス.value;

     switch(nStatus){
       case “決裁済み”:

         if (record[‘決裁日時’][‘value’] === “”){

           var url = ‘https://(サブドメイン名).cybozu.com/k/v1/record.json’;

           var headers = {
             ‘X-Cybozu-API-Token’:‘(レコード閲覧、編集権限を付与したAPIトークン)’,
             ‘Content-Type’: ‘application/json’
           };

           var param = {
             “app” : kintone.app.getId(),
             “id”  : kintone.app.record.getId(),
             “record”: {
               “決裁日時”: {
                 “value”: moment().format(“YYYY-MM-DDTHH:mmZ”)
               }
             }
           };

           kintone.proxy(
             url,
             ‘PUT’,
             headers,
             param,
             function(body, status, headers) {
               console.log(JSON.parse(body));
               location.reload();
             },
             function(error) {
               console.log(error);
             }
           );

         };

         break;
       }
   });

yamaguchi さん

こんにちわ!

 

JavaScript 初心者ですが、処理を書いてみました!

以下のような処理でご希望の動作は可能でしょうか。

 

(function () {
"use strict";
 
    kintone.events.on(["app.record.detail.show"],function(event){
     
    var record = event.record;
    var nStatus = record.ステータス.value;

    switch(nStatus){
        case "決裁済み":

            if (record['決裁日時']['value'] === ""){

                var url = 'https://(サブドメイン).cybozu.com/k/v1/record.json';

                var headers = {
                    'X-Cybozu-API-Token':'(レコード閲覧、編集権限を付与したAPIトークン)',
                    'Content-Type': 'application/json'
                };

                var param = {
                    "app" : kintone.app.getId(),
                    "id"  : kintone.app.record.getId(),
                    "record": {
                        "決裁日時": {
                            "value": moment().format("YYYY-MM-DDTHH:mmZ")
                        },
                        "ユーザー選択": {
                            "value": [
                                {
                                    "code" : record.更新者.value.code
                                }
                            ]
                        }
                    }
                };

                kintone.proxy(url, 'PUT', headers, param, function(body, status, headers) {
                    console.log(JSON.parse(body));
                    location.reload();
                }, function(error) {
                    console.log(error);
                }
            );
        };
        break;
        }
    });
})();

 

少しでも参考になれば嬉しいです。

 

懸念点といたしまして、API でレコードの更新が行われた場合、レコードの編集者が

変わるため、本来の決裁者とは違うユーザーがユーザー選択フィールドに

入る可能性がある、というところでしょうか。

希望通りに実装できました!

ありがとうございました!

yamaguchi さん

 

希望通り実装できたとお聞きし、安心しました!

お役に立てたようでよかったです!^^

JavaScript 初心者です。ステータスが「未処理」→「確認待ち」になった日付を、指定した日付フィールドへ自動入力する方法をご教示いただけないでしょうか。

よろしくお願いします。