概要
プリザンターにはレコードの内容をCSVファイルでエクスポートするという、すてきな機能が搭載されています。
しかもなんと、API経由でも出力することができるのです。
早速PowerShellを使ってプログラムを書いてみましょう。
エクスポートの設定
あらかじめ出力したいテーブルにエクスポートの設定を行いましょう。
・公式マニュアル
https://pleasanter.org/manual/table-management-export
左上の ID の部分は後で使うので覚えておきましょう。
サンプルコード
またまた公式マニュアルを参考にPowerShellでプログラムを作ってみました。
https://pleasanter.org/manual/api-export
Add-Type -AssemblyName "System.Web"
$error.Clear()
$requestUrl = "http(s)://[プリザンターのアドレス]/api/items/[サイトID]/export"
$apiKey = "[プリザンターのAPIKEY]"
$json = @{
ApiVersion = 1.1
ApiKey = $apiKey
ExportId = 1
}
trap [Net.WebException] { continue; }
try {
$requestBody = $json | ConvertTo-Json
$res = Invoke-RestMethod -Uri $requestUrl -ContentType "application/json" -Method POST -Body ${requestBody}
} catch {
Write-Output $_.Exception
}
# ファイル出力
[System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($res.Response.Content)) | Out-File -NoNewline test.csv
jsonデータの ExportId
はあらかじめ作っておいたプリザンターのエクスポート設定の ID
と同じ値にします。
最後に文字化け対策を施してファイル出力をしています
test.csv
の部分が保存される実際のファイル名になります。
文字化け対策はこちらを参考にさせていただきました
https://qiita.com/zaki-lknr/items/1ae3258d7b77c5e2a2ba
CSVファイルの中身
プリザンターから直接エクスポートしたものと同様のファイルになればOK
(自動化したい場合)タスクスケジューラで自動化
たとえば毎日ある時刻にCSVファイルを生成するといった処理を行いたい場合は
作成した.ps1ファイルをタスクスケジューラで動かすとよいです。
タスクスケジューラへの登録は以前書いたこの記事に記載してあります。
https://qiita.com/kTsuji/items/ab2aed5682e1406dd413#%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%A9%E3%81%A7%E7%9B%A3%E8%A6%96
さいごに
作成されたCSVを・・・
・指定されたメールアドレスに自動送信
・プリザンターと連携するシステムにCSVデータを自動送信
メールAPIなどを活用すれば上記のような応用ができるのでは?と思います。
プリザンターのちょっとした、ほんのちょっとした小技の紹介でした。