複数subTable間で表示用のフィールド名が重なるCSVデータのアップロードエラー 回避方法伺い;
添付の図に示すように、1月から12月までの月毎のカラムを含むようなsubTableが複数有るkintone-formにSubTableのデータをkintone画面から入力した状態で、
kintoneの機能でCSVダウンロード出力した後、csvアップロードしたら、GAIA_II02エラーになって、CSVアップロードできませんでした。
つきましては、後段の回避処置より ベターな 回避処置を教示いただけませんでしょうか?
また、kintoneに仕様改善を要望できそうな 方策も教示いただければ、幸いです。
<問題現象>
「
以下のエラーが発生しました。手元のファイルを修正して再度アップロードしてください。
GAIA_II02: ファイルの2行目に、複数のテーブルの値が含まれています。
」
また、Kintoneのドキュメント不備として、GAIA_II02の説明が無い。
さらに、GAIA_II02のメッセージテキストと、私の使ったデータとに齟齬が在ります。
使ったCSVファイルは、KIntoneからダウンロードしたファイルで、4個あるSUBTABLEのデータが 同一レコードには入って居ません。 CSVファイル中の1個目のsubTableの”4月”のフィールドが、kintoneサーバ側の4個のSUBTABLE中の各々の”4月”のフィールドにマッチしてしまったのを、GAIA_II02の発生条件と誤認識しているようです。
<回避失敗した 操作>
CSVファイル中の4個のSUBTableの列を 一つ一つのファイルに分割し、4個のSUBTABLEへのCSVアップロードを4回に分けてアップロードした場合、CSVファイル内の1行目の見出し行には 重複する見出しを無くしているにも関わらず、CSVファイル中の1個目のsubTableの”4月”のフィールドが、kintoneサーバ側の4個のSUBTABLE中の各々の”4月”のフィールドにマッチしてしまったったようで、GAIA_II02エラーになりました。
<回避できたが、可成り面倒な操作方法>
kintoneからダウンロードしたCSVファイルの1行目の見出しが、kintone画面定義での表示用の”フィールド名”となっている処を、フィールドコードに書換、kintoneのCSVアップロード画面で、各々のフィールドコードをkintoneのフィールド名に対応付けて、アップロードすると、アップロード出来ました。
ただし、この方法では、月毎の1年分のsubTableが4個ある場合、48個ものフィールドコードとフィールド名の対応付けをEXCEL-CSVファイル編集操作と、kintoneのCSVアップロード操作とで 何度も 操作しなければならず、可成り 面倒でした。
ミュートしたユーザーの投稿です。
投稿を表示後からすみません。GAIA_II02の説明があったのでココにお知らせします。
https://jp.cybozu.help/k/ja/id/040726.html#import_records_import_recors_failed_1030
・エラーメッセージ
GAIA_II02:ファイルのXX行目に、複数のテーブルの値が含まれています。
・対処方法
読み込むファイルでは、1行に複数のテーブルの値を記載しないようにしてください。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示こんにちは!
推測するに、ᴂさんはkintone以外でデータベース構築あるいは管理のご経験があり、お詳しいのではないかと思います。
kintoneで他のデータベースと全く同様のものを再現しようとするのは、そもそもの「考え方」が異なりますので、kintoneはkintoneだと割り切ってkintoneのデータの持ち方に合わせた構成を検討されると、うまくいくと思います。
◆エラーの原因と対応について
さて私で分かる限りで(ユーザー個人の意見と思ってください)回答します。
まず、CSVアップロード時に、CSVファイルの1行目と文言が一致する「フィールド名」を自動でマッピングしてくれるのは、kintoneの仕様の一つです。非エンジニアからしてみると便利な機能の一つ、と私は思っています。
実際にやってみられているので理解されていると思いますが、同じフィールド名が2つ以上あればランダム自動マッピングされますので、同じCSV内に同じフィールド名が含まれていれば、思った通りにいかないこともあります。
一番シンプルなのは、全てのフィールド名を一意にすることですが、キャプチャを拝見すると、おそらくそうしてしまうとユーザーからして見づらい見た目になると思います。
今の通りの構成でいきたいのであれば、お示しの<回避できたがかなり面倒な方法>でやることになりますが、現実的ではないと思いますので、後ほど一つ案をお伝えします。
◆エラーの原因としてもう一つ考えられることと
「ダウンロードしたCSVをアップロードしたらエラーになった」とのことですが、ダウンロードしたCSVファイルの行を削除したり統合したりされていないでしょうか?
下記ヘルプに、テーブルが複数ある場合の注意点が書かれています。
当てはまることがあれば、修正したうえで上記フィールド名の問題を解決すればうまくいくのではないかと思います。
https://jp.cybozu.help/k/ja/user/using_app/import_records/import_file_table.html#import_records_import_file_table_1020
◆提案
キャプチャを見ただけだとどんな業務に使うアプリなのかは分かりませんが、
絶対にテーブルが4つある構成にしないといけないでしょうか?
各テーブルには「メニュー」「単位」「月(年月?)」と、同じ項目が並んでいるように見えますので、
このテーブルの1行に入力している情報を1レコードとして登録する別のアプリを用意されてはいかがでしょうか。
4月、5月…もフィールドにするのではなく、日付フィールドで入力するようにして、
4つのテーブルに分けられるように分類用の項目などをドロップダウンなどで何か用意して、元のアプリには関連レコード一覧で表示させる方法では解決できないでしょうか。
そうすると、1つのCSVにテーブルが複数…という形ではなく、レコードの最小単位が1行になるので、複雑な作りのCSVファイルを作らなくてよくなるのではないかと思います。
一つのアプリに全ての情報入力フォームを集約しようとするのではなく、入力と表示を別のアプリで作ってみると
いう考え方も一つではないかと思います。
【参考ヘルプ】
https://jp.cybozu.help/k/ja/user/using_app/import_records/import_csv.html
https://jp.cybozu.help/k/ja/trouble_shooting/app_qa/export_table.html
https://jp.cybozu.help/k/ja/user/app_settings/form/related_records/set_relatedrecords.html
ミュートしたユーザーの投稿です。
投稿を表示