何を実現したいのかを書きましょう
kintone からデータを出力して、それを Excel 等に読み込ませて分析を行う機能を開発中 (kintone のグラフだけでは難しく、リレーションを張ったりデータ粒度を変えたりしながら集計したく) 、レコードのステータスを分析に使うことになったので、全データ出力の中にステータスを含めたくなった。
手動で画面上から CSV をエクスポートすることも可能だけど、 cli-kintone を使ってスクリプトを組めば複数アプリからごっそりデータを落とせるので、現状 PowerShell でスクリプトを組んである。
ただ、まだ機能もアプリも開発途中のため、アプリのフィールドは増減することがあるし、使うフィールドも定まってない。ので、 cli-kintone で出力フィールドを指定せずに、ステータスを含んだデータを出力したかった。
発生した問題やエラーメッセージを具体的に書きましょう
現状、 cli-kintone (v1) ではステータスを出力することはできない…?ように思える。
以前は JSON 形式にすれば出てきたように思うのですが、新しい ドキュメント を見る限り、出力形式から JSON が消えているので、できなさそう。
欲しいフィールドを固定すれば出てくるかもしれないが、なかなか難しいので、できれば固定したくない。
なにか実験的フラグみたいなものを立てたら出力できる…みたいなことはあるのでしょうか。
もしくは今後、アップデートなどでサポートされることはあるのでしょうか?
実行したコードをコピー&ペーストしましょう
#################################################
# セキュアストリングから平文にコンバートする
#################################################
function SecureString2PlainString($SecureString) {
$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString)
$PlainString = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($BSTR)
# $BSTRを削除
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($BSTR)
return $PlainString
}
function GetDateString {
Get-Date -Format "yyyy-MM-dd-HH-mm-ss"
}
function EchoWithDate($contents) {
echo "[$(GetDateString)] $contents"
}
$user = Read-Host "ユーザー名"
$pass = SecureString2PlainString $(Read-Host "パスワード" -AsSecureString)
function Download {
param([int]$app)
$dirname = $args[0]
EchoWithDate "$dirname のデータをダウンロードします..."
if (!(Test-Path ./$($dirname))) {
New-Item ./$($dirname) -ItemType Directory
}
cli-kintone.exe record export --base-url https://???.cybozu.com --app $app -u $user -p $pass > ./$($dirname)/$($dirname)_$(GetDateString).csv
EchoWithDate "$dirname のデータのダウンロードが完了しました。"
return
}
EchoWithDate "ダウンロードを開始します..."
# XXX アプリ名1
Download "アプリ名1" -app XXX
# YYY アプリ名2
Download "アプリ名2" -app YYY
# ZZZ アプリ名3
Download "アプリ名3" -app ZZZ
EchoWithDate "操作が完了しました。"