質問編集履歴

3

誤字

2020/02/13 06:07

投稿

renren.778899
renren.778899

スコア7

test CHANGED
File without changes
test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
  var Spreadsheet = SpreadsheetApp.openById("abcdefgh1234567890");
116
116
 
117
- var sheet = Spreadsheet.getSheetByName("フォームの回答 4");   //スプレッドとシートの指定
117
+ var sheet = Spreadsheet.getSheetByName("メールフォーム");   //スプレッドとシートの指定
118
118
 
119
119
  var ss = Spreadsheet.getSheetByName("宛先リスト");
120
120
 
@@ -180,7 +180,7 @@
180
180
 
181
181
  // スプレッドシートの操作
182
182
 
183
- var sheet = Spreadsheet.getSheetByName("フォームの回答 4"); 
183
+ var sheet = Spreadsheet.getSheetByName("メールフォーム"); 
184
184
 
185
185
  var rows = sheet.getRange(1, 1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
186
186
 

2

誤字

2020/02/13 06:07

投稿

renren.778899
renren.778899

スコア7

test CHANGED
File without changes
test CHANGED
@@ -72,25 +72,31 @@
72
72
 
73
73
 
74
74
 
75
+ ```
76
+
77
+ function onFormSubmit() {
78
+
75
- ``` Logger.log('sendMailGoogleForm() debug start');
79
+ Logger.log('sendMailGoogleForm() debug start');
80
+
76
-
81
+ }
77
-
78
-
82
+
83
+
84
+
79
- var lock = LockService.getDocumentLock();
85
+ var lock = LockService.getDocumentLock();//ロック
80
86
 
81
87
  try {
82
88
 
83
- lock.waitLock(30000);
89
+ lock.waitLock(30000);//30秒待つ
84
90
 
85
91
 
86
92
 
87
93
  // メール送信先
88
94
 
89
- var admin = "○○○@××.co.jp"; // 管理者アドレス
95
+ var admin = "○○○@○○○○.co.jp"; // 管理者(必須)→管理者アドレス
90
96
 
91
97
  var sendername = "管理者";//送信者名(必須)
92
98
 
93
- var cc = "○○○@××.co.jp"; //
99
+ var cc = "○○○@○○○○.co.jp"; //
94
100
 
95
101
  var bcc = admin; // Bcc:
96
102
 
@@ -106,9 +112,9 @@
106
112
 
107
113
  // -------------------------------------- 定義----------------------
108
114
 
109
- var Spreadsheet = SpreadsheetApp.openById("abcdefgh0123456789");
115
+ var Spreadsheet = SpreadsheetApp.openById("abcdefgh1234567890");
110
-
116
+
111
- var sheet = Spreadsheet.getSheetByName("メールフォーム");   //スプレッドとシートの指定
117
+ var sheet = Spreadsheet.getSheetByName("フォームの回答 4");   //スプレッドとシートの指定
112
118
 
113
119
  var ss = Spreadsheet.getSheetByName("宛先リスト");
114
120
 
@@ -128,25 +134,25 @@
128
134
 
129
135
  var name = sheet.getRange(rows, 6).getValue(); //件名に氏名
130
136
 
131
-
132
-
133
137
  // ----------------------------------------------------------------
134
138
 
139
+
140
+
135
141
  // 設定エリアここから
136
142
 
137
143
  //------------------------------------------------------------
138
144
 
139
-
145
+
140
146
 
141
147
  + "------------------------------------------------------------\n";
142
148
 
143
149
  // 件名、本文、フッター
144
150
 
145
-
151
+
146
152
 
147
153
  var subject = "【日報】【"+day+"】"+tenpo+"/"+name+""; 
148
154
 
149
- var body = "\n本日の実績報告となります。\n\n"//
155
+ var body = "※本メールは自動配信となります。\n\n各位\n\nお疲れ様です。\n本日の実績報告となります。\n\n"//
150
156
 
151
157
  var footer = "------------------------------------------------------------\n\n" + "以上、よろしくお願いいたします。";//
152
158
 
@@ -158,7 +164,7 @@
158
164
 
159
165
  var MAIL_COL_NAME = 'メールアドレス';
160
166
 
161
-
167
+
162
168
 
163
169
  //------------------------------------------------------------
164
170
 
@@ -166,13 +172,15 @@
166
172
 
167
173
  //------------------------------------------------------------
168
174
 
175
+
176
+
169
177
 
170
178
 
171
179
  try{
172
180
 
173
181
  // スプレッドシートの操作
174
182
 
175
- var sheet = Spreadsheet.getSheetByName("メールフォーム"); 
183
+ var sheet = Spreadsheet.getSheetByName("フォームの回答 4"); 
176
184
 
177
185
  var rows = sheet.getRange(1, 1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
178
186
 
@@ -192,13 +200,31 @@
192
200
 
193
201
  var col_value = rg.getCell(rows, i).getValue(); // 入力値
194
202
 
195
-
203
+
196
204
 
197
205
  if (col_name === "タイムスタンプ"){
198
206
 
199
207
  continue;}
200
208
 
209
+
210
+
201
-
211
+ if (col_name === "日付"){
212
+
213
+ continue;}
214
+
215
+
216
+
217
+ if (col_name === "(集計用)当月"){
218
+
219
+ continue;}
220
+
221
+
222
+
223
+ if (col_name === "(内訳)購入サポートから"){
224
+
225
+ continue;}
226
+
227
+
202
228
 
203
229
  body += col_name + "\n";
204
230
 
@@ -250,11 +276,7 @@
250
276
 
251
277
  MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
252
278
 
253
- }
279
+ }
254
-
255
-   lock.releaseLock();//ロック解除
256
-
257
- }
258
280
 
