コンテンツにスキップ
「プリザンター入門」発売中!

バッチ処理でCSVファイルを読み込んで対象のレコードを作成または更新したい

回答

レコードのインポートAPIを使用します。


概要

バッチ処理でCSVファイルを読み込んで対象のレコードを作成または更新したい場合は、レコードのインポートAPIを使用します。

例として下表のCSVファイルから読み込んだ項目を、プリザンターの項目に挿入します。id(ClassA)の値がすでにプリザンター上に存在している場合は上書き更新されます。idのチェックを行うためClassAの検索の種類は完全一致に設定する必要があります。インポートするCSVデータはスクリプトファイルと同じフォルダに保存してください。

CSV項目 プリザンター項目
name Title
id ClassA
mail ClassE

操作手順

  1. プリザンターを開き、テーブルを作成してください
  2. テーブルの管理を開き、エディタタブで分類Aと分類Eを有効化してください。
  3. フィルタタブを開き、分類Aを選択してから詳細設定ボタンをクリックし、検索の種類を完全一致に変更のうえ、変更ボタンをクリックしてください。
  4. 更新ボタンをクリックしてください。
  5. 戻るボタンで一覧画面に戻ってください。
  6. ユーザメニューから「API設定」でAPIキーを作成し、キーをコピーしてください。
  7. 対象となるテーブルのサイトIDをメモしてください。
  8. 以下のCSVファイル例をコピーして、data.csvという名前でファイルを保存してください。
  9. 以下のサンプルコードをコピーして、import.ps1という名前でファイルを保存してください。
  10. CSVファイルの文字コードに合わせて、import.ps1の8行目を修正してください。
  11. import.ps1の1,2行目にあるサイトIDとAPIキーの箇所を変更して保存してください。
  12. import.ps1を実行してください。

CSVファイルの作成(data.csv)

id,name,mail
1,user1,user1@example.com
2,user2,user2@example.com
3,user3,user3@example.com
4,user4,user4@example.com
5,user5,user5@example.com
6,user6,user6@example.com
7,user7,user7@example.com
8,user8,user8@example.com
9,user9,user9@example.com
10,user10,user10@example.com

サンプルコード

PowerShell
$url = 'http://localhost/api/items/xxxサイトIDxxx/import'
$apiKey = 'xxxAPIキーxxx'
$filePath = "./data.csv"
$form = @{
    parameters = ConvertTo-Json @{
        ApiVersion = 1.1;
        ApiKey = $apiKey;
        Encoding = "UTF-8";
        UpdatableImport = $true;
        Key = "ClassA";
    };
    file = Get-Item -Path $filePath;
}
Invoke-WebRequest -Uri $url -Method Post -Form $form

関連情報