Googla Apps Script で一日の決まった時間の間だけ起動したいと、知人から質問を受けました。
結論から言えばあっけないほど簡単なんですけど、「ネットで検索してもわからない」とのことでしたのでチョットだけお手伝い。
会社の就業時間だけ稼働させてたいと思い Googleスクリプトエディターに有るトリガーでなんとかしようと考えたようですが、最低限の設定だけで、細かい設定が出来ない仕様になっていますので困った挙句のヘルプでした。
設定の流れ
- スクリプトエディターの時間主導型トリガーの日タイマーで開始時間設定
- スクリプト内にトリガー設定、15分間隔
- 終業時間が過ぎたらスクリプト停止の為トリガー削除
コード
function setTrigger() {
ScriptApp.newTrigger("hoge") .timeBased() .everyMinutes(15) .create();
}
function deleteTrigger() {
var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++){
if (triggers[i].getHandlerFunction() == "hoge"){
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
function hoge(){
var h = (new Date()).getHours();// h は今の時間
if(h > 22){ // もし22時以降ならトリガーを削除し停止
deleteTrigger();
}
//何やらいろんな処理をここへ
}
スクリプトエディターの時間主導型トリガー設定
スクリプト内にトリガー設定
function setTrigger() {
ScriptApp.newTrigger("hoge") .timeBased() .everyMinutes(15) .create();
}
everyMinutes(15) で15分に設定
トリガー削除スクリプト作成
function deleteTrigger() {
var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++){
if (triggers[i].getHandlerFunction() == "hoge"){
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
実行スクリプト名 hoge のトリガーだけを削除する。
22時以降になったらトリガー削除を実行
function hoge(){
var h = (new Date()).getHours();// h は今の時間
if(h >= 22){ // もし22時以降ならトリガーを削除し停止
deleteTrigger();
}
//何やらいろんな処理をここへ
}
以上、終わり(-。-)y-゜゜゜
G Suite とは
G Suite は、チームのコミュニケーションとコラボレーションを支援し、いつでも、どこでも、どの端末でも仕事ができる、クラウドベースの生産性向上ソフトウェア スイートです。設定、操作、管理が簡単なので、重要な業務に集中できます。
世界中の数百万という数の企業が、仕事用のメール、ファイル ストレージ、ビデオ会議、オンライン カレンダー、ドキュメント編集などに G Suite を活用しています。
主な特長:
会社のドメインのメール
プロフェッショナルな見た目は重要です。会社のドメインを含むアドレス(you@yourcompany.com の形式)を仕事上のやり取りに使用することには大きな意味があります。Gmail のわかりやすく充実した機能は、会社のブランドを確立すると同時に、多くの仕事を成し遂げるのに役立ちます。
場所や端末を選ばないアクセス
メールのチェック、ファイルの共有、ドキュメントの編集、ビデオ会議の実施などが、オフィス、自宅、移動先のどこからでも可能です。仕事の続きは、パソコン、タブレット、スマートフォンのどれを使っても行えます。
企業に適した管理ツール
堅牢な管理者設定により、ユーザー、端末、セキュリティなどのすべてをお客様ご自身で管理できます。データは常にお客様のものであり、ソリューションを変更する場合でもデータはそのまま使用できます。