質問編集履歴

4

追記

2018/12/21 06:24

投稿

k.taka_cam
k.taka_cam

スコア15

test CHANGED
File without changes
test CHANGED
@@ -204,8 +204,152 @@
204
204
 
205
205
 
206
206
 
207
+ ### 補足情報
208
+
209
+
210
+
211
+ 下記のコードにすることで、まずは外部のCSVファイルのインポート(POST)は出来ました。
212
+
213
+
214
+
215
+ ```javascript
216
+
217
+ jQuery.noConflict();
218
+
219
+ (function ($) {
220
+
221
+ "use strict";
222
+
223
+
224
+
225
+ kintone.events.on(['app.record.index.show'], function (event) {
226
+
227
+ var appId = event.appId;
228
+
229
+
230
+
231
+ //ダイアログでファイルが選択された時の処理
232
+
233
+ $('#selfile').bind('change', function (evt) {
234
+
235
+ //読み込んだファイルをテキストエリアに表示
236
+
237
+ var reader = new FileReader();
238
+
239
+ reader.readAsText(evt.target.files[0]);
240
+
241
+ reader.onerror = function () {
242
+
243
+ alert('ファイル読み取りに失敗しました')
244
+
245
+ }
246
+
247
+ reader.onload = function (ev) {
248
+
249
+ $('textarea[name=\"txt\"]').val(reader.result);
250
+
251
+ };
252
+
253
+ });
254
+
255
+ //「post」ボタン押下時の処理
256
+
257
+ $('#post_btn').bind('click', function () {
258
+
259
+ var text_val = $('textarea[name=\"txt\"]').val();
260
+
261
+ text_val = text_val.replace(/"/g, "");
262
+
263
+ var jsonArray = csv2json(text_val.split('\n'));
264
+
265
+ var obj = []
266
+
267
+ for (var i = 0; i < jsonArray.length; i++) {
268
+
269
+ if (jsonArray[i]['quote_number']) {
270
+
271
+ obj[i] = {
272
+
273
+ 'quote_number': {
274
+
275
+ value: jsonArray[i]['quote_number']
276
+
277
+ },
278
+
279
+ 'contract_amount': {
280
+
281
+ value: jsonArray[i]['contract_amount']
282
+
283
+ },
284
+
285
+
286
+
287
+ }
288
+
289
+ }
290
+
291
+ }
292
+
293
+ if (window.confirm('データを登録します。よろしいでしょうか?')) {
294
+
295
+ // ログアプリへの登録処理
296
+
297
+ kintone.api('/k/v1/records', 'POST', {
298
+
299
+ app: appId,
300
+
301
+ records: obj
302
+
303
+ }, function (resp) {
304
+
305
+ location.reload();
306
+
307
+ });
308
+
309
+ } else {
310
+
311
+ window.alert('キャンセルされました'); // 警告ダイアログを表示
312
+
313
+ }
314
+
315
+ });
316
+
317
+ //パース処理
318
+
319
+ function csv2json(csvArray) {
320
+
321
+ var jsonArray = [];
322
+
323
+ var items = csvArray[0].split(',');
324
+
325
+ for (var i = 1; i < csvArray.length; i++) {
326
+
327
+ var a_line = {};
328
+
329
+ var csvArrayD = csvArray[i].split(',');
330
+
207
- ### 補足情報(FW/ールのバジョンなど)
331
+ // 各デタをループ処理する
332
+
208
-
333
+ for (var j = 0; j < items.length; j++) {
334
+
209
-
335
+ //要素名:items[j]
336
+
210
-
337
+ //データ:csvArrayD[j]
338
+
339
+ a_line[items[j]] = csvArrayD[j];
340
+
341
+ }
342
+
211
- ここにより詳細な情報を記載してください。
343
+ jsonArray.push(a_line);
344
+
345
+ }
346
+
347
+ return jsonArray;
348
+
349
+ }
350
+
351
+ });
352
+
353
+ })(jQuery);
354
+
355
+ ```

3

コードと追記をいたしました。

2018/12/21 06:24

投稿

