スプレッドシートのシフトを元に、開催2時間前に「オンライン連絡対象」フラグのあるシフトに対するアラートをslackに送信したい

前提

スプレッドシートにて、「オンライン連絡対象」と記載されている場合のみ、
slackにシフトの連絡をする、というプログラムを作成中です。

発生している問題

こちらのサイトを確認しながら

if (formatClosingDay === remindDate && status !== '完了') の部分を if (status === 'オンライン連絡対象') このように書き換えたのですが、 「オンライン連絡対象」だけではなく、すべてのシフトが通知されてしまう状態です。 「オンライン連絡対象」と記載されている場合のみ、slackにシフトの連絡が届くように修正したいです。

該当のソースコード

function taskRemind_2() { // シート取得 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('shift_import'); // ループ数定義 const firstRow = 2; const lastRow = sheet.getLastRow(); // アラート対象日フォーマット const date = new Date(); for(var i = firstRow; i <= lastRow; i++) { // ↑2行目〜最後の記載がある行を取得してる_↓下からは各項目取得 var title = sheet.getRange('G' + i).getValue();//セッション名の取得 var contactPerson = sheet.getRange('K' + i).getValue();//担当者の取得 var startingDay = sheet.getRange('B' + i).getValue();//開始時刻の取得 var formatClosingDay = Utilities.formatDate(startingDay, 'JST', 'MM/dd HH:mm~'); var status = sheet.getRange('M' + i).getValue();//リマインド対象かのジャッジ // リマインド時 if (status === 'オンライン連絡対象') { var postUrl = '--Slack Webhook URL--'; var message = `【リマインダー】開催まであと2時間です!\n■セッション名:${title}\n■担当者:${contactPerson}\n■開催日時:${formatClosingDay}` var payload = JSON.stringify({ "text" : message }) var options = { method: 'post', contentType: 'application/json', payload: payload } UrlFetchApp.fetch(postUrl, options); } } }

補足情報(FW/ツールのバージョンなど)

読み込み先のスプレッドシートの列構成は以下の通りです。

A B C E D F G H I J K L M N O
連番 開催日時 終了日時 ユーザーID セッションID 開催拠点 セッション名 セッションキー 公開状態 申し込み人数 ユーザー名 役割名 運営連絡送信 シフト確認OK? アラート発動!

飛んで以下セルには関数が入っています

  • R1:=now()
  • R2:=$R$1+time(1,0,0)
  • R3:=$R$1+time(2,0,0)
  • R4:=$R$1+time(3,0,0)
  • M2:=if(and(B2>$R$1,$R$3>B2,F2="オンライン"),"オンライン連絡対象",if(and(B2>$R$1,$R$4>B2,REGEXMATCH(F2,"SHE")),"拠点連絡対象","連絡対象外"))

イメージ説明

コメントを投稿

0 コメント