質問するログイン新規登録

質問編集履歴

4

追記

2018/12/21 06:24

投稿

k.taka_cam
k.taka_cam

スコア15

title CHANGED
File without changes
body CHANGED
@@ -101,6 +101,78 @@
101
101
 
102
102
  ![イメージ説明](c319dc98ab1beb107ca4059a94a364fd.png)
103
103
 
104
- ### 補足情報(FW/ツールのバージョンなど)
104
+ ### 補足情報
105
105
 
106
+ 下記のコードにすることで、まずは外部のCSVファイルのインポート(POST)は出来ました。
107
+
108
+ ```javascript
106
- ここにより詳細な情報を記載してください。
109
+ jQuery.noConflict();
110
+ (function ($) {
111
+ "use strict";
112
+
113
+ kintone.events.on(['app.record.index.show'], function (event) {
114
+ var appId = event.appId;
115
+
116
+ //ダイアログでファイルが選択された時の処理
117
+ $('#selfile').bind('change', function (evt) {
118
+ //読み込んだファイルをテキストエリアに表示
119
+ var reader = new FileReader();
120
+ reader.readAsText(evt.target.files[0]);
121
+ reader.onerror = function () {
122
+ alert('ファイル読み取りに失敗しました')
123
+ }
124
+ reader.onload = function (ev) {
125
+ $('textarea[name=\"txt\"]').val(reader.result);
126
+ };
127
+ });
128
+ //「post」ボタン押下時の処理
129
+ $('#post_btn').bind('click', function () {
130
+ var text_val = $('textarea[name=\"txt\"]').val();
131
+ text_val = text_val.replace(/"/g, "");
132
+ var jsonArray = csv2json(text_val.split('\n'));
133
+ var obj = []
134
+ for (var i = 0; i < jsonArray.length; i++) {
135
+ if (jsonArray[i]['quote_number']) {
136
+ obj[i] = {
137
+ 'quote_number': {
138
+ value: jsonArray[i]['quote_number']
139
+ },
140
+ 'contract_amount': {
141
+ value: jsonArray[i]['contract_amount']
142
+ },
143
+
144
+ }
145
+ }
146
+ }
147
+ if (window.confirm('データを登録します。よろしいでしょうか?')) {
148
+ // ログアプリへの登録処理
149
+ kintone.api('/k/v1/records', 'POST', {
150
+ app: appId,
151
+ records: obj
152
+ }, function (resp) {
153
+ location.reload();
154
+ });
155
+ } else {
156
+ window.alert('キャンセルされました'); // 警告ダイアログを表示
157
+ }
158
+ });
159
+ //パース処理
160
+ function csv2json(csvArray) {
161
+ var jsonArray = [];
162
+ var items = csvArray[0].split(',');
163
+ for (var i = 1; i < csvArray.length; i++) {
164
+ var a_line = {};
165
+ var csvArrayD = csvArray[i].split(',');
166
+ // 各データをループ処理する
167
+ for (var j = 0; j < items.length; j++) {
168
+ //要素名:items[j]
169
+ //データ:csvArrayD[j]
170
+ a_line[items[j]] = csvArrayD[j];
171
+ }
172
+ jsonArray.push(a_line);
173
+ }
174
+ return jsonArray;
175
+ }
176
+ });
177
+ })(jQuery);
178
+ ```

3

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

2018/12/21 06:24

投稿

k.taka_cam
k.taka_cam

スコア15

title CHANGED
File without changes
body CHANGED
@@ -42,16 +42,19 @@
42
42
  text_val = text_val.replace(/"/g, "");
43
43
  var jsonArray = csv2json(text_val.split('\n'));
44
44
  var obj = [];
45
+ var j = 0;
45
46
  for (var i = 0; i < jsonArray.length; i++) {
46
47
  if (jsonArray[i]['quote_number']) {
48
+ j++
47
- obj[i] = {
49
+ obj[j - 1] = {
50
+ 'app': appId,
48
- "records": [{
51
+ 'records': [{
49
52
  'quote_number': {
50
53
  type: 'SINGLE_LINE_TEXT',
51
54
  value: jsonArray[i]['quote_number']
52
55
  },
53
56
  'contract_amount' : {
54
- type: 'SINGLE_LINE_TEXT',
57
+ type: 'NUMBER',
55
58
  value: jsonArray[i]['contract_amount']
56
59
  }
57
60
  }]
@@ -93,7 +96,10 @@
93
96
 
94
97
  ### 試したこと
95
98
 
99
+ 一つ一つ考えるために、上記のコードにしてみました。
100
+ その後デバック操作で確認をしてみましたら、登録処理の箇所でエラーが発生しておりました。
96
101
 
102
+ ![イメージ説明](c319dc98ab1beb107ca4059a94a364fd.png)
97
103
 
98
104
  ### 補足情報(FW/ツールのバージョンなど)
99
105
 

2

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

2018/12/21 04:39

投稿

k.taka_cam
k.taka_cam

スコア15

title CHANGED
File without changes
body CHANGED
@@ -43,26 +43,24 @@
43
43
  var jsonArray = csv2json(text_val.split('\n'));
44
44
  var obj = [];
45
45
  for (var i = 0; i < jsonArray.length; i++) {
46
- if (jsonArray[i]['contract_amount']) {
46
+ if (jsonArray[i]['quote_number']) {
47
47
  obj[i] = {
48
+ "records": [{
48
- 'quote_number': {
49
+ 'quote_number': {
49
- type: 'SINGLE_LINE_TEXT',
50
+ type: 'SINGLE_LINE_TEXT',
50
- value: jsonArray[i]['quote_number']
51
+ value: jsonArray[i]['quote_number']
51
- },
52
+ },
52
- 'contract_amount': {
53
+ 'contract_amount' : {
53
- type: 'NUMBER',
54
+ type: 'SINGLE_LINE_TEXT',
54
- value: jsonArray[i]['contract_amount']
55
+ value: jsonArray[i]['contract_amount']
55
- },
56
- 'tax': {
57
- type: 'NUMBER',
58
- value: jsonArray[i]['tax']
59
- }
56
+ }
60
- };
57
+ }]
58
+ }
61
59
  }
62
60
  }
63
61
  if (window.confirm('データを登録します。よろしいでしょうか?')) {
64
62
  // ログアプリへの登録処理
65
- kintone.api('/k/v1/record', 'POST', {
63
+ kintone.api('/k/v1/records', 'POST', {
66
64
  app: appId,
67
65
  records: obj
68
66
  }, function (resp) {

1

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

2018/12/21 03:56

投稿

k.taka_cam
k.taka_cam

スコア15

title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,8 @@
6
6
  現在、kintone JSを使ってCSVインポートを行いたいと考えております。
7
7
  実現したいことに関しては、下記の通りです。
8
8
 
9
- 1/ CSVインポートを行う。CSV外部ファイルをインポートする。主キーは、【contract_amount
9
+ 1/ CSVインポートを行う。CSV外部ファイルをインポートする。主キーは、【quote_number
10
- 2/ POSTボタンを押下した時点で、contract_amountがある場合は、上書きを行い、
10
+ 2/ POSTボタンを押下した時点で、quote_numberがある場合は、上書きを行い、
11
11
  ない場合は、新規で登録したい。
12
12
 
13
13
  こういった処理が初めてなことで、色々と学びながら実現をしたいです。