見出し画像

PromiseとかPoxyとか時間の足し算とかとか

kintoneの案件をやって今回学んだこと。

時間の足し算

momentを使えば、1年とか1ヶ月とか簡単に計算できる。

もちろん閏年もちゃんと対応。

record['利用終了期限']['value'] = moment(record.利用開始期限.value).add(1, 'years').format('YYYY-MM-DD')

Promise

人生初のPromise。。

①ログインユーザーのグループ(ロール)を取得して、もし「一般」だったらフィールド名を非表示にする

 var loginUserCode = kintone.getLoginUser()['code']; // ログイン名を取得
   var path = '/v1/user/groups';
   var data = {
     code: loginUserCode // ログインユーザーを指定
   };
   var rollflg = false;


   kintone.api(path, 'GET', data, function(resp) {
     var roll;
     var record = kintone.app.record.get(); // レコード情報を取得
     roll = resp['groups'][0]['name']; // フィールドコードが「組織」のフィールドに取得した組織名をセット
     if (roll == "一般") {
       record['record']['フィールド名']['disabled'] = true;
       kintone.app.record.set(record);
     }
   }, function(resp) {
     var errmsg = 'グループ取得時にエラーが発生しました。';
     if (resp.message !== undefined) {
       errmsg += '\n' + resp.message;
     }
     alert(errmsg);
   });
   record.消費枚数.disabled = rollflg;
   record.ステータス_L.disabled = true;

   console.log(record.消費枚数.value);
  

Poxy

Adminになりすまして(言い方)レコードの処理

var record = event.record;
var keiyakuAppId = pvc.env.app.契約.appId;
var token = "APIトークン";
var headers = {
         'X-Cybozu-API-Token': token,
         'Content-Type': 'application/json'
 };


 //成功したら処理
 return kintone.proxy(kintone.api.url('/k/v1/record', true), 'PUT', headers, body);
  }).then(function(resp1) {
  ・・・

フィールドに値が入力されているか

数値は入力されていなくても0の反応がでるとかでないとかっていう記事をみたんおで一応。

 if (record.フィールド名.value && record.フィールド名.value < 0) {
     event.error = 'エラーメッセージ';
   }

おまけ)この経験を通して思ったこと

・ポータルの一覧の制御はできない(アプリの一覧は非表示できる)

・kintoneのJavaScriptはすべてのスペースにかかっている(消しちゃいけない(戒め

・追加権限がないとPromiseで追加できない(割と当たり前だけどめちゃくちゃ大事)


この記事が気に入ったらサポートをしてみませんか?