サポート > Wagby定義ファイル > 17 CSV入出力 > CSVアップロード更新

ダウンロード機能で出力されたファイルを編集し、これをアップロードすることで一括更新処理を行うことができます。R6.1.0よりTSV(タブ区切り)形式のファイルにも対応しています。 R6.1.0

実行例

モデルに定義された任意の項目のデータをCSV または TSV 形式でアップロードすることにより、 データの新規作成、更新を一括で行うことができます。

  1. 「顧客」モデルを CSV でアップロード更新する機能の例を示します。設定を行うと、画面にメニューが用意されます(図1)。

    図1 顧客モデルに CSV アップロード更新の機能を追加した例
  2. クリックすると、アップロード更新画面に遷移します(図2)。

    図2 顧客アップロード更新画面
  3. 入力「CSVファイル」にて、アップロードする CSV ファイルを指定し、「更新用CSVファイルを送信」ボタンをクリックすると、処理が開始されます。処理を実行している間は次の画面が表示されます(図3)。

    図3 顧客アップロード更新中
  4. 「更新処理の停止」ボタンをクリックすると、現在実行している処理を停止します。処理を途中で停止した場合、処理した行数で示される行までの新規作成、更新は反映されます。
    「この画面を再表示」ボタンをクリックすると、現在の処理状況を更新します。 アップロードが無事終了した場合は次のような画面が表示されます(図4)。

    図4 顧客アップロード更新処理の終了

ここでは、CSV ファイルを例にしましたが、TSV ファイルの場合も同じ手順でアップロード更新を行えます。

本処理を実行している間は対象となるモデルのデータはすべてロックされます。メニューから本機能を選択した際に、すでに本機能を他のユーザが実行している場合、又は対象となるモデルが更新中である場合は、本機能を使うことはできません。 すべてのユーザは本処理が終了した後に対象モデルの更新、削除処理を行うことができます。

設定方法

  1. アップロード更新機能を利用したいモデルについて、モデル定義シートの「画面動作定義」ボタンをクリックして画面動作定義シートを開きます(図5)。

    図5 「画面動作定義」ボタン
  2. 画面動作定義シートの「アップロード更新画面」-「画面を作成する」項目で「○」を設定します(図6)。 続いて、「アップロードファイルのタイプ」を選択します。 「CSV(カンマ区切り)」、「TSV(タブ区切り)」が選択できます。 標準では、「CSV」となっています。
    またこの欄の設定では、画面名や画面に表示させる説明文を記述することもできます。

    図6 ダウンロード画面を作成する
  3. 次に、アップロード更新の対象となる項目を指定します。 一度モデル定義シートに戻り、「詳細表示」ボタンをクリックしてモデル項目定義シートを開きます。
    モデル項目の定義シート「出力制御」-「CSV形式出力時にこの項目を加える」に「○」を設定することで、 更新される項目となります。 この項目に○がついていない項目については、更新されません。 標準では、「○」が設定されています(図7)。

    図7 「CSV形式出力時にこの項目を加える」で「○」を設定

新規作成するデータに主キーの自動採番を行う

新規に作成するデータの主キーに自動で連番を振るように設定することが出来ます。
データの主キー項目を「-1」にすることで、アップロード更新時にキーが自動採番され、データが新規登録されます(図8)。


図8 主キー項目に「-1」を指定

処理後、データを確認すると、主キーが自動採番されたデータが新規に登録されていることが分かります(図9)。


図9 主キーが自動採番された

この機能を使用するには、主キーが自動採番になっている必要があります。 定義ファイルで自動採番の設定 (モデル項目定義シートの「主キーの詳細」-「順序の使用」に「○」)がされていない場合は、機能しません。

アップロード更新における入力チェックの扱い

アップロード更新において、Wagby 定義ファイルで指定した入力チェックは適用されます(「警告」チェックを除く)。 データの形式エラー(例えば、数値を入力すべきところに非数字を入力など)があった場合は、画面にエラーデータの行番号とエラーメッセージが表示されます(図10)。 この場合、データは更新(登録)されません。エラーのないデータのみ更新(登録)されます。


図10 アップデート対象のデータにエラーがあった場合
CSV アップロード更新時、現在の Wagby では「警告」チェック機能は動作しません(登録処理に失敗します)。
「警告」チェックを設定している項目は、「○」に設定を変更(入力チェックを行うように)するか、「警告」の設定を外してお使いください。 (次の図は、「必須チェック」の設定を変更している例です。)

独自に作成した Excel ファイルをアップロードする

本機能を応用することで、Wagby の ダウンロード機能によって取得した以外のファイルもアップロード更新に用いることができます。 ただし、以下の点にご注意ください。

  • アップロード更新を使用する場合、先頭の 1 行目は日本語の項目名を記載することが必要です。 この項目名はCSV ダウンロードで取得できる形式と同じものである必要があります。(異なる項目名を使用した場合は、正しく更新されません。)
  • データに「"」「'」「(改行)」のいずれかが含まれる場合、そのデータ全体を引用符「"」で囲むようにしてください。また、データ内の「"」は「""」としてください。

なお、Excel を用いて「CSV形式で保存」を行うことで、引用符「"」を正しく考慮した CSV ファイルを用意することができます。CSV ファイルの仕様については、以下の資料が参考になります。

制約

本機能は現在、次のような制約があります。

  • モデルに参照関係がある場合、参照先の名称を正確に記載してください。例えば、会社モデルを参照しているデータで、会社名に「山田商店」と記載していたが実際の会社モデル側にこのデータが存在しなかった場合、この項目そのものの更新が行われません。
  • アップロード更新は、以下の項目には対応していません。
    • 繰返し項目
    • 繰返しコンテナ
    • ストアモデル参照(検索画面)項目
    • ストアモデル参照の項目で「参照モデルの絞り込み項目」の設定を行っている項目
    • 参照連動型の項目で参照先の項目の型がチェックボックスの場合
  • マスタモデル参照(チェックボックス)型項目に対して必須入力チェックを指定している場合、アップロード更新時に新規レコードが入力チェックエラーで登録されません。必須入力チェックを外した状態でご利用ください。
アップロード更新に未対応の上記項目については、処理時に自動的に無視されます。これらの項目を含んだ状態でアップロード更新を行っても警告は表示されません。

これらの制約を運用で回避する方法として「インポート機能」を使用することができます。 インポート機能を用いる場合、対象データは XML 形式で準備します。

トラブルシューティング

アップロード機能で特定のデータが登録できないという現象が発生した場合、次の点をご確認ください。

  • そのデータに不正な文字(特殊文字、外字など)が含まれていませんか。
  • また、そのデータが「一意制約チェック」に違反していませんか。