GASを使うようになってからエンジョイライフ一直線

このエントリーをはてなブックマークに追加
こんにちは、QAエンジニアのkuramochiです☆

プログラマではない私がこだわって作ってみたGASについて紹介させていただきます!!

まず、GASとは?
Google App Scriptのことです。
バリバリのエンジニアの皆様的には、おーGASねーってかんじかもしれないですが、、、
暖かく見守ってくださると幸いです( *´艸`)


自分自身、スクラムチームのリリースプロセスを管理していたので、以下のようなメールを毎週月曜日の朝に配信していました。
************************************************
今週のリリーススケジュールの期限は以下です。
○○日(月)・・・□□
●●日(水)・・・■■

※厳守でお願いします。
************************************************
そー、これぞ、人力!!

上記、月曜日の朝はスクラムの特性、MTGがあるので忘れがちになってしまうんです。

そんな時、私の趣味であるバレーボールで、前十字靭帯損傷という怪我で入院したことがきっかけで、
自動配信できたらいいのにと調べ始めたのがきっかけです。



■やりたいこと
毎日決まった時刻に、その日の期限となっているプロセスの通知をすること
全部、ポチッ、で解決したいなー 、そう、スパムメールのように

■用意するもの
Googleのスプレッドシート
やる気と聡明な脳みそ

◇メール配信用Script以下参照
function sendMailForm(){
  var now = new Date();
  var spread_sheet_id = '(スプレッドシートIDを入力)';
  var sheet_name = 'MPスケジュールメール送信用';
  
  var today = now.toLocaleString();
  var today_date = today.match(/^[0-9/]+/);
  var ss   = SpreadsheetApp.openById(spread_sheet_id);
  var sh   = ss.getSheetByName(sheet_name);
  var rows = sh.getLastRow();

  for ( var i = 2; i <= rows; i++ ) {
    var value = sh.getRange(i, 2).getValue();
    
    if( today_date == value ) {
      var to = sh.getRange(i, 3).getValue();
      var subject = sh.getRange(i, 4).getValue();
      var body = sh.getRange(i, 5).getValue();
      
     //メール配信する
      var options = {};
      if ( to ) {
        MailApp.sendEmail(to, subject, body);
      }
 
    }
  }
}
 
◇スプレッドシート内は以下参照
MPスケジュールメール送信用




ついでに、Googleカレンダーにも同じものをポチッ、で入力してます。
function createAllDayEventFromSheet() {
    var mytitle, mydate, mydescription;
    var objEvent;
    var sheet = SpreadsheetApp.getActiveSheet();
    var objCalendar = CalendarApp.getCalendarById('(カレンダーIDを入力)'); 
 
    for (var i = 2; i <= sheet.getLastRow(); i++) {
        mytitle = sheet.getRange(i, 1).getValue();
        mydate = sheet.getRange(i, 2).getValue();
       mydescription = sheet.getRange(i, 3).getValue();
        objEvent = objCalendar.createAllDayEvent(mytitle, mydate, {
          description:mydescription
        });
    }
}
そのスプレッドシートはこちら
(MPカレンダー登録用)
これ、ポチってやつとGoogleカレンダー内に対象のDateにtitleのスケジュールが入ってきます。


また、Googleカレンダーに入れるにも、スプレッドシート開いて、GAS開いて実行ってめんどうだったので、
スプレッドシート上のメニュータブから、ポチッ、でできるようにメニュータブも追加!
function onOpen(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menus = [
    {name: '★MPカレンダー登録用', functionName: 'createAllDayEventFromSheet'},
   ];
  ss.addMenu('★QAリリースタスク', menus);
}
実際にはこんな感じ

※「★リリースタスク_PIVOTAL(QA)」は、作成中につき、画像では入っていますが、未対応のものです。

全ての日付文面等はセルをうまくつかって、入力値がほぼほぼ動的に生成されるようにします。
※2回ポチると、二重登録になるので、要注意です。


一つのシートで全部完了!

おかげで、毎日のようにあるプロセス期限の連絡を自動配信させることができました。
毎日おしよせる期限通知に少しひやりとしながら期限にこだわって仕事をするのもなかなかいいものです!!

メールを見てない方やメールを見る癖がない方もいらっしゃると思います。
ですが、メールを見ないで仕事はできません。
なにより、スパムのようにメールを送ることで、管理側も楽になり、受け取る側もなんかメールくるからやらなくてはいけない、ちょっと気になる、的な存在になってくれます。

なんのために通知をしているのか、
期限というものに執着してもらいたい、
技術者としてアウトプットすることにこだわりたい、
と思いながら作りました。

プログラマではないので、こういうの調べたりするにも時間かかりますが、
QAという職種上、自分ひとりで何か作り上げるにはハードル高い部分を感じながら、
自分で完結させる何かを作りたいという精神で取り組むことができました。
もちろん、とってもとっても優しい先輩方にも見てもらいました。


シャノンには、こんなことをしているQAエンジニアもいます、QAは常に改善を心がけています!!
みんなが心地よく働けるように、開発者が書いたものに対して、気持ちよくリリースOKと告げることができるように、
品質をあげる活動をしています。
(Perlを書き始めたQAエンジニアもいるとかいないとか・・・ )

QA大好きっという方、テストにこだわりたいっという方、
大大大募集していますので、採用ページは こちら!!

では、これにて、kuramochiでした♪
次の記事
« Prev Post
前の記事
Next Post »
Related Posts Plugin for WordPress, Blogger...