k.taka_cam
k.taka_cam

スコア15

test CHANGED
File without changes
test CHANGED
@@ -86,13 +86,19 @@
86
86
 
87
87
  var obj = [];
88
88
 
89
+ var j = 0;
90
+
89
91
  for (var i = 0; i < jsonArray.length; i++) {
90
92
 
91
93
  if (jsonArray[i]['quote_number']) {
92
94
 
95
+ j++
96
+
93
- obj[i] = {
97
+ obj[j - 1] = {
98
+
94
-
99
+ 'app': appId,
100
+
95
- "records": [{
101
+ 'records': [{
96
102
 
97
103
  'quote_number': {
98
104
 
@@ -104,7 +110,7 @@
104
110
 
105
111
  'contract_amount' : {
106
112
 
107
- type: 'SINGLE_LINE_TEXT',
113
+ type: 'NUMBER',
108
114
 
109
115
  value: jsonArray[i]['contract_amount']
110
116
 
@@ -188,7 +194,13 @@
188
194
 
189
195
 
190
196
 
191
-
197
+ 一つ一つ考えるために、上記のコードにしてみました。
198
+
199
+ その後デバック操作で確認をしてみましたら、登録処理の箇所でエラーが発生しておりました。
200
+
201
+
202
+
203
+ ![イメージ説明](c319dc98ab1beb107ca4059a94a364fd.png)
192
204
 
193
205
 
194
206
 

2

フィールドの形式が間違っておりましたので、変更しました。

2018/12/21 04:39

投稿

k.taka_cam
k.taka_cam

スコア15

test CHANGED
File without changes
test CHANGED
@@ -88,35 +88,31 @@
88
88
 
89
89
  for (var i = 0; i < jsonArray.length; i++) {
90
90
 
91
- if (jsonArray[i]['contract_amount']) {
91
+ if (jsonArray[i]['quote_number']) {
92
92
 
93
93
  obj[i] = {
94
94
 
95
- 'quote_number': {
95
+ "records": [{
96
96
 
97
- type: 'SINGLE_LINE_TEXT',
97
+ 'quote_number': {
98
98
 
99
- value: jsonArray[i]['quote_number']
99
+ type: 'SINGLE_LINE_TEXT',
100
100
 
101
- },
101
+ value: jsonArray[i]['quote_number']
102
102
 
103
- 'contract_amount': {
103
+ },
104
104
 
105
- type: 'NUMBER',
105
+ 'contract_amount' : {
106
106
 
107
- value: jsonArray[i]['contract_amount']
107
+ type: 'SINGLE_LINE_TEXT',
108
108
 
109
- },
109
+ value: jsonArray[i]['contract_amount']
110
110
 
111
- 'tax': {
111
+ }
112
112
 
113
- type: 'NUMBER',
113
+ }]
114
114
 
115
- value: jsonArray[i]['tax']
116
-
117
- }
115
+ }
118
-
119
- };
120
116
 
121
117
  }
122
118
 
@@ -126,7 +122,7 @@
126
122
 
127
123
  // ログアプリへの登録処理
128
124
 
129
- kintone.api('/k/v1/record', 'POST', {
125
+ kintone.api('/k/v1/records', 'POST', {
130
126
 
131
127
  app: appId,
132
128
 

1

※キーを間違えました。quote_numberです。

2018/12/21 03:56

投稿

k.taka_cam
k.taka_cam

スコア15

test CHANGED
File without changes
test CHANGED
@@ -14,9 +14,9 @@
14
14
 
15
15
 
16
16
 
17
- 1/ CSVインポートを行う。CSV外部ファイルをインポートする。主キーは、【contract_amount
17
+ 1/ CSVインポートを行う。CSV外部ファイルをインポートする。主キーは、【quote_number
18
-
18
+
19
- 2/ POSTボタンを押下した時点で、contract_amountがある場合は、上書きを行い、
19
+ 2/ POSTボタンを押下した時点で、quote_numberがある場合は、上書きを行い、
20
20
 
21
21
  ない場合は、新規で登録したい。
22
22