バッチ処理でCSVファイルを読み込んで対象のレコードを作成または更新したい
回答¶
レコードのインポートAPIを使用します。
概要¶
バッチ処理でCSVファイルを読み込んで対象のレコードを作成または更新したい場合は、レコードのインポートAPIを使用します。
例として下表のCSVファイルから読み込んだ項目を、プリザンターの項目に挿入します。id(ClassA)の値がすでにプリザンター上に存在している場合は上書き更新されます。idのチェックを行うためClassAの検索の種類は完全一致に設定する必要があります。インポートするCSVデータはスクリプトファイルと同じフォルダに保存してください。
| CSV項目 | プリザンター項目 |
|---|---|
| name | Title |
| id | ClassA |
| ClassE |
操作手順¶
- プリザンターを開き、テーブルを作成してください
- テーブルの管理を開き、エディタタブで分類Aと分類Eを有効化してください。
- フィルタタブを開き、分類Aを選択してから詳細設定ボタンをクリックし、検索の種類を完全一致に変更のうえ、変更ボタンをクリックしてください。
- 更新ボタンをクリックしてください。
- 戻るボタンで一覧画面に戻ってください。
- ユーザメニューから「API設定」でAPIキーを作成し、キーをコピーしてください。
- 対象となるテーブルのサイトIDをメモしてください。
- 以下のCSVファイル例をコピーして、data.csvという名前でファイルを保存してください。
- 以下のサンプルコードをコピーして、import.ps1という名前でファイルを保存してください。
- CSVファイルの文字コードに合わせて、import.ps1の8行目を修正してください。
- import.ps1の1,2行目にあるサイトIDとAPIキーの箇所を変更して保存してください。
- 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
