新規投稿
フォローする

Error: app.record.detail.show is not allowed to return "Thenable" object が出てしまう

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

アプリAから値を呼び出し、アプリBで次回の訪問日までのカウントダウンを表示するプログラムを作成しています。

問題なく稼働するのですが、Error: app.record.detail.show is not allowed to return "Thenable" object が出てしまいます。

こちらを参考に改良してみたのですが、改善できません。

アドバイスをいただけますと幸いです。

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

(function() {
  "use strict";

  var aAppId = 5; //台帳- [別アプリから更新]

  console.log('test');


/////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
  kintone.events.on(['app.record.detail.show','app.record.edit.show'], async function(event) {
    var rec = event['record'];
    var hako = rec['ID']['value'];    //更新用アプリID

    //////台帳アプリGETの処理
    var params1 = {
        "app": aAppId,
        "id": hako
    };
    // API呼び出し1回目
    var resp1 =  kintone.api('/k/v1/record', 'GET', params1).then(async function(resp1) {
    var A_houmon =  await resp1.record.A訪問日.value;

    if(rec['訪問先']['value'] == "A社" || rec['訪問先']['value'] == "B社" || rec['訪問先']['value'] == "C社" || rec['訪問先']['value'] == "D社" || rec['訪問先']['value'] == "E社"){

    var kikan = 30;
    var C1 = moment(A_houmon); //実施日のmoment化
    var C2 = moment(B_houmon); //実施日のmoment化
    var C3 = getYearMonth(C1);
    var C4 = getYearMonth(C2);
    var AvalDate = kikan - C3;
    var BvalDate = kikan - C4;
    kintone.app.record.getSpaceElement('Ahoumon').innerHTML = "   次回の訪問日期限まで残り" + AvalDate + "日です。";
    console.log('30');

    }else{

    kikan = 90;
    var C1 = moment(A_houmon); //実施日のmoment化
    var C2 = moment(B_houmon); //実施日のmoment化
    var C3 = getYearMonth(C1);
    var C4 = getYearMonth(C2);
    var AvalDate = kikan - C3;
    var BvalDate = kikan - C4;
    kintone.app.record.getSpaceElement('Ahoumon').innerHTML = "   次回の訪問日期限まで残り" + AvalDate + "日です。";
    console.log('90');

    }
    }, function(resp1) {
       event.error = 'レコードの取得に失敗しました';
       kintone.app.record.set(record);
       return event;
 });
  });
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

  //------------------------------関数部-----------------------------------
    // 今日までの年月計算
    function getYearMonth(dtDate) {

        var dtToday = moment();
        var dtFrom = moment(dtDate);
        var years = 0;
        var months = 0;
        var day = 0;

        //入力日が過去日付の場合計算
        if (!dtToday.isBefore(moment(dtFrom), 'day')) {
            months = dtToday.diff(moment(dtFrom), 'months') % 12;
            day = dtToday.diff(moment(dtFrom), 'day');
        }
        return  day;
  }


  //--------------------------------------------------------------------


})();

0

2件のコメント

Avatar
rex0220

kuma さん

'app.record.detail.show','app.record.edit.show' のイベントは、Promise 対応していませんのでこのエラーが発生しています。

await を外してみてください。

エラー時は、ダイアログ表示などに変更が必要です。

0
Avatar
kuma

rex0220 さん

お返事いただきありがとうございます!さっそく試してみました。

Error: app.record.detail.show is not allowed to return "Thenable" object はでなくなりましたが、

かわりに

content.js:1 Uncaught TypeError: Cannot read property 'startContainer' of null が出るようになってしまいました。

'startContainer' が何を指すのかはわからないのですが、調べてみます。

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

0
サインインしてコメントを残してください。