前提
スプレッドシートにて、「オンライン連絡対象」と記載されている場合のみ、
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 コメント