259
281
   } catch (e) {
260
282
 
@@ -290,7 +312,7 @@
290
312
 
291
313
  }
292
314
 
293
- }
315
+
294
316
 
295
317
  コード
296
318
 

1

ご教示頂いたコードを追加した

2020/02/13 05:32

投稿

renren.778899
renren.778899

スコア7

test CHANGED
File without changes
test CHANGED
@@ -62,13 +62,25 @@
62
62
 
63
63
 
64
64
 
65
+ 【2/13追記】
66
+
67
+ waitlockでtry~cachの構文にしてみましたが、症状は改善されませんでした。
68
+
69
+ →同内容のメールが二通送信される。
70
+
71
+
72
+
73
+
74
+
65
75
  ``` Logger.log('sendMailGoogleForm() debug start');
66
76
 
67
77
 
68
78
 
69
- var lock = LockService.getScriptLock();//排他制御
79
+ var lock = LockService.getDocumentLock();
80
+
70
-
81
+ try {
82
+
71
- lock.waitLock(30000);//30秒待
83
+ lock.waitLock(30000);
72
84
 
73
85
 
74
86
 
@@ -244,7 +256,41 @@
244
256
 
245
257
  }
246
258
 
247
-
259
+  } catch (e) {
260
+
261
+ //ロック取得できなかった時の処理等を記述する
262
+
263
+ var checkword = "ロックのタイムアウト: 別のプロセスがロックを保持している時間が長すぎました。";
264
+
265
+
266
+
267
+ //通常のエラーとロックエラーを区別する
268
+
269
+ if(e.message == checkword){
270
+
271
+ //ロックエラーの場合
272
+
273
+ msg = "誰かまだ使ってるみたい";
274
+
275
+ }else{
276
+
277
+ //ソレ以外のエラーの場合
278
+
279
+ msg = e.message;
280
+
281
+ }  
282
+
283
+
284
+
285
+ } finally {
286
+
287
+ //ロックを開放する
288
+
289
+ lock.releaseLock();
290
+
291
+ }
292
+
293
+ }
248
294
 
249
295
  コード
250
296