質問編集履歴

2

個人情報削除

2020/07/13 05:54

投稿

yoyoy
yoyoy

スコア14

test CHANGED
File without changes
test CHANGED
@@ -104,7 +104,7 @@
104
104
 
105
105
  //予約を記載するカレンダーを取得(テスト)
106
106
 
107
- var cals = CalendarApp.getCalendarById("u.seijo.ac.jp_co73rru6o0khh14sce6d4gdn38@group.calendar.google.com");
107
+ var cals = CalendarApp.getCalendarById("カレンダーID");
108
108
 
109
109
 
110
110
 

1

詳細に記載しなおしました

2020/07/13 05:54

投稿

yoyoy
yoyoy

スコア14

test CHANGED
File without changes
test CHANGED
@@ -4,4 +4,336 @@
4
4
 
5
5
  9:00までは動いており、設定変更もしていません。
6
6
 
7
+
8
+
9
+
10
+
11
+ 現在、実際に動いている流れは以下となります。
12
+
13
+ 【申請について】
14
+
15
+ Formから申請をした人が、利用要件、利用したい時間と日時とを申請します。
16
+
17
+ 利用要件に応じて、担当部署にメールが送信されるように割り振るようにしています。
18
+
19
+ (.match(/●●/)で●●が条件に合っていたら、その担当部署にメールが送信される。)
20
+
21
+
22
+
23
+ 【流れ】
24
+
25
+ ①Formから申請 → ②Form送信 → ③申請者に受付完了メール、申請時間外のため、受付できないメール
26
+
27
+ 、担当部署に申請があったメールが送信 →④スプレッドシートで承認可否 →⑤申請者に承認可否の連絡
28
+
29
+
30
+
31
+
32
+
33
+ ①と②と④と⑤は動いていますが、③が動いていません。
34
+
35
+ トリガーを再設定しましたが、現象は変わりません。
36
+
37
+
38
+
39
+ メールアドレスのfromのメールアドレスは、.match(/●●/)にあった担当部署のメールアドレス
40
+
41
+ が入ります。
42
+
43
+ そのため、以下の同じようなscriptが7つあります。
44
+
45
+
46
+
47
+ このsctiptを作成しているGoogleカウントに、Gmailで送信者として送信するのメールアドレスを登録しています。
48
+
49
+
50
+
51
+ Form,スプレッドシート、scriptを複写した、テスト環境では、問題なく動いています。
52
+
53
+
54
+
55
+
56
+
57
+ scriptは以下となります。
58
+
59
+ ```
60
+
61
+ function Utest(e) {
62
+
63
+
64
+
65
+ //有効なGooglesプレッドシートを開く
66
+
67
+ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
68
+
69
+
70
+
71
+ //新規予約された行番号を取得
72
+
73
+ var num_row = sheet.getLastRow();
74
+
75
+
76
+
77
+
78
+
79
+ //メールアドレスの取得
80
+
81
+ var nmail = sheet.getRange(num_row,2).getValue();
82
+
83
+
84
+
85
+ //名前の取得
86
+
87
+ var name = sheet.getRange(num_row,3).getValue();
88
+
89
+
90
+
91
+ //理由を取得
92
+
93
+ var riyuu = sheet.getRange(num_row, 4).getValue();
94
+
95
+
96
+
97
+ //理由の内容を取得
98
+
99
+ var naiyou = sheet.getRange(num_row, 5).getValue();
100
+
101
+
102
+
103
+
104
+
105
+ //予約を記載するカレンダーを取得(テスト)
106
+
107
+ var cals = CalendarApp.getCalendarById("u.seijo.ac.jp_co73rru6o0khh14sce6d4gdn38@group.calendar.google.com");
108
+
109
+
110
+
111
+ //★現在日時を取得
112
+
113
+ var day = Moment.moment();
114
+
115
+
116
+
117
+ //予約の開始時間を取得
118
+
119
+ var stime = new Date(sheet.getRange(num_row, 7).getValue());
120
+
121
+ var stime2 = sheet.getRange(num_row, 7).getDisplayValues();
122
+
123
+
124
+
125
+ //予約の終了時間を取得
126
+
127
+ var etime = new Date(sheet.getRange(num_row, 8).getValue());
128
+
129
+ var etime2 = sheet.getRange(num_row, 8).getDisplayValues();
130
+
131
+
132
+
133
+
134
+
135
+ //予約日を取得
136
+
137
+ var ndate = new Date(sheet.getRange(num_row, 6).getValue());
138
+
139
+ var ndate2 = sheet.getRange(num_row, 6).getDisplayValues();
140
+
141
+
142
+
143
+ var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0);
144
+
145
+ var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0);
146
+
147
+
148
+
149
+ // 時間内かつテストか ★追記
150
+
151
+ if(cals.getEvents(ndates, ndatee) == 0 && riyuu.match(/テスト/) && Moment.moment(ndates).isAfter(day)){
152
+
153
+
154
+
155
+
156
+
157
+ var subject = "申請仮予約";
158
+
159
+ var body ='';
160
+
161
+ body += 'テストです。\n';
162
+
163
+ body += '\n';
164
+
165
+ body += '申請の仮予約を受付ました。\n';
166
+
167
+ body += '\n';
168
+
169
+ body += '【申請内容】\n';
170
+
171
+ body += ' ・メールアドレス: ' + nmail + '\n';
172
+
173
+ body += ' ・名前 : ' + name + '\n';
174
+
175
+ body += ' ・理由 : ' + riyuu + '\n';
176
+
177
+ body += ' ・理由の内容 : ' + naiyou + '\n';
178
+
179
+ body += ' ・日 : ' + ndate2 + '\n';
180
+
181
+ body += ' ・希望時間 : ' + stime2 + '\n';
182
+
183
+ body += ' ・予定時間 : ' + etime2 + '\n';
184
+
185
+ body += '\n';
186
+
187
+ body += '予約確定次第、再度このメールアドレスにご連絡致します。\n';
188
+
189
+ body += '\n';
190
+
191
+ body += '\n';
192
+
193
+
194
+
195
+
196
+
197
+ body = name +" 様\n\n"+body;
198
+
199
+
200
+
201
+ GmailApp.sendEmail(nmail,subject,body,
202
+
203
+ {
204
+
205
+ from: 'メールアドレス',
206
+
207
+ name: ' テスト',
208
+
209
+ bcc: 'メールアドレス,
210
+
211
+ });
212
+
213
+
214
+
215
+ var subject2 = "承認をお願いします。";
216
+
217
+ var body2 ='';
218
+
219
+ body2 += '申請がありました。\n';
220
+
221
+ body2 += '承認をお願いします。\n';
222
+
223
+ body2 += '\n';
224
+
225
+ body2 += '【申請内容】\n';
226
+
227
+ body2 += ' ・メールアドレス: ' + nmail + '\n';
228
+
229
+ body2 += ' ・名前 : ' + name + '\n';
230
+
231
+ body2 += ' ・理由 : ' + riyuu + '\n';
232
+
233
+ body2 += ' ・理由の内容 : ' + naiyou + '\n';
234
+
235
+ body2 += ' ・日 : ' + ndate2 + '\n';
236
+
237
+ body2 += ' ・希望時間 : ' + stime2 + '\n';
238
+
239
+ body2 += ' ・予定時間 : ' + etime2 + '\n';
240
+
241
+ body2 += '\n';
242
+
243
+ body2 += '確認後、「承認者名」「承認可否」を入力して下さい。\n';
244
+
245
+ body2 += '却下の場合は、可否理由欄に却下理由を記入して下さい。\n';
246
+
247
+ body2 += '\n';
248
+
249
+ body2 += '\n';  
250
+
251
+
252
+
253
+ GmailApp.sendEmail('メールアドレス',subject2,body2,
254
+
255
+ {
256
+
257
+ from:'メールアドレス',
258
+
259
+ name:'テスト',
260
+
261
+ bcc: 'メールアドレス',
262
+
263
+ }
264
+
265
+ );
266
+
267
+
268
+
269
+ }
270
+
271
+ if(cals.getEvents(ndates, ndatee) != 0 && riyuu.match(/テスト/) || Moment.moment(ndates).isBefore(day) && riyuu.match(/テスト/)){
272
+
273
+
274
+
275
+ sheet.deleteRow(num_row);
276
+
277
+
278
+
279
+ var body3 ='';
280
+
281
+ body3 += '\n';
282
+
283
+ body3 += '外です。\n';
284
+
285
+ body3 += '\n';
286
+
287
+ body3 += '【申請内容】\n';
288
+
289
+ body3 += ' ・メールアドレス: ' + nmail + '\n';
290
+
291
+ body3 += ' ・名前 : ' + name + '\n';
292
+
293
+ body3 += ' ・理由 : ' + riyuu + '\n';
294
+
295
+ body3 += ' ・理由の内容 : ' + naiyou + '\n';
296
+
297
+ body3 += ' ・日 : ' + ndate2 + '\n';
298
+
299
+ body3 += ' ・希望時間 : ' + stime2 + '\n';
300
+
301
+ body3 += ' ・予定時間 : ' + etime2 + '\n';
302
+
303
+ body3 += '\n';
304
+
305
+
306
+
307
+
308
+
309
+ body3 = name +" 様\n\n"+body3;
310
+
311
+
312
+
313
+ GmailApp.sendEmail(nmail,"時間外で申請されています。",body3,
314
+
315
+ {
316
+
317
+ from:'メールアドレス',
318
+
319
+ name:'入構申請',
320
+
321
+ bcc: 'メールアドレス',});
322
+
323
+ }
324
+
325
+ }
326
+
327
+
328
+
329
+
330
+
331
+ コード
332
+
333
+ ```
334
+
335
+
336
+
337
+
338
+
7
339
  何か同じような状況になった方がいらっしゃいましたら、回答をお願い致します。